pax_global_header00006660000000000000000000000064145233752170014523gustar00rootroot0000000000000052 comment=bfce851d4da5a01f24189ba79eac9385b7ce8533 flipperdevices-qFlipper-bfce851/000077500000000000000000000000001452337521700170065ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/.github/000077500000000000000000000000001452337521700203465ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/.github/ISSUE_TEMPLATE/000077500000000000000000000000001452337521700225315ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/.github/ISSUE_TEMPLATE/bug_report.md000066400000000000000000000031511452337521700252230ustar00rootroot00000000000000--- name: Bug report about: How to report bugs title: '' labels: bug assignees: '' --- First and foremost, thank you for your interest in making qFlipper better by reporting bugs! **Describe the bug** What were you trying to do? **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Actual behavior** A clear and concise description of what happened instead. **Additional troubleshooting** 1. Does the issue persist if you try multiple times? 2. Does reconnecting/rebooting Flipper solve it? **The report *must* also include at least one of the following:** 1. A **FULL LOG** of this application run. (see below). 2. A screenshot of the application window (if it is a graphical issue). **Additional context** You are free to add any other context about the problem you deem helpful here. ## IMPORTANT - Getting the full log Normally, the application log is shown upon pressing the "LOGS" button in the bottom left corner of the window. Despite it having some value already, there is a more detailed version saved each time qFlipper is run. In order to access it, follow these steps: 1. Click the "LOGS" button to open the log window. 2. Right click on the log window. 3. In the context menu, select "Browse all logs...". 4. A folder containing several log files should open. 5. Find the most recent file, this is it! **Warning!** The log will contain your Flipper's unique name. If you wish not to disclose it, search/replace all its occurrences before attaching the file. flipperdevices-qFlipper-bfce851/.github/workflows/000077500000000000000000000000001452337521700224035ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/.github/workflows/ci.yml000066400000000000000000000110611452337521700235200ustar00rootroot00000000000000name: 'CI' on: push jobs: build_linux: runs-on: ubuntu-latest steps: - name: 'Wipe workspace' run: find ./ -mount -maxdepth 1 -exec rm -rf {} \; - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 submodules: true - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push uses: docker/build-push-action@v5 with: push: false context: docker tags: qflipper-build:latest load: true cache-from: type=gha cache-to: type=gha,mode=max - name: Build application in docker run: docker run --rm --privileged -v $(pwd):/project qflipper-build:latest /project/build_linux.sh - name: Publish application uses: actions/upload-artifact@v3 with: name: qFlipper-x86_64.AppImage path: | ./build/qFlipper-x86_64.AppImage if-no-files-found: error retention-days: 1 build_mac: runs-on: [self-hosted, ARM64, macOS] env: MAC_OS_KEYCHAIN_NAME: ${{ secrets.MAC_OS_KEYCHAIN_NAME }} MAC_OS_KEYCHAIN_PASSWORD: ${{ secrets.MAC_OS_KEYCHAIN_PASSWORD }} MAC_OS_SIGNING_KEY_ID: ${{ secrets.MAC_OS_SIGNING_KEY_ID }} MAC_OS_SIGNING_BUNDLE_ID: ${{ secrets.MAC_OS_SIGNING_BUNDLE_ID }} MAC_OS_SIGNING_ASC_PROVIDER: ${{ secrets.MAC_OS_SIGNING_ASC_PROVIDER }} MAC_OS_SIGNING_USERNAME: ${{ secrets.MAC_OS_SIGNING_USERNAME }} MAC_OS_SIGNING_PASSWORD: ${{ secrets.MAC_OS_SIGNING_PASSWORD }} steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 submodules: true - name: Build application run: ./build_mac.sh - name: Publish application uses: actions/upload-artifact@v2 with: name: qflipper.dmg path: | ./build_mac/qflipper.dmg if-no-files-found: error retention-days: 1 build_windows: runs-on: [self-hosted, X64, Windows] env: SIGNING_TOOL: ${{ secrets.WIN_SIGNING_TOOL }} steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 submodules: true - name: Build application run: .\build_windows.bat - name: Publish application uses: actions/upload-artifact@v2 with: name: qFlipperSetup-64bit.exe path: | .\build\qFlipperSetup-64bit.exe .\build\qFlipper-64bit.zip if-no-files-found: error retention-days: 1 upload: name: Upload apps to storage needs: [build_windows, build_mac, build_linux] runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: fetch-depth: 0 - name: 'Make artifacts directory' run: | test -d artifacts && rm -rf artifacts || true mkdir artifacts - name: 'Generate tag suffix' if: startsWith(github.ref, 'refs/tags/') == true run: | echo "REF=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV echo "SUFFIX=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV - name: 'Generate branch suffix' if: startsWith(github.ref, 'refs/tags/') != true run: | echo "REF=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV echo "SUFFIX=$(git rev-parse --abbrev-ref HEAD | sed 's/\//_/g')-$(date +'%d%m%Y')-$(git rev-parse --short HEAD)" >> $GITHUB_ENV - uses: actions/download-artifact@v2 with: name: qFlipper-x86_64.AppImage - uses: actions/download-artifact@v2 with: name: qFlipperSetup-64bit.exe - uses: actions/download-artifact@v2 with: name: qflipper.dmg - name: Rename app run: | mv qFlipper-x86_64.AppImage ./artifacts/qFlipper-x86_64-${SUFFIX}.AppImage mv qFlipperSetup-64bit.exe ./artifacts/qFlipperSetup-64bit-${SUFFIX}.exe mv qFlipper-64bit.zip ./artifacts/qFlipper-64bit-${SUFFIX}.zip mv qflipper.dmg ./artifacts/qFlipper-${SUFFIX}.dmg - name: Upload artifacts to update server if: ${{ !github.event.pull_request.head.repo.fork }} run: | FILES=$(for CUR in $(ls artifacts/); do echo "-F files=@artifacts/$CUR"; done) curl --fail -L -H "Token: ${{ secrets.INDEXER_TOKEN }}" \ -F "branch=${REF}" \ ${FILES[@]} \ "${{ secrets.INDEXER_URL }}"/qFlipper/uploadfiles flipperdevices-qFlipper-bfce851/.gitignore000066400000000000000000000000731452337521700207760ustar00rootroot00000000000000/build_mac build .directory *.user x64 Win32 .vs .DS_Store flipperdevices-qFlipper-bfce851/.gitmodules000066400000000000000000000003131452337521700211600ustar00rootroot00000000000000[submodule "driver-tool/libwdi"] path = driver-tool/libwdi url = https://github.com/pbatard/libwdi.git [submodule "3rdparty/nanopb"] path = 3rdparty/nanopb url = https://github.com/nanopb/nanopb.git flipperdevices-qFlipper-bfce851/3rdparty/000077500000000000000000000000001452337521700205565ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/3rdparty/3rdparty.pro000066400000000000000000000004301452337521700230450ustar00rootroot00000000000000CONFIG -= qt TEMPLATE = lib CONFIG += staticlib c++11 include(../qflipper_common.pri) SOURCES += \ nanopb/pb_common.c \ nanopb/pb_decode.c \ nanopb/pb_encode.c HEADERS += \ nanopb/pb.h \ nanopb/pb_common.h \ nanopb/pb_decode.h \ nanopb/pb_encode.h flipperdevices-qFlipper-bfce851/3rdparty/nanopb/000077500000000000000000000000001452337521700220335ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/LICENSE000066400000000000000000001045151452337521700200210ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . flipperdevices-qFlipper-bfce851/README.md000066400000000000000000000110531452337521700202650ustar00rootroot00000000000000## qFlipper ### Graphical desktop application for updating [Flipper Zero](https://flipperzero.one/) firmware via PC qFlipper is completely open source and based on [Qt](https://www.qt.io/) framework. Runs on Windows, macOS, Linux. qFlipper ## Download Download official qFlipper builds here: [update.flipperzero.one](https://update.flipperzero.one/) download qFlipper Button ## Features * Update Flipper's firmware and supplemental data with a press of one button * Repair a broken firmware installation * Stream Flipper's display and control it remotely * Install firmware from a `.dfu` file * Backup and restore settings, progress and pairing data * Automatic self-update feature * Command line interface ## Build from sources ### Cloning Make sure to clone the project together with submodules: ```sh git clone https://github.com/flipperdevices/qFlipper.git --recursive ``` ### Windows Build requirements: - MS Visual Studio 2019 or newer - Qt5 (MSVC build) >= 5.15.0 or Qt6 >= 6.3.0 - NSIS (to generate the installer) Edit `build_windows.bat` to adjust to your build environment and then run: ```cmd build_windows.bat ``` Note: STM32 Bootloader driver is not provided in this repository. ### Linux #### Docker build (AppImage, official) Setup dev container by running: ```sh docker compose up -d ``` Compile qFlipper by running: ```sh docker compose exec dev ./build_linux.sh ``` #### Standalone build Build requirements: - Qt5 >= 5.15.0 or Qt6 >= 6.3.0 - libusb >= 1.0.16 - zlib >= 1.2.0 Make sure to install the following Qt modules (the exact package names might differ slightly depending on your Linux distribution): ``` base, tools, serialport, declarative, wayland, [quickcontrols2, graphicaleffects] (Qt5 only), qt5-compat (Qt6 only) ``` Then run: ```sh mkdir build && cd build qmake ../qFlipper.pro PREFIX=/path/to/install/dir -spec linux-g++ CONFIG+=qtquickcompiler && make qmake_all && make && make install ``` **Caution:** `make install`ing to the system prefix is not recommended. Instead, use this method for building distro-specific packages. In this case, it is possible to disable the built-in application update feature by passing `DEFINES+=DISABLE_APPLICATION_UPDATES` to the `qmake` call. ### MacOS Build requirements: - Xcode or command line tools - Qt6 6.3.1 static universal from [Flipper brew tap](https://github.com/flipperdevices/homebrew-flipper) - libusb 1.0.24 universal from [Flipper brew tap](https://github.com/flipperdevices/homebrew-flipper) - [dmgbuild](https://pypi.org/project/dmgbuild/) >= 1.5.2 If you want to sign binaries, set `SIGNING_KEY` environment variable: export SIGNING_KEY="Your Developer Key ID" Building, signing and creating package: ./build_mac.sh Resulting image can be found in: `build_mac/qFlipper.dmg` ## Run ### Linux ```sh ./build/qFlipper-x86_64.AppImage ``` or just launch the file above from your favourite file manager. You will likely need to set up udev rules in order to use qFlipper as a normal user: ```sh ./qFlipper-x86_64.AppImage rules install [/optional/path/to/rules/dir] ``` #### Package managers support See [contrib](./contrib) for available options. ## Project structure - `application` - The main graphical application, written mostly in QML. - `cli` - The command line interface, provides nearly all main application's functionality. - `backend` - The backend library, written in C++. Takes care of most of the logic. - `dfu` - Low level library for accessing USB and DFU devices. - `plugins` - Protobuf-based communication protocol support. - `3rdparty` - Third-party libraries. - `contrib` - Contributed packages and scripts. - `driver-tool` - DFU driver installation tool for Windows (based on `libwdi`). - `docker` - Docker configuration files. - `installer-assets` - Supplementary data for deployment. ## Reporting bugs qFlipper is a project under active development. Please report any encountered bugs to make it better! The (mostly) complete guide is located [here](./.github/ISSUE_TEMPLATE/bug_report.md). ## Known bugs * Sometimes Flipper's serial port doesn't get recognised by the OS, which leads to firmware update errors. This is a firmware issue. * On some systems, there is noticeable flicker during opening, closing or resizing of the log area. * Release source archives are automatically generated by Github and are unsuitable for building as they do not contain submodules. flipperdevices-qFlipper-bfce851/application/000077500000000000000000000000001452337521700213115ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/application.cpp000066400000000000000000000166141452337521700243300ustar00rootroot00000000000000#include "application.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "updateregistry.h" #include "deviceregistry.h" #include "screencanvas.h" #include "preferences.h" #include "backenderror.h" #include "inputevent.h" #include "logger.h" Q_LOGGING_CATEGORY(LOG_APP, "APP") Application::Application(int &argc, char **argv): QtSingleApplication(QStringLiteral(APP_NAME), argc, argv), m_updateRegistry(globalPrefs->checkApplicationUpdates() ? QStringLiteral("https://update.flipperzero.one/qFlipper/directory.json") : QString()), m_isDeveloperMode(QGuiApplication::queryKeyboardModifiers() & Qt::KeyboardModifier::AltModifier), m_updateStatus(UpdateStatus::NoUpdates) { if(isRunning()) { sendMessage(QStringLiteral("IT'S ME.")); std::exit(0); return; } initCommandOptions(); initConnections(); initLogger(); initQmlTypes(); initTranslations(); initImports(); initStyles(); initFonts(); initGUI(); qCInfo(LOG_APP).noquote() << APP_NAME << "version" << APP_VERSION << "commit" << APP_COMMIT << QDateTime::fromSecsSinceEpoch(APP_TIMESTAMP).toString(Qt::ISODate); qCInfo(LOG_APP).noquote() << "OS info:" << QSysInfo::prettyProductName() << QSysInfo::productVersion() << QSysInfo::kernelVersion() << "Qt" << qVersion(); if(m_isDeveloperMode) { qCCritical(LOG_APP) << "Developer mode is enabled! Please be careful."; } } Application::~Application() { qCInfo(LOG_APP).noquote() << APP_NAME << "exited"; } ApplicationUpdater *Application::updater() { return &m_updater; } const QString Application::commitNumber() { return APP_COMMIT; } bool Application::isDeveloperMode() const { return m_isDeveloperMode; } Application::UpdateStatus Application::updateStatus() const { return m_updateStatus; } void Application::selfUpdate() { m_updater.installUpdate(m_updateRegistry.latestVersion()); } void Application::checkForUpdates() { if(m_updateStatus == UpdateStatus::Checking) { return; } setUpdateStatus(UpdateStatus::Checking); m_updater.reset(); m_updateRegistry.check(); } void Application::onMessageReceived() { qCDebug(LOG_APP) << "Another instance was prevented from running"; } void Application::onLatestVersionChanged() { if(m_updateRegistry.state() == ApplicationUpdateRegistry::State::Ready && m_updater.canUpdate(m_updateRegistry.latestVersion())) { setUpdateStatus(UpdateStatus::CanUpdate); } else { setUpdateStatus(UpdateStatus::NoUpdates); } } void Application::onCurrentDeviceChanged() { if(m_fileDialog.isOpen()) { m_fileDialog.close(); } } void Application::initConnections() { connect(this, &QtSingleApplication::messageReceived, this, &Application::onMessageReceived); connect(&m_updateRegistry, &Flipper::UpdateRegistry::latestVersionChanged, this, &Application::onLatestVersionChanged); connect(&m_backend, &ApplicationBackend::currentDeviceChanged, this, &Application::onCurrentDeviceChanged); } void Application::initCommandOptions() { QCommandLineParser parser; const auto developerModeOption = QCommandLineOption({QStringLiteral("x"), QStringLiteral("developer-mode")}, QStringLiteral("Enable developer mode.")); const auto usbLogLevelOption = QCommandLineOption({QStringLiteral("u"), QStringLiteral("usb-log-level")}, QStringLiteral("Set USB backend log level, 0 - none"), QStringLiteral("0")); parser.addOption(developerModeOption); parser.addOption(usbLogLevelOption); parser.addVersionOption(); parser.addHelpOption(); parser.process(*this); m_isDeveloperMode |= parser.isSet(developerModeOption); if(parser.isSet(usbLogLevelOption)) { bool canConvert; const auto value = parser.value(usbLogLevelOption).toInt(&canConvert); if(!canConvert) { qCDebug(LOG_APP) << "USB log level has to be a non-negative number"; } else { m_backend.deviceRegistry()->setBackendLogLevel(value); } } } void Application::initLogger() { qInstallMessageHandler(Logger::messageOutput); } void Application::initStyles() { #ifdef Q_OS_LINUX setWindowIcon(QIcon(":/assets/icons/qFlipper.ico")); #endif QQuickWindow::setDefaultAlphaBuffer(true); QQuickWindow::setTextRenderType(QQuickWindow::NativeTextRendering); #if QT_VERSION < 0x060000 QQuickStyle::setStyle(":/styles/DefaultAmber"); #else QQuickStyle::setStyle("DefaultAmber"); #endif } void Application::initTranslations() { QTranslator translator; const QStringList uiLanguages = QLocale::system().uiLanguages(); for (const QString &locale : uiLanguages) { if (translator.load(":/i18n/" + QLocale(locale).name())) { installTranslator(&translator); break; } } } void Application::initQmlTypes() { qmlRegisterType("QFlipper", 1, 0, "ScreenCanvas"); qmlRegisterUncreatableType("QFlipper", 1, 0, "BackendError", QStringLiteral("This class is only a enum container")); qmlRegisterUncreatableType("QFlipper", 1, 0, "InputEvent", QStringLiteral("This class is only a enum container")); qmlRegisterUncreatableType("QFlipper", 1, 0, "ApplicationBackend", QStringLiteral("This class is meant to be created from c++")); qmlRegisterUncreatableType("QFlipper", 1, 0, "ApplicationUpdater", QStringLiteral("This class is meant to be created from c++")); qmlRegisterSingletonInstance("QFlipper", 1, 0, "Logger", globalLogger); qmlRegisterSingletonInstance("QFlipper", 1, 0, "Preferences", globalPrefs); qmlRegisterSingletonInstance("QFlipper", 1, 0, "Backend", &m_backend); qmlRegisterSingletonInstance("QFlipper", 1, 0, "App", this); qmlRegisterSingletonInstance("QFlipper", 1, 0, "SystemFileDialog", &m_fileDialog); } void Application::initImports() { m_engine.addImportPath(":/imports"); m_engine.addImportPath(":/styles"); } void Application::initFonts() { QFontDatabase::addApplicationFont(":/assets/fonts/haxrcorp-4089.ttf"); QFontDatabase::addApplicationFont(":/assets/fonts/Born2bSportyV2.ttf"); QFontDatabase::addApplicationFont(":/assets/fonts/ProggySquare.ttf"); QFontDatabase::addApplicationFont(":/assets/fonts/ShareTech-Regular.ttf"); QFontDatabase::addApplicationFont(":/assets/fonts/ShareTechMono-Regular.ttf"); } void Application::initGUI() { const QUrl url(QStringLiteral("qrc:/main.qml")); const auto onObjectCreated = [url](QObject *obj, const QUrl &objUrl) { if (!obj && url == objUrl) { std::exit(-1); } }; connect(&m_engine, &QQmlApplicationEngine::objectCreated, this, onObjectCreated, Qt::QueuedConnection); m_engine.rootContext()->setContextProperty("qVersionMajor", QT_VERSION_MAJOR); m_engine.rootContext()->setContextProperty("qVersionMinor", QT_VERSION_MINOR); m_engine.rootContext()->setContextProperty("qVersionPatch", QT_VERSION_PATCH); m_engine.load(url); } void Application::setUpdateStatus(UpdateStatus newUpdateStatus) { if(newUpdateStatus == m_updateStatus) { return; } m_updateStatus = newUpdateStatus; emit updateStatusChanged(); } flipperdevices-qFlipper-bfce851/application/application.h000066400000000000000000000036431452337521700237730ustar00rootroot00000000000000#pragma once #include #include #include "qtsingleapplication/qtsingleapplication.h" #include "applicationupdater.h" #include "applicationbackend.h" #include "systemfiledialog.h" #include "applicationupdateregistry.h" class Application : public QtSingleApplication { Q_OBJECT Q_PROPERTY(QString name READ applicationName NOTIFY applicationNameChanged) Q_PROPERTY(QString version READ applicationVersion NOTIFY applicationVersionChanged) Q_PROPERTY(QString commit READ commitNumber CONSTANT) Q_PROPERTY(ApplicationUpdater* updater READ updater CONSTANT) Q_PROPERTY(bool isDeveloperMode READ isDeveloperMode CONSTANT) Q_PROPERTY(UpdateStatus updateStatus READ updateStatus NOTIFY updateStatusChanged) enum OptionIndex { DeveloperModeOption = 0, }; public: enum class UpdateStatus { NoUpdates, Checking, CanUpdate }; Q_ENUM(UpdateStatus) Application(int &argc, char **argv); ~Application(); ApplicationUpdater *updater(); static const QString commitNumber(); bool isDeveloperMode() const; UpdateStatus updateStatus() const; Q_INVOKABLE void selfUpdate(); Q_INVOKABLE void checkForUpdates(); signals: void updateStatusChanged(); private slots: void onMessageReceived(); void onLatestVersionChanged(); void onCurrentDeviceChanged(); private: void initCommandOptions(); void initConnections(); void initLogger(); void initStyles(); void initTranslations(); void initQmlTypes(); void initImports(); void initFonts(); void initGUI(); void setUpdateStatus(UpdateStatus newUpdateStatus); ApplicationUpdater m_updater; ApplicationUpdateRegistry m_updateRegistry; SystemFileDialog m_fileDialog; ApplicationBackend m_backend; QQmlApplicationEngine m_engine; bool m_isDeveloperMode; UpdateStatus m_updateStatus; }; flipperdevices-qFlipper-bfce851/application/application.pro000066400000000000000000000056541452337521700243500ustar00rootroot00000000000000QT += quick serialport widgets quickcontrols2 svg include(../qflipper_common.pri) TARGET = $$NAME DESTDIR = $$OUT_PWD/.. CONFIG += c++11 SOURCES += \ application.cpp \ applicationupdater.cpp \ applicationupdateregistry.cpp \ main.cpp \ qtsingleapplication/qtlocalpeer.cpp \ qtsingleapplication/qtlockedfile.cpp \ qtsingleapplication/qtlockedfile_unix.cpp \ qtsingleapplication/qtlockedfile_win.cpp \ qtsingleapplication/qtsingleapplication.cpp \ qtsingleapplication/qtsinglecoreapplication.cpp \ screencanvas.cpp \ systemfiledialog.cpp RESOURCES += qml.qrc TRANSLATIONS += \ translations/en_US.ts CONFIG += lrelease CONFIG += embed_translations QML_IMPORT_PATH += $$PWD/imports unix:!macx { QTPLUGIN += qxdgdesktopportal QTPLUGIN.platforms += qxcb qwayland-egl qwayland-generic } win32:!win32-g++ { PRE_TARGETDEPS += \ $$OUT_PWD/../backend/backend.lib \ $$OUT_PWD/../dfu/dfu.lib } else:unix|win32-g++ { PRE_TARGETDEPS += \ $$OUT_PWD/../backend/libbackend.a \ $$OUT_PWD/../dfu/libdfu.a contains(CONFIG, static): PRE_TARGETDEPS += \ $$OUT_PWD/../plugins/libflipperproto0.a \ $$OUT_PWD/../3rdparty/lib3rdparty.a } unix|win32 { LIBS += \ -L$$OUT_PWD/../backend/ -lbackend \ -L$$OUT_PWD/../dfu/ -ldfu contains(CONFIG, static): LIBS += \ -L$$OUT_PWD/../plugins/ -lflipperproto0 \ -L$$OUT_PWD/../3rdparty/ -l3rdparty } win32 { equals(HAS_VERSION, 0) { RC_SUFFIX = -rc contains(GIT_VERSION, .*$${RC_SUFFIX}.*) { # Remove -rc suffix as it isn't allowed in Windows manifest TOKENS = $$split(GIT_VERSION, -) VERSION = $$first(TOKENS) } else { VERSION = $$GIT_VERSION } } else: VERSION = 0.0.0 } macx: ICON = assets/icons/$${NAME}.icns else:win32: RC_ICONS = assets/icons/$${NAME}.ico INCLUDEPATH += \ $$PWD/../dfu \ $$PWD/../backend DEPENDPATH += \ $$PWD/../dfu \ $$PWD/../backend HEADERS += \ application.h \ applicationupdater.h \ applicationupdateregistry.h \ qtsingleapplication/qtlocalpeer.h \ qtsingleapplication/qtlockedfile.h \ qtsingleapplication/qtsingleapplication.h \ qtsingleapplication/qtsinglecoreapplication.h \ screencanvas.h \ systemfiledialog.h DISTFILES += unix:!macx { target.path = $$PREFIX/bin desktopfiles.files = $$PWD/../installer-assets/appimage/$${TARGET}.desktop desktopfiles.path = $$PREFIX/share/applications iconfiles.files = $$PWD/assets/icons/$${TARGET}.png iconfiles.path = $$PREFIX/share/icons/hicolor/512x512/apps udevfiles.files = $$PWD/../installer-assets/udev/42-flipperzero.rules udevfiles.path = $$PREFIX/lib/udev/rules.d INSTALLS += target desktopfiles iconfiles udevfiles } else:win32 { target.path = $$DESTDIR/$$NAME INSTALLS += target } flipperdevices-qFlipper-bfce851/application/applicationupdater.cpp000066400000000000000000000144621452337521700257140ustar00rootroot00000000000000#include "applicationupdater.h" #include #include #include #include #include #include #include #include #include "preferences.h" #include "remotefilefetcher.h" Q_LOGGING_CATEGORY(CATEGORY_SELFUPDATES, "SFU") using namespace Flipper; using namespace Updates; ApplicationUpdater::ApplicationUpdater(QObject *parent): QObject(parent), m_state(Idle), m_progress(0) {} void ApplicationUpdater::reset() { setState(Idle); setProgress(0); } ApplicationUpdater::State ApplicationUpdater::state() const { return m_state; } double ApplicationUpdater::progress() const { return m_progress; } // TODO: Handle -rcxx suffixes correctly bool ApplicationUpdater::canUpdate(const Flipper::Updates::VersionInfo &versionInfo) const { const auto appDate = QDateTime::fromSecsSinceEpoch(APP_TIMESTAMP).date(); const auto appVersion = QStringLiteral(APP_VERSION); const auto appCommit = QStringLiteral(APP_COMMIT); if(!globalPrefs->checkApplicationUpdates()) { return false; } else if(versionInfo.date() > appDate) { return true; } else if(globalPrefs->applicationUpdateChannel() == QStringLiteral("development")) { return (versionInfo.date() == appDate) && (versionInfo.number() != appCommit); } else if(globalPrefs->applicationUpdateChannel() == QStringLiteral("release-candidate")) { return VersionInfo::compare(versionInfo.number(), appVersion) > 0; } else if(globalPrefs->applicationUpdateChannel() == QStringLiteral("release")) { return VersionInfo::compare(versionInfo.number(), appVersion) > 0; } else { return false; } } void ApplicationUpdater::installUpdate(const Flipper::Updates::VersionInfo &versionInfo) { #ifdef Q_OS_WINDOWS const auto fileInfo = versionInfo.fileInfo(QStringLiteral("installer"), QStringLiteral("windows/amd64")); #elif defined(Q_OS_MAC) const auto fileInfo = versionInfo.fileInfo(QStringLiteral("dmg"), QStringLiteral("macos/amd64")); #elif defined(Q_OS_LINUX) const auto fileInfo = versionInfo.fileInfo(QStringLiteral("AppImage"), QStringLiteral("linux/amd64")); #else #error "Unsupported OS" #endif const auto fileName = QFileInfo(fileInfo.url()).fileName(); #if defined(Q_OS_WINDOWS) || defined(Q_OS_MAC) const auto filePath = QDir::temp().absoluteFilePath(fileName); #elif defined(Q_OS_LINUX) const auto filePath = QDir::current().absoluteFilePath(fileName); #else #error "Unsupported OS" #endif auto *file = new QFile(filePath + QStringLiteral(".part")); auto *fetcher = new RemoteFileFetcher(this); const auto cleanup = [=]() { file->deleteLater(); fetcher->deleteLater(); }; connect(fetcher, &RemoteFileFetcher::finished, this, [=]() { if(fetcher->isError()) { qCWarning(CATEGORY_SELFUPDATES).noquote() << "Failed to download application update package:" << fetcher->errorString(); setState(ErrorOccured); cleanup(); return; } qCInfo(CATEGORY_SELFUPDATES) << "Application update package has been downloaded."; setState(Updating); // IMPORTANT -- The file is closed automatically before renaming (https://doc.qt.io/qt-5/qfile.html#rename) QFile oldFile(filePath); if(oldFile.exists() && !oldFile.remove()) { qCDebug(CATEGORY_SELFUPDATES).noquote() << "Failed to remove old update package:" << oldFile.fileName(); setState(ErrorOccured); cleanup(); return; } else if(!file->rename(filePath)) { qCDebug(CATEGORY_SELFUPDATES).noquote() << "Failed to rename .part file:" << file->fileName(); setState(ErrorOccured); file->remove(); cleanup(); return; } #if defined(Q_OS_LINUX) const auto executable = QFile::Permission::ExeUser | QFile::Permission::ExeOwner | QFile::Permission::ExeGroup | QFile::Permission::ExeOther; file->setPermissions(file->permissions() | executable); #endif cleanup(); if(!performUpdate(filePath)) { qCWarning(CATEGORY_SELFUPDATES) << "Failed to start the application update process."; setState(ErrorOccured); } }); connect(fetcher, &RemoteFileFetcher::progressChanged, this, &ApplicationUpdater::setProgress); if(!fetcher->fetch(fileInfo, file)) { qCWarning(CATEGORY_SELFUPDATES) << "Failed to start downloading the update package."; setState(ErrorOccured); file->remove(); cleanup(); } else { qCWarning(CATEGORY_SELFUPDATES) << "Downloading the application update package..."; setState(Downloading); } } void ApplicationUpdater::setState(ApplicationUpdater::State state) { if(m_state == state) { return; } m_state = state; emit stateChanged(); } void ApplicationUpdater::setProgress(double progress) { if(qFuzzyCompare(m_progress, progress)) { return; } m_progress = progress; emit progressChanged(); } bool ApplicationUpdater::performUpdate(const QString &path) { const auto exitApplication = []() { qCInfo(CATEGORY_SELFUPDATES) << "Update started, exiting the application..."; QCoreApplication::exit(0); }; #if defined(Q_OS_WINDOWS) const auto success = QDesktopServices::openUrl(QUrl::fromLocalFile(path)); if(success) exitApplication(); return success; #elif defined(Q_OS_MAC) auto *mountDmg = new QProcess(this); mountDmg->setProgram(QStringLiteral("open")); mountDmg->setArguments({path}); connect(mountDmg, QOverload::of(&QProcess::finished), this, [=](int exitCode, QProcess::ExitStatus exitStatus) { mountDmg->deleteLater(); if(!exitCode && exitStatus == QProcess::NormalExit) { exitApplication(); } else { qCWarning(CATEGORY_SELFUPDATES) << "Failed to open the disk image."; } }); mountDmg->start(); return mountDmg->error() == QProcess::UnknownError; //Really? no NoError code? #elif defined(Q_OS_LINUX) const auto success = QProcess::startDetached(path); if(success) exitApplication(); return success; #else #error "Unsupported OS" #endif } flipperdevices-qFlipper-bfce851/application/applicationupdater.h000066400000000000000000000016331452337521700253550ustar00rootroot00000000000000#pragma once #include #include "flipperupdates.h" class ApplicationUpdater : public QObject { Q_OBJECT Q_PROPERTY(double progress READ progress NOTIFY progressChanged) Q_PROPERTY(State state READ state NOTIFY stateChanged) public: enum State { Idle, Downloading, Updating, ErrorOccured }; Q_ENUM(State) ApplicationUpdater(QObject *parent = nullptr); void reset(); State state() const; double progress() const; bool canUpdate(const Flipper::Updates::VersionInfo &versionInfo) const; void installUpdate(const Flipper::Updates::VersionInfo &versionInfo); signals: void stateChanged(); void progressChanged(); private slots: void setState(ApplicationUpdater::State state); void setProgress(double progress); private: bool performUpdate(const QString &path); State m_state; double m_progress; }; flipperdevices-qFlipper-bfce851/application/applicationupdateregistry.cpp000066400000000000000000000007331452337521700273170ustar00rootroot00000000000000#include "applicationupdateregistry.h" #include "preferences.h" using namespace Flipper; ApplicationUpdateRegistry::ApplicationUpdateRegistry(const QString &directoryUrl, QObject *parent): UpdateRegistry(directoryUrl, parent) { connect(globalPrefs, &Preferences::applicationUpdateChannelChanged, this, &UpdateRegistry::latestVersionChanged); } const QString ApplicationUpdateRegistry::updateChannel() const { return globalPrefs->applicationUpdateChannel(); } flipperdevices-qFlipper-bfce851/application/applicationupdateregistry.h000066400000000000000000000004331452337521700267610ustar00rootroot00000000000000#pragma once #include "updateregistry.h" class ApplicationUpdateRegistry : public Flipper::UpdateRegistry { Q_OBJECT public: ApplicationUpdateRegistry(const QString &directoryUrl, QObject *parent = nullptr); private: const QString updateChannel() const override; }; flipperdevices-qFlipper-bfce851/application/assets/000077500000000000000000000000001452337521700226135ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/fonts/000077500000000000000000000000001452337521700237445ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/fonts/Born2bSportyV2.ttf000066400000000000000000001543541452337521700272540ustar00rootroot00000000000000`FFTM_GDEFذOS/2<hVcmapq cvt " gaspبglyfmthead}6hhea$$hmtxWPsbloca0it maxp>H namepostOiX vG_< ,z,z\X@.3 @2ttf@ \v"U@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,  ~~ OR[_ = 0 ~QX_ = 0qC   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aqdeiwokujrgvl{zcnm|b9xMpIJKyNL"****Hd^p,N8j B\x n$Np0N0` > p * P f z * X z  L d  D d 6f,LLlDd8nFl(@d N~.n.dBd@x(h >tN8x.h>`R : d !!8!r!!"$"^""##F#|##$&$`$$%%>%v%%&&F&&&'$'\'''(4(r(()4)n))***b***+"+J+l++++, ,@,V,,,- -\---..8.Z..../ /H/|//00L0~0011:1p112&2h2233J3334 4d445 5`5566B6t6667"7^777848f889&9b99::F::;;:;r;;<0>`>t>>>>??>?`???@ @@@b@@AA>ApAAABB:BlBBBCCBCpCCCDD8D`DDDE2E\EEFF:FZFFGG0GfGGGH0HJHvHHHI0IZI~IIJJ"JHJJJK"KLKKKL*LfLLLM"MLMzMMNN$N\NNNO2OrOOPP,PXP~PPPQ QXQQQRRJRvRRSSJSzSST T(TXTTTU.UlUUUVVHVlVVVWWVWWWXX>XhXXXY4YbYYYZ2ZfZZZ[([([`[[\\B"2./<2<2/<2<23!'3#"V"f@3#=;'#=;@@@@@@@@@@@@@@@@@@@@@@@@@@ #=;!#=;@@@@@@@@@@@@@@@@@@@@-3!#=#+=#=3=#=3=;3=;3#3#=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/!#5+=;5+5#=3535;;+;3##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?!#5#=35++=3535#5#=35;3#;=;##33#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3;!#5#+5#=35#=35;3+5+;35;#3%3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #=;@@@@@@@@@@@@3#5#=35;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=3=#=;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@!%#=++=35#=;=;;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#=+=;=;;+@@@@@@@@@@@@@@@@@@@@@@@@ #=;@@@@@@@@@@@@ %+=;@@@@@@@@@@@@@@@3#=;@@@@@@@@3#=35;=;#+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'/!+5#=35;3#'3=##535+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=#=; @@@@@@@@@@@@@@@@@@@@@@@@@@1!+=35;=++=35;3#+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1!+5#=;;=+=;=++=35;3#3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!+!#=+=3535;3#3=##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1!+5#=;;=+=;+;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)1!+5#=35;3+5+;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!#=#=3=3535++=;##3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+3!+5#=35#=35;3#3#'3=+3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)1!+5#=;;=+5#=35;3#3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#=;@@@@@@@@@@@@@@@@ #=;#=;@@@@@@@@@@@@@@@@@@@@!%#5+5+=;5;5;++;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+=;'+=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!7#=;5;5+5+=;;;++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!#=;'#=;=++=35;3##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q!+5#5#=3535;33#+5#=35;33=#5+#3;53#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+!#=++=35;33=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'-!+=;3#3#'3=+35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!+5#=35;3+5+;5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+=;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!+=;+;+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!3#=;+;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/!+5#=35;3+5+;5#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++=;;=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;@@@@@@@@@@@@@@@@@@@@@@@!+5#=;;=;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!#=++=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!+=;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=!#=#+=#+=35;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++=35;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+5#=35;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%3#=;3#+3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!/!#5#+5#=35;3#3'53=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-!#=++=;3#33=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1!+5#=;;5#5+5#=35;3+5+3;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=+=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+5#=;;=;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!#=#=#=;;=;##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=!+5#=;3=;3=;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/!#=++=35#=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!+=;5+5#=;;=;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!+=35;5+=;#+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3+= ;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=+5#=;;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3+=3=#=; @@@@@@@@@@@@@@@@@@@@@@@@@@@@#=++=3=3=;33@@@@@@@@@@@@@@@@@@@@@@@@@@@@+=;@@@@@@@@@@@@@@@@@@ #5#=;3@@@@@@@@@@@@#)!+5#=35;5+=;3'35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+= ;;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+5#=35;3+5+;5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+5#=35;=; '3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)!+5#=35;3+;35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=#=3=35;#3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5+=;5+5#=35; #3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++= ;;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@#+=;=;##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!#=++= ;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#= ; @@@@@@@@@@@@@@@@@@@@@@@@@9!#=#+=#+=;35;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!#=++=;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+5#=35;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!-#= ;3#+3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!-#=+5#=35; 3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;3+5+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+=;5+5#=35;+;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#5#=#=3=;3#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+5#=;;=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#!#=#=#=;;=;##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7!+5#=;3=;3=;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++=35#=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5+=;5+5#=;;=; #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+=35;5+=;#+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#5#=#=3=35;##33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#= ; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=3=35#=#=;33##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5#+=35;35;#@@@@@@@@@@@@@@@@@@@@@@@@#=;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@/#=#5#=353=;33+5+;5;##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!#5++=3=#=3=35;3+5#3#3;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#'%#5++=3=#=;;5;#3'5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3!#=+5;5+5;5#5#=;;=;##;+;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #=;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;G+=;5+5#=35#=35;+;3#3#3=+3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=;!#=;@@@@@@@@@@@@@@@'5CG!+5#5#=3535;33##%5#=#3%=#+;5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+=35;5+5;3'5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+%#5#5#53535;##33!#5#5#53535;##33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#=+=;@@@@@@@@@@@@@@@@@@@@@@'=SW!+5#5#=3535;33##'35+5##=#3;7=#5+;3#3'5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+=;@@@@@@@@@@@@@@@@@@@+5#=35;3#'5#@@@@@@@@@@@@@@@@@@@@@@@@@@'!+=;'#=+=;=;;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +=;;'5+=;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@+=;5#5#=;#3#@@@@@@@@@@@@@@@@@@@@@@@@@@ #=35;#@@@@@@@@@@@@@-#= ;;=;#+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C#= # +=+5#=35;# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=;@@@@@@@@@ +=35;@@@@@@@@@@@@#=#=;@@@@@@@@@@@@@@@@@@+5#=35;3#'=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+%#53535#5#5;33##!#53535#5#5;33##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!/#5+=;3=;3+5;5#=#5;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ '5!3+=;37#5+5;3+5;5#=#5;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!;#5+=;3=;3+5;7+5;5+5#5;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'+5#=3535;+;5;##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+5!#=++=35;33=+#5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+5!#=++=35;33=+#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+7!#=++=35;33=++535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3;=;353+5##=++=35;33=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+3;!#=++=35;33=+#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-15;!#=++=3535;333=+53+5;+5;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@17!+=#+=35;+;+;=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1#=35#5#=35;3+5+;5;###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)3!+=;+;+;#5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)3!+=;+;+;#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5!+=;+;+;+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)19!+=;+;+;#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!3#=;+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%!#=;#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/!+=#=3=;3#'3=+3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;=;353+5##=++=35;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!+5#=35;3#'3=+#5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!+5#=35;3#'3=+#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+5#=35;3#'3=++535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-;=;353+5#+5#=35;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+3;!+5#=35;3#'3=+#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+%#5#5##+=3535#5#=;33535;##33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-53=3=35;353##+5#73=##7535+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!+5#=;;=;##5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!+5#=;;=;##535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+5#=;;=;#+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+3;!+5#=;;=;##=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-7!+=;5+5#=;;=;##535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3#=;;3#+73=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@9!+=;=#5#=35++=35;3#33#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)3!+5#=35;5+=;3'35+#5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)3!+5#=35;5+=;3'35+#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)5!+5#=35;5+=;3'35++535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@39=;353+5#+5#=35;5+=;3'35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)19!+5#=35;5+=;3'35+#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+/39!+5#=35;5+=;5;33'35+53+5;+5;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/37!+5#+5#=35;5+=;35;3#+;%5#%5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/#=35#5#=35;3+5+;5;###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)3!+5#=35;3+;35+#5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)3!+5#=35;3+;35+#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)5!+5#=35;3+;35++535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)19!+5#=35;3+;35+#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#!#=;#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)1!+5#=35;5+535#5;353#3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7=;353+5##=++=;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1!+5#=35;3#'3=+#5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1!+5#=35;3#'3=+#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!+5#=35;3#'3=++535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7=;353+5#+5#=35;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'/7!+5#=35;3#'3=+#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#!#=;7+=;%#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/3353!+5#=35;3#'3=#535+3#53@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1!+5#=;;=;#5#5;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1!+5#=;;=;#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!+5#=;;=;+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'/7!+5#=;;=;#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5?+=;5+5#=;;=; ##535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#/#= ;;3#+3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5=E+=;5+5#=;;=; ##=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+7!#=++=35;33=++=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)5!+5#=35;5+=;3'35++=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+7!#=++=35;33=+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)5!+5#=35;5+=;3'35+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-5#5#=3=++=35;3#33=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+1#5#=+5#=35;5+=;3#335+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)3!+5#=35;3+5+;5;##535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1!+5#=35;3+5+;5;##535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5!+5#=35;3+5+;5;#+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!+5#=35;3+5+;5;#+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)1!+5#=35;3+5+;5;##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'/!+5#=35;3+5+;5;##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5!+5#=35;3+5+;5;##5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!+5#=35;3+5+;5;##5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+=;3#'3=+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+5#=35;=; '3=+#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/!+=#=3=;3#'3=+3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#-!+5#=35;5#535;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5!+=;+;+;+=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)5!+5#=35;3+;35++=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5!+=;+;+;#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)5!+5#=35;3+;35+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)1!+=;+;+;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)1!+5#=35;3+;35+#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1#5#=+=;+;+;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+1#5#=+5#=35;3+;#335+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5!+=;+;+;#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)5!+5#=35;3+;35+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/;!+5#=35;3+5+;5#=;+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5A+=;5+5#=35; #3=++535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/;!+5#=35;3+5+;5#=;#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5A+=;5+5#=35; #3=+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/7!+5#=35;3+5+;5#=;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5A+=;5+5#=35; #3=+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7#=35#5#=35;3+5+;5#=;+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5?+=;5+5#=35; #3=+#=353@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!#=++=;;=;+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5!#=++= 3535;3+;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+1!#=++=#535;;5;3#35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!#=++=#535;3#;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=;353+5##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=;353+5##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!3#=;+=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;+=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!3#=;#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#5#=3=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##5#=3=;#3#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;@@@@@@@@@@@@@@@@@@@@@/!+=;=;#!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-5=+=;=;#'#=;#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+5#=;;=;#+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)+=;=; #+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9#=35;#7=++=;;=;#3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9#=35;#7=++= ;;=;#3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!#=++=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+=;;#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#=35+=;;+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=35#= ; 3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+= ;;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#3#= ; #=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%!+=;;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#= ; #=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+'=353=;353##;+=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#'=353=;353##+=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!#=++=35;3#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1!#=++=;3#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7#=35;#7=++=35;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3#=35;#7=++=;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!#=++=35;3#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!#=++=;3#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!#=++=;3#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!#=3=++=;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!#=3=++=;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+5#=35;3#'3=++=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!+5#=35;3#'3=++=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+5#=35;3#'3=+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!+5#=35;3#'3=+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%37;53#53+5#=35;3#'3=+53+53@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#/3753#53+5#=35;3#'3=+53+53@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1?!+5#=35;+;+;%3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7=!+5#=35;3+;%3=+%35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-7!#=++=;3#33=+#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3#=;3+5+#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 19#=35;#7=++=;3#3#3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ )#=35;#'+=;3+5+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-9!#=++=;3#33=+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)3#=;3+5+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1;!+5#=;;5#5+5#=35;3+5+3;3##535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!+=;5+5#=35;+;3##535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1=!+5#=;;5#5+5#=35;3+5+3;3#+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+=;5+5#=35;+;3#+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@9#=35#5#=;;5#5+5#=35;3+5+3;3###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=35+=;5+5#=35;+;3###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1=!+5#=;;5#5+5#=35;3+5+3;3##5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+=;5+5#=35;+;3##5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ )#=35;##=+=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ )#=35;##5#=#=3=;3#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!#=+=;+#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!#5#=#=3=;3#3#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!!#=#=3=+=;+3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!!#5#=#=35#=3=;3#3#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;=;353+5#+5#=;;=;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7=;353+5#+5#=;;=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+5#=;;=;#+=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!+5#=;;=;+=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+5#=;;=;##5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'3!+5#=;;=;#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+159?!+5#=;;=;#+5;153+5;+5;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'-15;!+5#=;;=;+5;153+5;+5;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@37;53#53+5#=;;=;#53+53@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/3753#53+5#=;;=;53+53@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#5#=#5#=;;=;+3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/#5#=+5#=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=I!+5#=;3=;3=;#+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7C!+5#=;3=;3=;#+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-9!+=;5+5#=;;=;#+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5A+=;5+5#=;;=; #+535;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-5=!+=;5+5#=;;=;##=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-7!+=35;5+=;#+;#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!+=35;5+=;#+;#535;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-5!+=35;5+=;#+;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+3!+=35;5+=;#+;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-9!+=35;5+=;#+;#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+7!+=35;5+=;#+;#5#5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=35;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@ =#5;#+53=33@@@@@@@@@@@@@@@@@@@@@@@@@ =#5;#@@@@@@@@@@@@@7#=35#=;3#@@@@@@@@@@@@@@@@@@7#5#=35;#3@@@@@@@@@@@@@@@@@@@ %+=35;3@@@@@@@@@@@@@@@ 7#5#=;#@@@@@@@@@@@@@@@7#5#=35;3#@@@@@@@@@@@@@@@@%#5#+=;35;@@@@@@@@@@@@@@@@@@@@@@@+5#=;35;#@@@@@@@@@@@@@@@@@#=;@@@@@@@@@ 3+53=3+=37+5;@@@@@@@@@@@@@@@@@@@@@@@ #5#=;3@@@@@@@@@@@@@=;353+5#@@@@@@@@@@@@@@@@@@ 5##=;#@@@@@@@@@@@@@@@@%#5#=#=;3@@@@@@@@@@@@@@@@@@+3S+= ; %3=+735353=#5+#;5;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!%%+5#=35#5#5;33535;##3#'5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #=;@@@@@@@@@@@@@@@@+5;5+=;+;@@@@@@@@@@@@@@@@@@@@@@@@@@ =3#=37#531=3+=3@@@@@@@@@@@@@@@@@@@@@@@@@@@ =3'#=373+5@@@@@@@@@@@@@@@@@@@@#= +5; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=+5;=3 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=+5;=3 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=+5;=3 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+5;= 3 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #=;#=;@@@@@@@@@@@@@@@@@@@@#+5!#=++=35;33=+%#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)3!+=;+;+;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!#=++=;;=;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!+5#=35;3#'3=+#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1!#=#5#=;;=;###=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5?!+=3=+3+=35#=35;3#3#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+!#=++=35;33=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'-!+=;3#3#'3=+35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+=3=3=;33'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!+=;+;+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!+=35;5+=;#+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++=;;=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-!+5#=35;3#'3=+73=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;@@@@@@@@@@@@@@@@@@@@@@@-!#=++=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!#=++=3=3=;33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=!#=#+=#+=35;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=!+5#=#+=;33=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+=;+=;5+=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+5#=35;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%3#=;3#+3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!+=3=#=;+;+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=+=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%!#=#5#=;;=;##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!)1!#5+5#=35;5;;3#+7=##=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/!#=++=35#=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1!#=+5#=;3=;3=;#+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5!+=3=+3+=35#=35;3#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%3#=;#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-5!#=#5#=;;=;###=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)3!#5#+5#=35;'53=+#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)3!+5#=35#=35;+;+;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-7#=++=;3 #=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3==3!=3+5#=;;=;##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!#5#+5#=35;'53=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@);#= 35;3#3#+5#=#=3=+3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-#=#5#=;;=;##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)1!+5#=3535#5#=;+333#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!+5#=35#=35;+;+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5#=+5#=35;=+=;#+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-7#=++=;3 #=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'/!+5#=35;3#'3=+3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#5#=;3@@@@@@@@@@@@@@@@@@@@@@)!#=++=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!#=++=3=3=#=;333@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1#= ;;=;3+5#+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=#=#=;;=;##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5#=+5#=35#=35;+;+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+5#=35;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!#=++=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!-#= 35;3#+3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)#=+5#=35;+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!+5#=35;#3#'3=#5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=+=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+5#=;;=;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1;#=+5#=;3=35;3#+=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++=35#=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=#=+5#=;3=;3=;#+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5!+5#=35;#3=;3=#=;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ !=3!=3#5#=;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3=3!=3+5#=;;=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1!+5#=35;3#'3=+#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1!+5#=;;=;##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5?!+5#=35;#3=;3=#=;3##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)19!+=;+;+;#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=3=++=#=;#;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!+=;=;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@17!+=##+=3=;;3#'=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/5!+=#+=;3=;;3#'=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!#=++=#=;#;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1#=+=;;=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+!#=++=35;33=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-!+=;+;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'-!+=;3#3#'3=+35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)7#=++=3=3=;33=##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!+=;+;+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A!#=#+=#+=35#=;3=;3=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)/!+5#=;;=+=+=35;3#3#35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=!#=##+=;3=35;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=I!#=##+=;3=35;+=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/!#5#=#+=;3=35;##33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!#=+#+=3=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=!#=#+=#+=35;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++=;;=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!+5#=35;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%3#=;3#+3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!+5#=35;3+5+;5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=+=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!+=;5+5#=;;=;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!)1!#5+5#=35;5;;3#+7=##=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/!#=++=35#=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1#=+=;;=;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%!#=+5#=;;=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=!+=;3=;3=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C#=+=;3=;3=;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+=#=;;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3;!#=;!+=;;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!+=;;3#'3=+3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'-!+5#=;;=+=+=35;3#35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/;!+5#=#+=;3=35;3#'=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-!#=++=35#=35;3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)!+5#=35;5+=;3'35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)5!+5#=35;#+;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)!+=;3#3#'35+735+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3#=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@%/#=++=3=;3=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)!+5#=35;3+;35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;!#=#+=#+=35#=;3=;3=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!'-!+5#=;=+=35;3#3#'35+735+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7!#=##+=;3=35;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7C!#=##+=;3=35;+=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#5#=#+=;353=;##33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)!#=+#+=3=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7!#=#+=#+=35;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!#=++=;;=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+5#=35;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!#=++=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!-#= ;3#+3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'!+5#=35;3+5+;5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=+=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5+=;5+5#=;;=; #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'1;#=+5#=35;=;;3#+=##=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+!#=++=35#=;;=;#3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-#=+=;;=;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#!#=+5#=;;=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7!+=;3=;3=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=#=+=;3=;3=;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%!+=#=;;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/7!#=;!+=;;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#!+=;;3#'3=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+!+5#=;=+=35;3#'35+735+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+5!+5#=#+=;3=35;3#'=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)!#=++=35#=35;35+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#)19!+5#=35;3+;35+#=;!#=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5+=;=++=#=35;3#;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!#=3=;##=;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-1!+=##+=3=;;3#'5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+/!+=#+=;3=;;3#'5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!#=++=#535;3#;3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+#=+=;;=;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+3#=;7+=;3=+=;3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3!+5#=#535#53=35;3+5+3#3#;5;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/3!#=#+=#=3=35;35;#3#5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-!#=#+=#=3=35;+;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)-!#=#+=#=3=35; 5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?C!#=#+=#+=#=3=35;35;+;5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;?C!#=#+=#+=#=3=35;35; 5##5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ?\/  !  N 2c    JapanYoshiJapanYoshiBorn2bSportyV2Born2bSportyV2MediumMediumJapanYoshi:Born2bSportyV2JapanYoshi:Born2bSportyV2Born2bSportyV2Born2bSportyV2Version 001.000 Version 001.000 Born2bSportyV2Born2bSportyV23  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     uni00A0uni00B2uni00B3uni00B5uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflex Tcommaaccent tcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongsuni02D0uni02D1uni02D2uni02D3uni02D4uni02D5uni02D6uni02D7uni02DEuni02DFuni02E0uni02E1uni02E2uni02E3uni02E4uni02E5uni02E6uni02E7uni02E8uni02E9uni037E Alphatonos EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosAlphaBetaGammaEpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsi IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdanuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonos afii10023 afii10051 afii10057 afii10058 afii10059 afii10060 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii10071 afii10099 afii10105 afii10106 afii10107 afii10108 afii10193uni203DEurouni3000uniFB00uniFB01uniFB02uniFB03uniFB04x+A,zflipperdevices-qFlipper-bfce851/application/assets/fonts/ProggySquare.ttf000066400000000000000000001211641452337521700271200ustar00rootroot00000000000000 @OS/2ktHNcmap#uRcvt glyf{^zheadבh6hheaC$hmtx}{locaKLjmaxp( name2postprepibm_<gw@ @ v2 Alts@ L0 h8|0BFN\0Nx , j l 4 ` 6 | (n~J0<z&xFl~>>X.f.RpX\  . z !V!!"`"#8#$$$6$`$$$%%"%d%%&`&'('t't''(<())2))*D**+R+p,,:,X,--v--.V.r...///0T011h12823 34445R56"667Z78@899x9:H::;\;<,<<=V=>(>>?n?@B@AArABDBBCC\CCDhDE&EEFRF~FGLGHHrHILI  #'+/37;?CGKOSW[_cgkosw{5315315315315315315353!5353!5353!5353!5353!5353!5353!5353!5353!5353153153153153153153 535353535353 533535335353353 #'+/37;?CGKOSW[_5335353353531531531531531535335353353531531531531531535335353353 #'+/37;?CGKOS535315315315353353533535315315353353533535315315315353 #'+/37;?CGK53!5353353!5353353353533533535335335353!5335353!53 #'+/37;?CGKO5315353!5353!5353153!5353!5335353!5353!5353153153353 535353  #'+5353535353535353535353  #'+5353535353535353535353  #'+5353353353531531535335335353  #5353531531531531535353 %53535353 53153153153153%5353  #'53535353535353535353 #'+/37;?CGKO5315315353!5353!53533533535335335353!5353!5353153153 #'+/375353153533535353535353153153153153 #'+/37;5315315315353535353535353153153153153 #'+/37;5315315315353535315353535353153153153 #'+/37;?C53531535335353!5353!53531531531531531535353 #'+/37;?CG53153153153153535353153153153535353!5353153153 #'+/37;?CG5315315353535315315315353!5353!5353!5353153153  #'+/5315315315315353535353535353 #'+/37;?CGK5315315353!5353!535315315353!5353!5353!5353153153 #'+/37;?CG5315315353!5353!5353!5353153153153535353153153 53535353 535353535353  #'5315353153531535315353153  #'+/5315315315315315353153153153153153  #'5315353153531535315353153  #'5315315353!535353535353 #'+/37;?CGKOSW[_cg5315315353!5353!53153353533533533535335335335353!531531535353153153153 #'+/37;?CGKO5315315353!5353!5353!535315315315315353!5353!5353!53 #'+/37;?CGKOSW5315315315353!5353!535315315315353!5353!5353!5353153153153 #'+/375315315315353535353535353153153153 #'+/37;?CGKO5315315315353!5353!5353!5353!5353!5353!5353153153153 #'+/37;?CGK5315315315315353535315315315353535353153153153153 #'+/37;5315315315315353535315315315353535353 #'+/37;?CG5315315315353535353!5315353!5353!5353153153153 #'+/37;?CGK53!5353!5353!535315315315315353!5353!5353!5353!53  #'+/5315315353535353535353153153  #'+/5315315353535353535353153153 #'+/37;?C53!5353!5353!53533535315315353!5353!5353!53  #'+/5353535353535353153153153153 #'+/37;?CGKOSW[_cg53153!5315353153!53153533533533535335335335353!53!5353!53!5353!5353!53 #'+/37;?CGKOSW53!5353153!5353153!53533533535335335353!5315353!5315353!53 #'+/37;?CG5315315353!5353!5353!5353!5353!5353!5353153153 #'+/37;?C5315315315353!5353!5353!5353153153153535353 #'+/37;?CGKO5315315353!5353!5353!5353!5353!5353!535315315353153 #'+/37;?CGKO5315315315353!5353!5353!535315315315353!5353!5353!53 #'+/37;?5315315315353535315315353535353153153153 #'+/375315315315315315315353535353535353 #'+/37;?C53!5353!5353!5353!5353!5353!5353!5353153153 #'+/3753!5353!5353!5353!5353353533535353 #'+/37;?CGKOSW[_53!5353!53!5353!53!5353353353353533533533535315335315353!5353!53 #'+/37;?53!5353!5353!53531535315353!5353!5353!53  #'+/53!5353!5353!535335353535353 #'+/37;?CG5315315315315315353535353535353153153153153153 #'+/3753153153535353535353535353153153  #'53535353535353535353 #'+/3753153153535353535353535353153153  #'5353533535335353!5353!53 531531531531531531535353 #'+/37;?53153153535315315315353!5353!5353153153153 #'+/37;?CG53535315315315353!5353!5353!5353!5353153153153  #'+/531531531535353535353153153153 #'+/37;?CG53535315315315353!5353!5353!5353!5353153153153 #'+/37;5315315353!5353153153153153535353153153  #'+/35315315353535315315315353535353 #'+/37;?CGKO5315315315353!5353!5353!5353!53531531531535353153153 #'+/37;?53535315315315353!5353!5353!5353!5353!53 53531535353535353  #'+/535315353535353535353153153 #'+/37;535353!5353!53533535315315353!5353!53  #5315353535353535353 #'+/37;?CGKO5315315335315353!53!5353!53!5353!53!5353!53!5353!53!53 #'+/375315315315353!5353!5353!5353!5353!53 #'+/375315315353!5353!5353!5353!5353153153 #'+/37;?CG5315315315353!5353!5353!5353!53531531531535353 #'+/37;?CG5315315315353!5353!5353!5353!53531531531535353  #'5335315353153!5353535353  #'+/531531535353153531535353153153  #'+/35353531531531535353535353153153 #'+/3753!5353!5353!5353!5353!5353153153153  #'53!5353!5353353533535353 #'+/37;?CG53!5353!53!5353!53!53533533533535315335315353!53  #'53!535335353535335353!53 #'+/37;?CG53!5353!5353!5353!5353!53531531531535353153153 #'+/37531531531531535353535353153153153153  #'+/35315353535353535353535353153  #'53535353535353535353  #'+/35315353535353535353535353153 53153153!5353!53153153 #'+/37;?CGK5315315353!5353153153153535315315315353!5353153153 %535353 #'+/37;5315353535315315315353535353535353 %533535335353353 353353353  #'+/3535353531531531531535353535353 #'+/37;?C535353153153153153535315315315315353535353 5353353 #'+/37;?CG5315315315315353!5353!5353!5353!5353153153153153 #'+/37;?CG533535353153153153535353153153535353153153153 5353535353 #'+/37;?CGKOSW[_5315315315315315353!5353!5353!5315315353!5353!5353153153153153153 #'+/37;?CG5315315315315353!5353!5353!5353!5353153153153153 #'+/37;?CGKOS53!535315353153153153153153535353535353153153153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 535353 535353 53!5353!5353!53 53!5353!5353!53  #531531535315315353153153 53153153153153 53153153153153153153 5335353353  #'+/531531531533535335315315353353353 #'+/37;?C53!5353153531531531535353153531535353153153 5353535353 #'+/37;?CGKOSW5315335315353!53!5353!5315315315353!5353!53!5353153153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?C5335353531531531531535353535353153153153153  #'+/53!5353!5353!535335353535353 535353535353 #'+/3753531531535335353353533535315315353  #'+/353153535353153153535353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG53!5353!535335353153153153153535315315315315353 535353535353 #'+/37;?CG5315315315353!5353!5353!5353!5353!535315315315353!53 #'+/37;?CGKOSW[_cgko5315315315315353!5353!5315335353353!5353353!5353!5315335353!5353153153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153  #'5335353353533535335353353 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 53153153153153 #'+/37;?CGKOSW[_cgkosw5315315315315353!5353353153!535335335335353353153!535335335335353!5353153153153153 53153153153153153153 535335353 #'+/37535353153153153153535353153153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!53531531531535353 #'+/37;?C53!5353!5353!5353!5353!53153531531533535353 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 5315353153 5353153 531535353 5315353!5353!5353153  #'5335353353533535335353353 #'+/37;?CG53!53533535335353!5353!531535335315315315353!53 #'+/37;?CGK53153!5353353533535335315315353!5353!5353!53153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153  #'+535353535353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CGKO533535315315353!5353!5353!535315315315315353!5353!53 #'+/37;?CGKO5353353535315315353!5353!535315315315315353!5353!53 #'+/37;?CGKOSW[_cgk5315315315315315353!5353!5353!531531535315315315353!5353!5353!53153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CGKOSW533535335353153!5353153!53533533535335335353!5315353!53153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153  #'+/53!5353!53531535315353!5353!53 #'+/37;?C5315353!5353!5335353353!5353353!5353!5353153 #'+/37;?C535353!5353!5353!5353!5353!5353!5353153153 #'+/37;?C535353!5353!5353!5353!5353!5353!5353153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?C53!5353!5353!5353!5353!5353!5353!5353153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?535315315315353!5353!5353!535315315315353 #'+/37;?CGK5315315353!5353!53533535335353!5353!5353353153153 #'+/37;?CG535353153153535315315315353!5353!5353153153153 #'+/37;?CG535353153153535315315315353!5353!5353153153153 #'+/37;?CGKO5315353!5353153153535315315315353!5353!5353153153153 #'+/37;?CGKO533535335353153153535315315315353!5353!5353153153153 #'+/37;?CG5335353153153535315315315353!5353!5353153153153 #'+/37;?CGKO53533535353153153535315315315353!5353!5353153153153 #'+/37;?CGKOSW5315335315353!535315315315315315353!5353!53!5353153153153153 #'+/37;5315315315353535353531531531535353153 #'+/37;?CG53535315315353!5353153153153153535353153153153 #'+/37;?CG53535315315353!5353153153153153535353153153153 #'+/37;?CGKO5315353!535315315353!5353153153153153535353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153  #5353531535353535353  #5353531535353535353  #'5353353531535353535353  #53353531535353535353 #'+/37;?CG5315353!535315315353!5353!5353!5353!5353153153 #'+/37;?CG53353533535315315315353!5353!5353!5353!5353!53 #'+/37;?53535315315353!5353!5353!5353!5353153153 #'+/37;?53535315315353!5353!5353!5353!5353153153 #'+/37;?C53533535315315353!5353!5353!5353!5353153153 #'+/37;?CG53353533535315315353!5353!5353!5353!5353153153 #'+/37;?533535315315353!5353!5353!5353!5353153153 535315315315315353 #'+/37;?CGKO5315315315353!531535335335353153!5353153!5353153153153 #'+/37;?535353!5353!5353!5353!5353!5353153153153 #'+/37;?535353!5353!5353!5353!5353!5353153153153 #'+/37;?C535335353!5353!5353!5353!5353!5353153153153 #'+/37;?5335353!5353!5353!5353!5353!5353153153153 #'+/37;?CG5315315315353!5353!5353!5353!5353!5353153153153 #'+/37;?CGKO53535335315353153!5353!5353!5353!53531531531535353  #'+/37;?CGKOSW[_cgkosw{5315315315315315315353!5353!5353!5353!5353!5353!5353!5353!5353!5353153153153153153153$W"?4;? M? $W   ${   Regular2004/04/15by Tristan GrimmerRegularTTX ProggySquareTT2004/04/15by Tristan GrimmerTTX ProggySquareTT        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a!"#$%&'()*+,-./0123456789:;<=>?@Abcdefghjikmlnoqprsutvwxzy{}|~unicode#0x0001unicode#0x0002unicode#0x0003unicode#0x0004unicode#0x0005unicode#0x0006unicode#0x0007unicode#0x0008unicode#0x0009unicode#0x000aunicode#0x000bunicode#0x000cunicode#0x000dunicode#0x000eunicode#0x000funicode#0x0010unicode#0x0011unicode#0x0012unicode#0x0013unicode#0x0014unicode#0x0015unicode#0x0016unicode#0x0017unicode#0x0018unicode#0x0019unicode#0x001aunicode#0x001bunicode#0x001cunicode#0x001dunicode#0x001eunicode#0x001fdeleteEurounicode#0x0081unicode#0x0082unicode#0x0083unicode#0x0084unicode#0x0085unicode#0x0086unicode#0x0087unicode#0x0088unicode#0x0089unicode#0x008aunicode#0x008bunicode#0x008cunicode#0x008dunicode#0x008eunicode#0x008funicode#0x0090unicode#0x0091unicode#0x0092unicode#0x0093unicode#0x0094unicode#0x0095unicode#0x0096unicode#0x0097unicode#0x0098unicode#0x0099unicode#0x009aunicode#0x009bunicode#0x009cunicode#0x009dunicode#0x009eunicode#0x009fflipperdevices-qFlipper-bfce851/application/assets/fonts/ShareTech-Regular.ttf000066400000000000000000001330041452337521700277310ustar00rootroot00000000000000GDEFFGPOSI S"XGSUB OS/2g`cmapmjA Bcvt 8uKHfpgmvdz@ gaspglyf@6 head 8h6hheadTD$hmtx9 @locaN5/`maxp4 $ name`GP XpostHdprep1Iid"3 uA3m=_<HʈAW  SSVV^^XKX^2,UKWNuu  DD==KuuUUKKVuQuUUKKVuQuKRXYcpBE1*B8$*BB.* B@ @ * B@@ *D$QX@XdD&QX@cTXDYYYY:& *DdDD (rlatnaaltDfrac>liga8numr2ordn,sups&:pH& %Ac ^VSd&&6.&$ %AcEN@As:@hI?g; =  p ? G D g e"F{8UF#e]p{.tGl%T# $ e !J!!")""#=###$$P$% %1%%& &&&' '`''((;(s(()D)))*A*W*+)+,,,8,S,{,,,--c-{-..*.F.p.../@    !a   # _ACNULLuni03BCuni00B9uni00B2uni00B3uni00ADuni00A0Eurodotmath logicalanduni2126uni2206uni00B5uni2215uni2219uni2224uni25AFuni02C9.^@ /9~1BSax~    " & 0 : D !"!&""""""""$"'"+"H"`"e"%% 0:1AR`x}    & 0 9 D !"!&""""""""$"'"+"H"`"d"%%V&0)w|O߱޶޾ޮޫމk5Zv  "#%-/01349:;<?AIJLNSTUV\]^`ackmnorsxyz{~  $)&'+(*8567=.qEBCGDFHKROPQ[XYZMbgdeifhwtuv|l}!_,j2p@   l ^ 8& $  " &  ,T ,T  4 4http://scripts.sil.org/OFLThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://www.carrois.comRalph du CarroisCarrois Type DesignShareTech-RegularVersion 1.100Share Tech Regular1.100;UKWN;ShareTech-RegularRegularShare TechCopyright 2012 The Share Tech Project Authors (post@carrois.com), with Reserved Font Name 'Share .AUKKUUUUUUUK&U=-=-===&|UUvU#U#U K K K K K K KKUU KU77PKKKK#MA#----------PFFFNFFFFF27PKP7PK#PPPFFFFFFFFPPFMP<7P7KKKKK#((###--0FP*->R?TES@D8A^W^kTkTke(EA"FAAKK+AHh-h77EE(E=EUE2@<@<]A&UUUKK1K1Kw2|7|-7-27c:%F6BA&T&U&f&U&U&U&U&U&U&U&UUU?F0AE$24-(+#PAXYYAA(A/_E3Z i i(k)"i"i77-E#/-b##.@#c##/4(E#>K&^#, UXEY KQKSZX4(Y`f UX%acc#b!!YC#DC`B-, `f-, d P&Z( CEcEEX!%YR[X!#!X PPX!@Y 8PX!8YY  CEcEad(PX! CEcE 0PX!0Y PX f a PX` PX! ` 6PX!6``YYY+YY#PXeYY-, E %ad CPX#B#B!!Y`-,#!#! dbB #BEX CEc C`Ec*! C +0%&QX`PaRYX#Y!Y @SX+!@Y#PXeY-,C+C`B-,#B# #Babfc`*-, E Ccb PX@`Yfc`D`-, CEB*!C`B- ,C#DC`B- , E +#C%` E#a d PX!0PX @YY#PXeY%#aDD`- , E +#C%` E#a d$PX@Y#PXeY%#aDD`- , #B EX!#!Y*!- ,EdaD-,` CJPX #BY CJRX #BY-, bfc c#aC` ` #B#-,KTXdDY$ e#x-,KQXKSXdDY!Y$e#x-,CUXCaB+YC%B %B %B# %PXC`%B #a*!#a #a*!C`%B%a*!Y CG CG`b PX@`Yfc Ccb PX@`Yfc`#DC>C`B-,ETX#B E #B #`B `aBB`++"Y-,+-,+-,+-,+-,+-,+-,+-,+-,+-, +-),# bfc`KTX# .]!!Y-*,# bfc`KTX# .q!!Y-+,# bfc&`KTX# .r!!Y-, +ETX#B E #B #`B `aBB`++"Y-,+- ,+-!,+-",+-#,+-$,+-%,+-&,+-',+-(, +-,, <`--, `` C#`C%a`,*!-.,-+-*-/, G Ccb PX@`Yfc`#a8# UX G Ccb PX@`Yfc`#a8!Y-0,ETX/*EX0Y"Y-1, +ETX/*EX0Y"Y-2, 5`-3,Ecb PX@`Yfc+ Ccb PX@`Yfc+D>#82*!-4, < G Ccb PX@`Yfc`Ca8-5,.<-6, < G Ccb PX@`Yfc`CaCc8-7,% . G#B%IG#G#a Xb!Y#B6*-8,#B%%G#G#a C+e.# <8-9,#B%% .G#G#a #B C+ `PX @QX  &YBB# C #G#G#a#F`Cb PX@`Yfc` + a C`d#CadPXCaC`Y%b PX@`Yfca# &#Fa8#CF%CG#G#a` Cb PX@`Yfc`# +#C`+%a%b PX@`Yfc&a %`d#%`dPX!#!Y# &#Fa8Y-:,#B & .G#G#a#<8-;,#B #B F#G+#a8-<,#B%%G#G#aTX. <#!%%G#G#a %%G#G#a%%I%acc# Xb!Ycb PX@`Yfc`#.# <8#!Y-=,#B C .G#G#a ` `fb PX@`Yfc# <8->,# .F%FCXPRYX +-o,:+?+-p,:+@+-q,:+>+-r,:+?+-s,:+@+-t,;+..+-u,;+>+-v,;+?+-w,;+@+-x,;+>+-y,;+?+-z,;+@+-{,<+..+-|,<+>+-},<+?+-~,<+@+-,<+>+-,<+?+-,<+@+-,=+..+-,=+>+-,=+?+-,=+@+-,=+>+-,=+?+-,=+@+-, EX!#!YB+e$PxEX0Y- <latncpspkern,wfffffff<llnllllllllllb88 l dN<<""<N<<"X...<N<<".<. .N<<">&><****t*ttttttttt**t.  ! %39>AK%NR0TU5]^7`p9sJW\]^ghjv39:;<=> 39:<=>xyz{|}~ 39:<=> 39:<=>xyz{|}~ 39:<=>xy{|}39<=>39<=>xy{|}! 9<=>JLNchjm" 39<=>JLNchjm39<=>JLNchjmxy{|}+ 39<=>AHJLNTchjmoxy{|}' 39<=>JLNchjmxy{|}9<=>op 39:;<=>opy! AHJLNTchjmo39<=>JLNchjmxy{|} 39<=>xy{|} 39:;<=>xy{|}39:;<=>JLNchjmy 39:;<=>xyz{|}39:<=>9<=>39<=>39:;<=>yY %&'()*+/12ABCDEFGHJLNOPQRT`abcdefghijkmnopstuvwxyz{|}~% %&'()*+/AHJLNTchjmoxy{|}: %&'()*+/ABEFHJLNORTcdghjmotw|_ %&'()*+/ABCDEFGHJLNOPQRT`abcdefghijkmnopstuvwxyz{|}~S %&'()*+/12ABEFHJLNORT`acdghjkmnostwxyz{|~ 12<=>xy{|} %&'()*+/A 39<=>ABCDEFGHJLNOPQRT`abcdefghijkmnopstuvwxyz{|}~ %&'()*+/39:<=>xy{|} %&'()*+/AHJLNTchjmoxy{|}? ABCDEFGHJLNOPQRT`abcdefghijkmnopstuvwxyz{|}~ 39:;<=>?@! %&'()*+/JLNchjmxy{|} 1239:;<=> %&'()*+/39xy{|}<rrrrrrrrrrr  @=A0+!!%#At)DH, &@#f&K'L +!'##33&'YsQDzI ;@8f&K'L    +73'##33ho&'YsXss*DsMC@@Jf&K 'L  +'#73'##335<<`n\o&'YsP@@ss&Ds/D@A  ef&K 'L  +53353'##33qUsG&'YsPPPPP!DsI ;@8f&K'L    +'3'##33oh/&'YsPss*DsW!$0@-Jgf&K'L546+#'##&5546332&##"332553U[&'Y1((19  %P],*++*D&H"%F@C  Jggf&K 'L%$""3&$! +633233267##"'&##"5'##33{8  * 3 1 (4 : &'YsP, HHٱDsA@>Iee]&K] 'L +!'##!!3#3%39Y)IIIwU"/@, Je]&K]'L!%!*!!+$##32&##32655&##32655O[YS7Aa#&gg* (!qp&$HHHT9M'$WZ"(!L'#&mKy%@"]&K]'L%!%+2&54633#"33#]]Wz%..%zUUhUUL,r,LK8y$JK PX@)pnb]&K]'LKPX@*~nb]&K]'L@+~|b]&K]'LYY@ $%!'# +3254&##5&&54633#"33#2##C!1DF]Wz%..%^.)3%U N TJhUUL,r,L#1:%U @]&K]'L!%!!+$##32&##3265O[ĸZ\W(!wv&$HHIS~'#& -@*e]&K]'L!%!!+$###5332&##3#3265O[AAZ\W(!wvvv&$HHEK,IS~'K#&U /@,e]&K]'L +3!#3#3UHIIIUI{K PX@*ne]&K] 'L@)e]&K] 'LY@  +73!#3#3hoHss*IIIUMJK PX@+n e]&K] 'L@* e]&K] 'LY@  +'#73!#3#35<<`n\oH@@ss&IIIU/O@L  ee]&K ]  ' L  +53353!#3#3lUsUHPPPP!IIIUI{K PX@*ne]&K] 'L@)e]&K] 'LY@  +'3!#3#3ohHss*IIIU )@&e]&K'L +3##!WHsIIK/@,e]&K]'L%!%+2&54633#"335#53#]]W%..%\TUUhUUL,r,KU '@$e&K'L +!##333zWWWB0D- )@&]&K]'L +353#53#3-FFFFI*III-IoK PX@$n]&K] 'L@#]&K] 'LY@  +7353#53#3=hocFFFFss*I*III;MyJK PX@%n ]&K] 'L@$ ]&K] 'LY@  +'#7353#53#3<<`n\oFFFF@@ss&I*III-/I@F  e]&K ]  ' L  +5335353#53#3UsUFFFFPPPP!I*III&IoK PX@$n]&K] 'L@#]&K] 'LY@  +'353#53#3ohFFFFss*I*III1 @]&K]'L!!+$##53265#531]W_i%.UUL,KU &@# J&K'L +!#33l$WW_><.vU@&K^'L+333UWL ,@) J&K^'L +357373U<@; e_&K_'L$!  +53353##"&546332&##"33265UsU3]W"W]]W"W]W.%6%..%6%.PPPPvUUUhUUUU,,r,,KI#aK PX@!n_&K_'L@ _&K_'LY@  +'3##"&546332&##"33265 ohv]W"W]]W"W]W.%6%..%6%.ssUUUhUUUU,,r,,K!)5@2J_&K_'L&)61+$##"'#7&54633273&##"'3265]W"L F]W"L!E6%.@%.UU]t(ihUU^u)g%,r,KH*:?@<  Jgg_&K_'L55553&$!+633233267##"'&##"5##"&546332&##"332658  * 2 1 (4 : P]W"W]]W"W]W.%6%..%6%., HH.UUUhUUUU,,r,,K%5@2e]&K]'L"% +2&5463!#3#3!&##"33265]]WV.%6%..%6%.UUhUUI-4I6+ID,,r,,U #@ e]&K'L!%!!+###32&&##32655VT^WUWW#&hh&#]MKQr"#&U '@$ee&K'L!%!!+$###332&&##32655VT^WW\UWW#&hh&#MKQr"#&K#*@'JG_&K_'L5951+%##"&546332&##"33265':"W]]W"W]K9Q.%6%..%6&-UUhUUUU;&K9,,r,'$U +@( Je]&K'L!"!+##32#&##32655YWUWZ_)#&hh&#"KQ`qO"#&s7#)@&g]&K]'L5!%5!!+$##5326554&##"&554633#"332]W%.JV]W%.( GOUUL,h%WS&UUL,L)RSB7M*JK PX@* ng]&K]'L@) g]&K]'LY@'$  +73#'##5326554&##"&554633#"332<<`pXq,]W%.JV]W%.( GOMCCssUL,h%WS&UUL,L)RSB!@]&K'L+##5!WppLLP@&K_'L31+$##"&53332653]WW]W.%#%.WUUUU,,%KI1@.&K_'L +73##"&53332653ho]WW]W.%#%.WssUUU,,%KM9@6J&K_'L +'#73##"&53332653A<<`n\o ]WW]W.%#%.W@@ss{UUU,,%K/:@7 e&K_'L  +53353##"&53332653{UsU*]WW]W.%#%.WPPPPvUUU,,%KI1@.&K_'L +'3##"&53332653ohr]WW]W.%#%.WssUUU,,%#@J&K'L+!#33#wXnwVdA (@% J~&K'L+!##333CI"MZR[I0{^# &@# J&K'L +!#373krx^_il] jR@J&K'L+#33!Z`[EEw#I 2@/ J&K'L +73#33hoZ`[ssoEw#/;@8 Je&K'L  +53353#33kUsUgZ`[PPPPfEw#- &@# J]&K]'L+73!5#5!CJJXJX-Mq@  JK PX@"n]&K]'L@!]&K]'LY@ +73#'3!5#5!<<`pXq>CMCCssJXJX-)xJK-PX@!e])K _'L@,e])K _'K_'LY@)'" !#$3 + &'##"&5543354&##5323#&655#"33j &ELEh&%}WS7`i"E=J2"KLTFKn"2- -ҵJK!PX@/ ~f&K])K _ 'LK-PX@, f])K _ 'L@7  f])K  _ 'K_ 'LYY@"!!!-!+&$   +73&'##"&5543354&##5323#&655#"33hmf &ELEh&%}WS7`i"ED=J2"KLTFKn"2-#0@  JK!PX@0 ~  e&K])K _ 'LK-PX@-   e])K _ 'L@8   e])K  _ 'K_ 'LYY@#$$$0$.)'#"!  +'#73&'##"&5543354&##5323#&655#"33<<`pXq &ELEh&%}WS7`i"EDKK=J2"KLTFKn"2-$1 JK-PX@-  e  e])K _ 'L@8  e  e])K _ 'K_ 'LY@*%%%1%/*($#"! +53353&'##"&5543354&##5323#&655#"33TUsU &ELEh&%}WS7`i"ESPPPP=J2"KLTFKn"2- -ҵJK!PX@/ ~e&K])K _ 'LK-PX@, e])K _ 'L@7  e])K  _ 'K_ 'LYY@"!!!-!+&$   +'3&'##"&5543354&##5323#&655#"33mh$ &ELEh&%}WS7`i"ED=J2"KLTFKn"2-:G JK-PX@1gg  e])K _ 'L@<gg  e])K  _ 'K_ 'LY@;;;G;E@>:9!#$65451+##"&5546332&##"33255&'##"&5543354&##5323#&655#"3312''21((19  r &ELEh&%}WS7`i"EP,,)*++*D&i=J2"KLTFKn"2-7D@  JK-PX@3g  e_&K])K _ 'L@>g  e_&K])K  _ 'K_ 'LY@888D8B=;76!#$73&$!+633233267##"'&##"5&'##"&5543354&##5323#&655#"33^8  * 2 1 (4 :  &ELEh&%}WS7`i"E HHe=J2"KLTFKn"2-r'1>W@T!J  e_)K _ 'L32((;82>3>(1(1.+'&#4!#$4+ &'##"&5543354&##53266332#33#54&##""332655= ,ELEh&%}-:6.GI&#N"&$"E=J <"KOLx[K,A"! @; e_)K_'L$!  +53353##"&5546332&&##"332655jUsU SW WSSW WSU&%!%&&%!%&SPPPPLLTTLLT""""F#cK!PX@#~&K_)K_'L@ _)K_'LY@  +'3##"&5546332&&##"332655mhRSW WSSW WSU&%!%&&%!%&DLLTTLLT""""FM!):@7#J_)K`'L&(71+$##"'#7&&554633273#"6'32655SW  N!#"SW M!"! b %&`%&LLZlE7TL[mD6*B""F*:A@>  Jg_&K_)K_'L55553&$!+633233267##"'&##"5##"&5546332&&##"332655r8  * 3 1 (4 : >SW WSSW WSU&%!%&&%!%& HHLLTTLLT""""F!1;J@GJ   e_)K_ 'L222;2;85.+&#! #454 + &'##"&554633266332#33#&##"33265554&##";;. WSSW ,:8,GI&%&%!%&&%!%&"&$LTTLOLK"K""""FK"! FPV3@0J_)K]'K+L$%2+36332###326554&##PP1XRSW[Uu e%&&%$KUTLS#""PV9@6 J&K_)K]'K+L %+###36334&##"3265XRSW[UU,U&%$! e%&KUTLf"#"FV 1@.J])K_'K+L$%1+%##"&554633#&65#"33P,XRSWU j%&&%)KUTLb#'""P9 !@J])K'L!"+3633#"#PP!/IS! UP,<X")@&g])K]'L5!%4!!+$##5326554##"&554633#"332XMI+FELJr|CF>>K5-=BC;K$A@-7p)JK#PX@,~g &K])K]'L@) g])K]'LY@&#  +73#'##5326554##"&554633#"332<<`pXq!MI+FELJr|CFKKt>K5-=BC;K$A@-P1hKPX@(g_&K_)K]'L@&eg_&K]'LY@ 3$!%%#2 +46332#"32##532554&#"&5546754&##"#PV@XRN7@FDci/3ADA&%)!U0FFKU}@8A8EK-FB7 @5J""l/@,])K^'L#+2&5#53533#33#6AAUttG`B61KxxKKK'@$J)K`'L31+%##"&53332673#I!/QOU#" UPLTT# u Kk@ JK!PX@ ~&K)K`'L@)K`'LY@ +73##"&53332673#hmO!/QOU#" UPDLTT# u Kr@JK!PX@!~&K)K`'L@)K`'LY@  +'#73##"&53332673#/<<`pXqG!/QOU#" UPDKKLTT# u KG@DJ  e)K`'L  +53353##"&53332673#`UsU4!/QOU#" UPSPPPPLTT# u Kk@ JK!PX@ ~&K)K`'L@)K`'LY@ +'3##"&53332673#mh!/QOU#" UPDLTT# u #@J)K'L+!#33%{[liXS(v (@% J~)K'L+!##333?EdXQYUSQSLZ( &@# J)K'L +!'#'373I_d^bVW]#Q/@,J)K'K_3L#"+#"'53277#33/'$ \tbWY7I-7c#Qw@  JK!PX@$~&K)K'K_3L@!)K'K_3LY@ +73#"'53277#33hm/'$ \tbWDc7I-7c#QO@L J  e)K'K_3L  +53353#"'53277#33ZUsUh/'$ \tbWSPPPPT7I-7c-a &@# J])K]'L+73!5#5! JJPZJY-us@  JK#PX@$~&K])K^'L@!])K^'LY@ +73#'3!5#5!<<`pXqM KKJPZJY1@.]&K])K'L# +!####5354633#UUAA:.q _ WKZ3;K7@4]&K])K_ 'L### + &5#"3###535463333#3\\UAA:.704  _KWKZ3;K0Q(,JK&PX@*e  g]K ]   L@/e W g]K ]   LY@))),),+*(&" !#$3 +&'##"&5543354&##5323#&655#"3353494nJe^A?-H G%,D /7t&=9? 5;O 'KKFZ#/@,g_K]L # #5551+##"&5546332&&##"3326555!R>A B>>B A>D99??99?KKPV0+3332653#5##"'#PU#"! UP!/-U##r  - 0+#5!#33#"&5##|OZ2"3}UIIK04GU>@_&K_'L5551+$##"&546332&##"33265[M M[ZN NZU/$ $//$ $/WWWShTVVT--r--R )@&J&K^'L +3535733\yy_cK"4Q2K?%@"J]&K]'L!(+77>554&##5323!?!.%ndW] $X2'&$F,LUU*24.7LTt"/@,Je]&K]'L!%!%!!+$##5326554&##5326554&##532tPZv&$(!aW*#&vjUW7AKKK#&g!'K(!R&"KKQ?M'$WTE3@0Jf&K]'L+%#5#533533`UcQ^pUFV)ISv)@&e]&K]'L!%!!+$##5326554&##!#32vPZy&$(!y MXKKK#&!'aKLPl@#)@&e]&K_'L%6#!%1+$##"&54633#"323326554&##ZDDZ[Ws}%.XVR*$$*%$bXXXRhUUL,mLTn ,, #Du@J]&K'L+3##5!Y1qKa8)98@5 Jg_&K_'L63.+)'/:1+$##"&5547&5546332326554&##&##"332655PZZPA5TN NT5A%(!&m(!&!( ",&$KKKSTW$%O?PLLP?O%$WT$$R '(!R&"''!g%$#&gA#)@&e_&K]'L%6#!%1+6332##532655#"&55%4&##"33AZDDZ[Wis%.XVR*$$*%$bdXXRUUL,mLTn ,, #^U &@#Jb:L  +7535733f[c[RJ@l'D&Q@WG"@Ja]:L!& +766554##5323#Wp!=VOJC g-&%$1@9>'-!!@^="TJK1PX@a]:K_=L@ea]:LY@ !%!%!! +##5326554&##5326554&##532=;D`]G?VW38@7@*@u#-A-;*@t+#3P@PdT5*%^dD@S J f f U ]  M%$#" +D#3535733766554##5323#KPJF[c[RJp!=VOJC gd@l'D&Q@-&%$1@9>'-!!@T*pdD@e  J   U  f    f ] M+D#3535733#5#533733FP@P[c[RJJJEIMC2d@l'D&Q@XuuJ0Ə@e *&5dD@ #, JK-PX@>e  e  U e    f ] M@E  ~ e e  U e    f ] MY@'''5'543210/.-+*!%!%!"+D#3##5326554&##5326554&##532#5#533733;P@P;D`]G?VW3JJEIMC2d8@7@*@u#-A-uuJ0Ə@(T*@  GKPX&LtY+''7'7'37%jHX[Fk Z {45z P97O@*@t+3#OO*hAh@U]M+53AdddF@U]M+753F뛛A,@)])K]'L+5353Adddddpddtd@JU]M+#753gN(dddA]d /@,]'L   +353353353AdxdxdddddddK,@)]&K]'L+7353RU\dddK8)@&a])L+#5#d]Udd+G@D  e  e &K'L+%#5##5#535#53533533#3#3aPPPFFFFPPPFFFPPKKKKAd@]'L+353Addd*5@2J~]&K]'L!)+#57>554&##53253*$0U5#$%ndd'((6`y=(2"L dd-895@2 J~b])L +#566775333#"55do$0U5#$%nddd#'((6`y=(2"L 71 @ J]&L+#'53#'537_7_ŝZZZZ7@J]&L+#'537_ŝZZt +@( Ja])L+53#753Ad>N(ddddd@*@t+#3TOOnV&dD@U]M+D5!KK( 4"8@5JggW_O""!,!%+6554633#"33#"&554P2;-1$$1-;2('C7F2@@2F7C'n=4"8@5JggW_O""!,!%+##532655467&&554&##53232;-1$$1-;2(''C7F2@@2F7C'nU4(@%eU]M+3#3UnnxKK24(@%eU]M+53#532nnxKKT<4@t+673#&&5<;5X0..0X5;m7:ObNNbO:7t6<4@t+$#>54&&'3;5X0..0X5;O7:ObN:NbO:7tA^@U]M+5!AKKU^@U]M+5!U|KKU^@U]M+5!UEKKU^@U]M+5!UEKKK\ -@* J])L  +7'733'73YYB??^YYB??\K\ -@* J])L  +77'337'3K??BYY^??BYY\K\ @J])L+7'73YYB??\K\ @J])L+77'3K??BYY\2cJZ ?@ JK%PX@ ]+L@U]MY+#753#753xF_dF_ZZZZ7O @ J]&L+3#573#5nF_F_ZZZZ-E @ J]&L+#753#753sF_dF_ŝZZZZ7@J]&L+3#5nF_ZZ-@J]&L+#753sF_ŝZZ2cZ5JK%PX@ ]+L@U]MY+#753xF_ZZ7#zKPX@,e ]&K ] )K]'L@*  ee ]&K]'LY@##"!#!# +3#33#"&55#535#5354633#"3ԩ.%zpW]FFFF]Wpz%.aIV,LUUCIaI2UUL,EIczX@ JK PX@!no])K]'LK PX@ n])K]'L@])K]'LYY@ %!+3&&55467533#"33##GCCGP=w%&&%w=PLMMKgeK""Km%../a@! J HGK1PX@c_)L@gW_OY56=8+65547'763327'##"''7$&##"332655` G9D%C%A'E9I H9C(B%E$C9G&%9%&&%9%&.b0H9DE9I0b- H9CC9G""""F (q@ &JK PX@'nofg]'L@%fg]'LY@ 5!5!+3#5326554&##"&5547533#"332#i%.JVzUj%.( GO?;UL,T%WStnL,B)RS.ES sV75@2]&K])K]+L#!# +3###53265#5354633#yy:.k[AA:.p`q _K3;K KZ3;KB5@2 e]&K]'L!# +54633#"3#3!53#5]Wak%.FFuUUL,III I>@; Jf  e&K'L +%#5#535#53333#3Z`zy[sssKKKhKKKAh0+53AdddTv '@$e])L +#5#53533;PPKKU^0+5!U|KKf 0+%'7'77u8tt8uu8tt8t8uu8tt8uu8UA0 @@=eeU]M   +535!53d|dddKKddU/@,eU]M+5!5!U||wKKKKUF+0+3##7#537#53733bNAPAAoNAPAAw}KiiK}KiiKUi40+75%%5U<|i^\iUi40+5%U|6i\^U4 0+75%%55!U4||}^u\iKKU4 0+5%5!U|4|i\u^}KKU :@7e])K] 'L    +#5#535335!;PP|KKKKU3(0+633233267##"'&##"5633233267##"'&##"5aI  64 C B /A K I  64 C B /A K PPPPU}6dD@+  JWg_O3&"1+D633233267##"'&##"5aI  64 C B /A K `PPFj^$@!U]M+%5!5!jK0*: 4,$0+$##"&55463326332##"'&3326554&##"$&##"332655HO2PGGP2(<%M2PGHO2O%#%/ )(!/&"#%/ )(!/&"ONNO5ONOS53%2(!&4]%2(!&4Ah0+53AdddL40+654633#"##53a:.p`:.k[ H3;K 3;K2#0+%2654&##"3#53&5463323#=&.%6%.)1]W"W]6L-,,r-LL+3hUUUU5)L0+333o}Dq- 0+#5!#33#"&5##|O[2"3WqKKK04 (V 0+55!!!(i+^WR_KJ#:40+#33ɯwY\KPV*@'J)K_'K+L23+3332653#5##"'#PU#"! UP!/-U##r  A# 0+63354&##532##"&556332655#ARVX.%}sW[ZDDZz%*$$*blLm,LUURXXRnU# ,, Y#3C8@5g g_&K `'L@=5555251 +##"&5546332#3&##"332655##"&5546332&&##"332655_@::@@::@TN@::@@::@F]AA??AA?d\  AA??AA?  YA#3CScD@A    g g_&K  `'L`]XUPMHE@=5555251+##"&5546332#3&##"332655##"&5546332##"&5546332$&##"332655$&##"332655_@::@@::@TN@::@@::@D@::@@::@vD]AA??AA?d\  AA??AA??AA??AA?    ;*0+#3P@PdAh0+53AdddAh0+53Addd( 0+!#3"pnlll^^A0+!!%#At)DH,_/;P@M J g   gg]&K] 'L000;0:53/.%4#$#%5 +2&5463!2#"&'#"5546333254&#!"3!!6655#"3]^V V^A>>$MXY)1&&12%($A-)%$UU^V^^VH?"#(vPB26%21&z.I$/n$E$>@;Je]&K]'L$#" %!* +2&5547&554633#"33##33#PA7WUjv&#*O+($&\]KS~W$'MQKK"&(!(Km'!&#"3-@*g]&K'L%!% +#"&554633#"33#33XOPWYd$'&%dSPvET UKF'5"FDZ-=E@BJg]&K_)K]'L...=.;84!*5!( +67&&554633#"332##5326554##"5563326554&##ZLJhr ,LJhr, g#$9- ICK(D' 1 ICK(-A--i3DdD@9eeeU]M 3 2%!)5551 +D$##"&546332&##"33265&554633#"33#[MM[ZNNZM1*+00++0884KPOJWWWShTVVT33!r!33!x////33i,6PdD@E* J~e g  eU]M31"!5551 +D$##"&546332&##"33265##32#&##32655[MM[ZNNZM1*+00++0-8kh6S=33WWWShTVVT33!r!33!V5>?6( 0+%#####5!73aN?OAdDt>A;)C*dD@gW_O5551+D##"&5546332&&##"332655CH77HG88GE!!!!==:B:==:B[ H Hi*@t+3iPnhi*/@,eU]M+33iPPPhh7 )@&&K])K'L +3#53533#čPKKW77@4 e&K])K  ' L +35#535#53533#3#čPKKKK-'dD@Jt+D#3_hrXrT#]"&dD@U]M+D5!#]FF-DdD@t+D73-hmD#I?SdDKPX@nW`P@W`PY@  2+D653##"&5333R=GG=R" 3OO3 "#C\'dD@Jt+D73#'<<`pXqKK@82\dDK PX@pgW^N@ ~gW^NY$# +D3254&##532##@C!1F.)3%U ~G#1:%#D\'dD@Jt+D'#73<<`pXqDKK#S@2dD@'U]M+D53353#UsUSPPPP#gx&dD@U]M+D53#UgUU4D dD@t+D'3mhD(V%dD@U]M+D#73#73[gs+[gsV#]"&dD@U]M+D5!#]FFKL< ,dD@!U^N #+D&55333#~3JGY%: C&$*dD@gW_O5451+D##"&5546332&##"332552''21((19  P,,)*++*D&#O;6dD@+  JWg_O3&$!+D633233267##"'&##"5,8  * 2 1 (4 :  HHflipperdevices-qFlipper-bfce851/application/assets/fonts/ShareTechMono-Regular.ttf000066400000000000000000001234041452337521700305650ustar00rootroot00000000000000GPOSRHshGSUBEOS/2n}4`cmap Q;cvt Bfpgmq(o ogasp`glyf“v head><6hheaL$hmtxStloca ui maxp+ T name_ŇXpost%Whprep<*T-+!!!3tH,- 1@. G_HI  +7#3#'''YsY&RQDK~-I F@C Goo _HI      +#7#3#''Shp'YsY&RYIsshDK~-MC@@Goo _HI +#73#'#3#''`n\oa<`'YsY&RQss@DK~-/O@LG  ^  _HI  +#5!#5#3#''U U'YsY&RQ/PPPPDK~-I F@C Goo _HI      +#'#3#''hS'YsY&RQIsshDK~-W!$7@4#G`_HI"""$"$546+#'##&5546332&##"33255iY&'Y1((19  .RQ],*++*D&~-H"%O@L  $G``  _HI###%#%""3&$! +633233267##"'&##"5#3#''8  * 2 1 (4 : &'YsY&RQ, HHDK~A@>F^ ^VHVI +7#!#3#3#'3*T3-X|IIIU"/@, G`XHXI!%!*!!+$##32&##32655&##32655O[ȼYS7Aa#&qq* (!{z&$HHHT9M'$WZ"(!L'#&mm%@"XHXI%!%+2&54633#"33#]]W%..%UUhUUL,r,Lm8$GK PX@*ec]XHVIKPX@+mc]XHVI@,mk]XHVIYY@#! $$ +254&##5&&54633#"33#2##5/!1FI]W%..%m.)3%U NUKhUUL,r,L#1:%@R @XHXI!%!!+$##32&##3265O[Z\W(!&$HHIS~'#&" -@*^XHXI!%!!+$###5332&##3#3265O[99Z\W(!tt&$HHEK,IS~'K#&g /@,^VHVI +#3#3!IIIgI{K PX@*co^V HVI@)oo^V HVIY@  +#7#3#3!ShIssIIIgMyGK PX@*co^V HVI@)oo^V HVIY@ +#73#'#3#3!`n\oa<ss@^IIIg/O@L   ^^ V  HVI  +#5!#5#3#3!UUn/PPPPsIIIgI{K PX@*co^V HVI@)oo^V HVIY@  +#'#3#3!hS,IssIIIj )@&^VHI +##!#WNII^/@,^XHXI%!%+2&54633#"335#53#]]W%..%bWUUhUUL,r,KP '@$^HI +#333#WWWWB0DB )@&VHVI +7#5!#3!5Z ZZI*IIIIIoK PX@$coVH VI@#ooVH VIY@  +#7#5!#3!5Sh7Z ZZIss*IIIIrMmGK PX@$coVH VI@#ooVH VIY@ +#73#'#5!#3!5`n\oa<+Z ZZss@/*IIII/I@F  ^VH VI  +#5!#5#5!#3!5UUfZ ZZ/PPPP*IIIIIoK PX@$coVH VI@#ooVH VIY@  +#'#5!#3!5hS]Z ZZIss*IIII} @VHXI!!+$##53265#53]Wis%.UUL,KQ @ GHI+#33#WW_d.y;s@HWI+3!LK &@# GHWI+57373!KZWqq,P+7P7LW5 (@% GmHI+%##33#6SbLPQNfDtO @ GHI+3#33#QQrDrOH$<@9  $G``HI3&$!+633233267##"'&##"5#33#8  * 2 1 (4 : QQ, HHrDrF@XHXI5551+$##"&546332&##"33265]W(W]]W(W]W.%<%..%<%.UUUUhUUUU,,r,,FI#aK PX@!coXHXI@ ooXHXIY@  +#7##"&546332&##"33265Sh]W(W]]W(W]W.%<%..%<%.Iss UUUhUUUU,,r,,FM&`GK PX@!coXHXI@ ooXHXIY@ 5553+#73#'##"&546332&##"33265`n\oa<]W(W]]W(W]W.%<%..%<%.ss@;UUUhUUUU,,r,,F/'>@; ^XHXI$!  +#5!#5##"&546332&##"33265UU]W(W]]W(W]W.%<%..%<%./PPPP&UUUhUUUU,,r,,FI#aK PX@!coXHXI@ ooXHXIY@  +#'##"&546332&##"33265hSN]W(W]]W(W]W.%<%..%<%.Iss UUUhUUUU,,r,,F'5@2GopXHYI&'61+$##"'#7&54633273#"'3265]W( L G]W( L I B%. E%.UU]s*hhUU]s(j',r,FH*:?@<  G``XHXI55553&$!+633233267##"'&##"5##"&546332&##"332658  * 3 1 (4 : R]W(W]]W(W]W.%<%..%<%., HH.UUUhUUUU,,r,, %5@2^XHXI"% +2&5463!#3#3!&##"33265w]]W=N.%%..%%.UUhUUI-4I6+ID,,r,,Z #@ `XHI!%!!+###32&&##32655VThWUWW#&rr&#]MKQr"#&^ '@$``HI!%!!+$###332&&##32655VThWWfUWW#&rr&#MKQr"#&F#+@(GDXHXI5:50+ ##"&546332'&##"33265[9(W]]W(W]I9M.%<%..%<%.UUhUUUU;(I9M2,,r,,F 3@0 G^XHI !+#32#&##32655WUWZ_X#&qq&#"KQ`q"-"#&sd#)@&`XHXI5!%5!!+$##5326554&##"&554633#"332]W%.JV]W%.( GOUUL,h%WS&UUL,L)RSBdM*rGK PX@)co`XHXI@(oo`XHXIY@ 5!%5!# +3#'3##5326554&##"&554633#"332W`pXqa<]W%.JV]W%.( GOMssCKUL,h%WS&UUL,L)RSBC!@VHI+3#5!#pLLM@HXI31+$##"&53332653]WW]W.%-%.WUUUU,,%MI1@.ooHXI +#7##"&53332653Sh]WW]W.%-%.WIss UUU,,%MM/@,GooHXI33+#73#'##"&53332653`n\oa<]WW]W.%-%.Wss@;UUU,,%M/:@7 ^HXI  +#5!#5##"&53332653UU]WW]W.%-%.W/PPPP&UUU,,%MI1@.ooHXI +#'##"&53332653hSZ]WW]W.%-%.WIss UUU,,%8@GHI+33#8XxVwdD3 (@%GmHI+#333# ?x"JS>UE"~JqD3 @ GHI+3#373#^_nr]bxjR,#@ GHI+333߳`[Ew#,I 7@4 GooHI  +#733ShC`[IssEw#,/@@= G^H I  +#5!#533UUi`[/PPPPEw#W &@#GVHVI+!!5#5!!UXJXWMf@  GK PX@!coVHVI@ ooVHVIY@ +3#'3!5#5!!Z`pXqa<UMssCXJXC)xGK-PX@!`XH XI@,`XH XHXIY@)'" !#$3 + &'##"&5543354&##5323#&655#"33 &YLE|&%WS7`}"Y=J2"KLTFKn"2C -ҵGK!PX@/ma HXH X IK-PX@, ooaXH X I@7 oo aXH  X HX IYY@"!!!-!+&$   +#7&'##"&5543354&##5323#&655#"33zVhb &YLE|&%WS7`}"Yˇ5=J2"KLTFKn"2C#0@  GK!PX@/m  `HXH X IK-PX@,oo  `XH X I@7oo  `XH  X HX IYY@$$$0$.)'#"!#$5 +#73#'&'##"&5543354&##5323#&655#"33`pXqa< &YLE|&%WS7`}"YDKq=J2"KLTFKn"2C$1 GK-PX@-  ^  `XH X I@8  ^  `XH X HX IY@*%%%1%/*($#"! +#5!#5&'##"&5543354&##5323#&655#"33UUb &YLE|&%WS7`}"YPPPP]=J2"KLTFKn"2C -ҵGK!PX@/m` HXH X IK-PX@, oo`XH X I@7 oo `XH  X HX IYY@"!!!-!+&$   +#'&'##"&5543354&##5323#&655#"33hVz &YLE|&%WS7`}"Yˇ5=J2"KLTFKn"2C:G GK-PX@1``  `XH X I@<``  `XH  X HX IY@;;;G;E@>:9!#$65451+##"&5546332&##"33255&'##"&5543354&##5323#&655#"33X2''21((19  u &YLE|&%WS7`}"YP,,)*++*D&i=J2"KLTFKn"2C7D@  GK-PX@3`  `XHXH X I@>`  `XHXH  X HX IY@888D8B=;76!#$73&$!+633233267##"'&##"5&'##"&5543354&##5323#&655#"33s8  * 2 1 (4 : * &YLE|&%WS7`}"Y HHe=J2"KLTFKn"2'1>N@KG  `XH X I222>2=:710-*'&"4!#%4+ &'##"&55463354&##53266332#33#4&##"3332655#Z; 2&CDDIB$i_-4)&F@CcY(#xE?H MN: !KNMta;Io! !Oh) )h*#W)@&GXHI32+6332#4&##"#1.QOU#B! ULTh##W/I@F  G`XHX HI//363&$! +633233267##"'&##"56332#4&##"#8  * 3 1 (4 : 1.QOU#B! U HHLTh##S@XHXI5551+$##"&5546332&&##"332655SW!WSSW!WSU&%5%&&%5%&LLLTTLLT""""S#cK!PX@#mHXHXI@ ooXHXIY@  +#7##"&5546332&&##"332655yzVhSW!WSSW!WSU&%5%&&%5%&ˇLLTTLLT""""S&bGK!PX@#mHXHXI@ ooXHXIY@ 5553+#73#'##"&5546332&&##"332655`pXqa@; ^XHXI$!  +#5!#5##"&5546332&&##"332655UUSW!WSSW!WSU&%5%&&%5%&PPPPLLTTLLT""""O#cK!PX@#mHXHXI@ ooXHXIY@  +#'##"&5546332&&##"332655hVz'SW!WSSW!WSU&%5%&&%5%&ˇLLTTLLT""""SM':@7!GopXHYI&(7!+$###7&&554633273#"6'32655SW5N&&SW!M '&e)%&d)%&LLYhG9TLZiF90J""S*:A@>  G`XHXHXI55553&$!+633233267##"'&##"5##"&5546332&&##"3326558  * 2 1 (4 : FSW!WSSW!WSU&%5%&&%5%& HHLLTTLLT""""!/9E@BG  ^XHX I9852,)%"! #454 + &'##"&554633266332#33###"33265574&##"3]5,*NEEN'+1(D@$$^\66"pJQTGFKM"IA !!  !JWV:@7GXHXHI%2+6332###326554&##1$XRSWoUu y%&&%8KUTLK#""aV9@6 GHXHXHI %+###3633&##"32655sRSWeUU,U&%.! o%&KUTLfm"#"TV 1@. GXHXHI%%0+ ##"&554633#5&65#"33S,)XRSWU ~%&&%=KUTLb7#'""d`GK-PX@XHVI@#XHXHVIY@!"+7#53633#"3!5I!/gq mK^KP)KKv")@&`XHXI5!%4!!+$##5326554##"&554633#"332MI+%FELJ"CF>>K5-=BC;K$A@-o)tGK#PX@+m`HXHXI@(oo`XHXIY@ 5!%4!# +3#'3##5326554##"&554633#"332P`pXqaK5-=BC;K$A@-N1hKPX@(`XHXHXI@&``XHXIY@ 3$!%%#1 +6332#"32##532554&#"&5546754&##"#NV@'XRN7@FDpv/3ADA&%6!UvFKU}@8A8EK-FB7 @5J""0kl/@,oVHYI#+ &5#53533#33#6__Ue~B61KxxKK]'@$GHYI30+ ##"&53332673#5N/"QOU#6 UPLTT# u ]k@ GK!PX@ mHHYI@ooHYIY@ +#7##"&53332673#5zVh /"QOU#6 UPˇ5LTT# u ]f@GK!PX@ mHHYI@ooHYIY@ 32+#73#'##"&53332673#5`pXqaA B>>B A>DL99??99?KK2-+!IHmsD&-#-+$654&##"3#53&5463323#5S&.%6%.)1]W"W]6L-,,r-LL+3hUUUU5)LLgV0@- GHXHI23+332653#5##"'##"! UP!/-U##r  gV-+332653#5##"'##"! UP!/-U##r  0 -+5!#33#"&5##0Z2"3iUIIK04GU\!(@%! GXHXI6551+$##"&546332&##"33265[MM[ZNNZU/$$//$$/WWWShTVVT--S--f )@&GHWI +75733!5_mK"4Q2KKi%@"GXHVI!'+>554&##5323!5 .%xnW]<.'(&F,LUU*2>0+LXy"/@,G`XHXI!%!%!!+$##5326554&##5326554&##532PZ&$(!ka*#&tUW7AKKK#&g!'K(!R&"KKQ?M'$WTW3@0G_HVI+!5#533533#%kQfxUKKV)Iw)@&`VHXI!%!!+$##5326554&##!#32PZ&$(!)MXKKK#&!'aKLPla#)@&`XHXI%5#!%1+$##"&54633#"323326554&##ZD#DZ[W}%.bVR*$$*%$lXXXRhUUL,mLTn3,, #h@GVHI+#5!#ZEYqKaV)98@5 G`XHXI63.+)'/:1+$##"&5547&5546332326554&##&##"332655PZZPA5TNNT5A%"(!&$w(!0!( "6&$KKKSTW$%O?PLLP?O%$WT#$R '(!R&"''!g%$#&g`#)@&`XHXI%5#!%1+6332##532655#"&55$&##"335`ZD#DZ[Ws}%.bVR *$$*%$ldXXRUUL,mLTn3,, #i*@of+3#iJJ*h *%S@P%Go p _HXH V  I$#"! +3#5733#566554##5323#5mXJ.BDH" )$14 G^*h{i'G&Q@@#-.'@/)!C0@I *c@`Go p _   _HH V  I+3#5733#55#533733#wJJ*BDH"e6E>$/*h{i'G&Q@@uJ0Ə@u*'6@ $+ GK!PX@=op `   _XHX H VIK)PX@Aop `   _XH HXH VI@?op ` `   _XH H VIYY@(((6(6543210/.-,!%!%!"+3###5326554&##5326554&##5325#533733#qJJU6C85./?<3e6E>$/*hr7>;<.>8=#-A-uJ0Ə@u &@#G[I +5733#5c[RJ l'D&Q@@"@GZXI!%+66554##5323#5!=VOJC g-&%$1@9>(-#@I}"TGK1PX@\XHXI@`\XIY@ !%!%!!+##5326554&##5326554&##532};D`]G?VW38@7@*@u#-A-FT+@  DKPXIfY+''7'7'37eX[Fk Z jT5z P97O{2*@of+#3TTn@h@RVJ+#5@dhddY@RVJ+#5Y@,@)VHVI+#5#5@dddddpddtTd@GRVJ+353#d>Ndd(d /@,VI   +7#5!#5!#5dddddddddd@,@)VHVI+##58U]ddd8@)@&ZVI+533d\UddPG@D  ^  ^H I+!5##5#535#53533533#3#'35#6PPFFFFPPPFFFFPPKKKK@d@VI+%#5@dddd~5@2GmXHVI!)+#57>554&##532#5#5U: $%}std))$6`y=""2"L ^dd85@2 Gm]VI +5366775333#"55d#5U: $%}sdd))$6`y=!#2"L  @ GVI+53#753#_7_7bZZZZ=@GVI+53#_7bZZtT +@(GZVI +#553#Tdd>Ndd dd2*@of+3#TT*hV @VI+!5 _KK4"8@5G``TXL""!,!%+6554633#"33#"&5542;A31$$13A;2('C7F2@@2F7C'n4"8@5G``TXL""!,!%+##532655467&&554&##5323`2;A31$$13A;2(''C7F2@@2F7C'nw4(@%^RVJ+#3#w4KKw4)@&^RVJ+#53#5'-KTKr4@of+673#&&5;5X0..0X5;m7:ObNNbO:7t6r4@of+$#>54&&'3r;5X0..0X5;O7:ObN:NbO:7t ^@RVJ+!5%^KKP^@RVJ+!5^KKk^@RVJ+!5^KKk^@RVJ+!5^KKp\ @ GVI+3#'73#'B??BYB??BYp\ @ GVI+3#773#7pBYYB?aBYYB?\[@GVI+3#'B??BY\[@GVI+3#7BYYB?cZ ?@ GK%PX@ VI@RVJY+353#753#_7F_7FZZZZ @ GVI+#573#573_7F}_7FZZZZ @ GVI+53#753#_7F_7FbZZZZL@GVI+#573._7FZZL@GVI+53#_7FbZZcLZ5GK%PX@ VI@RVJY+353#_7FZZY#tKPX@+^ XH V HXI@)  ^^ XHXIY@#"! #!# +3#33#"&55#535#5354633#"3#.%zpW]FFFF]Wpz%.6IV,LUUCIaI2UUL,EIxX@ GK PX@!cdVHVIK PX@ cpVHVI@opVHVIYY@ %!+6&55467533#"33##5DDHPO%&&%OPKNMKgeK""Kmn../a@! G EDK1PX@\XI@`TXLY56=8+65547'763327'##"''7$&##"332655I G9D%C5A'E9I H9C(B5E$C9G(&%I%&&%I%&.b0H9DE9I0b- H9CC9G""""i (x@ %GK PX@(cda`VI@&opa`VIY@((5!5! +35326554&##"&5547533#"332#5z%.JVzUj%.( GO?;UL,T%WStnL,B)RS.ES snOV5@2XHVHXI#!# +3###53265#5354633#I:.oUU:.q _K3;K KZ3;K\/@,^XHVI!" +4633#"3#3!53#53]Wak%.FFFUUL,III I7>@; G_  ^H   I +35#535#53333#3#`zy[sKKKhKKKsd3(-+633233267##"'&##"5633233267##"'&##"5pI  64 D B /A K I  64 D B /A K PPPPd}.@+  GT`XL3&"1+633233267##"'&##"5pI  64 D B /A K `PPPA0 A@>^^RVJ   +#5!5#5@dd0ddKKdd@h-+#5@dhddP0@-^RVJ+!5!5|KKKKPi4-+%55|P\i^P4 -+%55!5||P\i^KK -= 7/' -+6##"&554633266332##"&'&3326754&##"$&##"3326551& O>>O &3/& O>?N &1$ &b$ &MPPMMPPR.#: '!&j^$@!pRVJ+5!#5>UKP^-+!5^KKa  -+77'77'att8uu8tt8uuuu8tt8uu8ttPF+ -+%##7#537#53733#APAAoNAPAAoNKiiK}KiiK}`# -+63354&##532##"&556332655#`RVb.%}W[ZD#DZz%*$$*llLm,LUURXXRnU# ,,  #3CB@? #!"G``XHXI55595551+##"&5546332&&##"3326555##"&5546332&&##"332655!@::@@::@F4@::@@::@FAA?(?AA?(L > >>I>AA?(?AA?(L > > #3CScJ@G #"!G`  `XH  XI`]XUPM555595551 +##"&5546332&&##"3326555##"&5546332##"&5546332$&##"332655$&##"332655@::@@::@FR@::@@::@@::@@::@AA?(?AA?(L > >>I>AA?(?AA?(?AA?(?AA?(L > > > >Ov '@$^VI +75#53533#旗PvKKP :@7^VH VI    +75#53533#!5斖PKKDKK+ -+5!#33#"&5##+[2"3nWqKKK04 q4-+333#ycYHjKMV  -+5!!!!5i+ R_KJ^F*-+3#PP*r@h-+#5@dhdd@h-+#5@dhddK -+3#7Knp9lll^^FT-+!!!3tH,:'<HT^s@raXUMIA=2(-+#''5&54663'#"&54677&5463 #"&'576633265432654&#75&&##"&547'"&546327$632##"&''7>0R$P)/(N$PnnP$N"#/( P$Rkk,@00??00@( -+#"&'3!737#"&54667iV55-&7(4(7&-55V[WV+09 "AA" 90+VWT(*-+6632#"&'3!737#"&54632&&5463F@/2;-$4(4(4#-;2/@80/$- =8.; "AA" ;.8= -$/0-+.54632663??bYYb??51==1H47~ij}84H2442J-+ [ -+'4&''#"&546323$" 9#18I4 0/6'(& ;9*$"&4 A-+$#"&54632#"&54632% 9#18I4  9#18I4 Kl*$"&4 7;*$"&4 dV?6*@of+#6P*h6*0@-^RVJ+##6PPP*hh2>P@M G `   ``XHX I333>3=8621$5#&$%5 +2&546332#"&'#"&554663332654&##"33#6655#"3_BKUTI13!+$3.A;H  $)+%Cx+ AKOGEQ<03@6;X&'&'RC?,S$>@;G`XHXI$#" %!* +2&5547&554633#"33##33#PA7WUjv&#*O+($&\]KS~W$'MQKK"&(!(Km'!&#">8@5`XHI  +"&554633#"33##XOPWYd$'&%dSPvET UKF'5"FvFD39@6``XHXI 3 2%!)5551 +$##"&546332&##"33265&554633#"33#VMMVVMMVH1*+00++0884KPOJVVVThTVVT33!k!33!u////33,6L@I) Gm `  ^XHXI 310. , ,!5551 +$##"&546332&##"33265#32#'6&##32655VMMVVMMVH1*+00++08kh6S=N133VVVThTVVT33!k!33!V5>6q-=E@BG`XHXHXI...=.;84!*5!( +67&&554633#"332##5326554##"5563326554&##qLJ|,LJ|,!g789- ICK(D' 1 ICK(-A--  -+#'####5!73#56AADVE*(gBi\A;@\XI5551+##"&5546332&&##"332655H77HG88GE!!!!==:B:==:B[ H HG@Gof+#3#Xr[hTY )@&HVHI +53533##YPPKKWY7@4 ^HVHI +7535#53533#3##5YPPKKKKDx.K!PX@ pI@ ofY@ +#7xzVhˇIAK!PX@]I@oTYMY@  2+653##"&53336R=GG=R" 3OO3 "qC0GK#PX@ pI@ ofY+3#'3J`pXqa<ʇK8d2bK PX@!e`TYM@"m`TYMY@ +254&##532##5!1F.)3%U ~G#1:%@qD0GK!PX@ pI@ ofY+#73#'`pXqa<DKS,@)RVJ+#5!#5UUPPPPg8@VI+#58UUUDs.K!PX@ pI@ ofY@ +#' hVzˇMV@RVJ+3#%3#s[s[铓]@RVJ+#5FFLf< @K1PX@oYI@oTYMY@ #+&55333#3JGY%: C$j"@`TXL5451+##"&5546332&##"33255j2''21((19  P,,)*++*D&O(@%  G\XI3&$!+633233267##"'&##"58  * 2 1 (4 :  HH]@RVJ+#5FFm$ -+3##5#535&&5466332654&#9J+M;``0``;N+I,0==00>>0*H,>0c-9,G((G,,H** @00??00@ &"2s| pJ!e`i can `,P O  } J  R L m f G@]Fa`btR-iBxEx 0 x !!I!"2"g""#X#$$&$V$~$%%i%%%%&&&''V'{''((K((()C)d)**-**++,,s,,,,--;-i--..!.e...//-/F//00+0S0{000011A1^1{1112262^2^2^230344Y445!5`555566a6666667767l788899,9H9Y9i9y99:y:;6;;;<<0<]<<<=P==>K>?0?T???@@5@p@@AA6AOAtAAAB#B`B|BBŖ?_<$=WT-------UmmR"gggggj^Pr}QsK5OOFFFFFFFZ^FFddCMMMMM833,,,WWCCCCCCCWxxT^^^^^^cHWPPPPPP`FF+WWSSSSOSSWaTdvoNk]]]]]@#A???j8c8c}2-gg0\fiyWwahV`i  F2(P~2 PkkppYxiO\7ddPPPP EPP>PaP` OP+MFKT((J[S>qGYYqqMmu8 XKX^2,  UKWN@uu  nn@. /9~1BSax~    " & 0 : D !"!&""""""""$"'"+"H"`"e"%%& &<&@&B&`&c&f&k 0:1AR`x}    & 0 9 D !"!&""""""""$"'"+"H"`"d"%%& &:&@&B&`&c&e&jX%3@y~N^}ޱ޾ެޥހw5ڬډڇچڃ~j !"$,./02389:;>@HIKMRSTU[\]_`bjlmnqrwxyz}  #(%&*')7456<-pDABFCEGJQNOPZWXYLafcdhegvstu{k| ^+i1o?~, UXEY KQKSZX4(Y`f UX%acc#b!!YC#DC`B-, `f-, d P&Z( CEcER[X!#!X PPX!@Y 8PX!8YY  CEcEad(PX! CEcE 0PX!0Y PX f a PX` PX! ` 6PX!6``YYY+YY#PXeYY-, E %ad CPX#B#B!!Y`-,#!#! dbB #B CEc C`Ec*! C +0%&QX`PaRYX#Y! @SX+!@Y#PXeY-,C+C`B-,#B# #Babfc`*-, E Ccb PX@`Yfc`D`-, CEB*!C`B- ,C#DC`B- , E +#C%` E#a d PX!0PX @YY#PXeY%#aDD`- , E +#C%` E#a d$PX@Y#PXeY%#aDD`- , #B EX!#!Y*!- ,EdaD-,` CJPX #BY CJRX #BY-, bfc c#aC` ` #B#-,KTXdDY$ e#x-,KQXKSXdDY!Y$e#x-,CUXCaB+YC%B %B %B# %PXC`%B #a*!#a #a*!C`%B%a*!Y CG CG`b PX@`Yfc Ccb PX@`Yfc`#DC>C`B-,ETX#B E #B #`B `aBB`+r+"Y-,+-,+-,+-,+-,+-,+-,+-,+-,+-, +-, +ETX#B E #B #`B `aBB`+r+"Y-,+- ,+-!,+-",+-#,+-$,+-%,+-&,+-',+-(, +-), <`-*, `` C#`C%a`)*!-+,*+**-,, G Ccb PX@`Yfc`#a8# UX G Ccb PX@`Yfc`#a8!Y--,ETX,*0"Y-., +ETX,*0"Y-/, 5`-0,Ecb PX@`Yfc+ Ccb PX@`Yfc+D>#8/*-1, < G Ccb PX@`Yfc`Ca8-2,.<-3, < G Ccb PX@`Yfc`CaCc8-4,% . G#B%IG#G#a Xb!Y#B3*-5,%%G#G#a C+e.# <8-6,%% .G#G#a #B C+ `PX @QX  &YBB# C #G#G#a#F`Cb PX@`Yfc` + a C`d#CadPXCaC`Y%b PX@`Yfca# &#Fa8#CF%CG#G#a` Cb PX@`Yfc`# +#C`+%a%b PX@`Yfc&a %`d#%`dPX!#!Y# &#Fa8Y-7, & .G#G#a#<8-8, #B F#G+#a8-9,%%G#G#aTX. <#!%%G#G#a %%G#G#a%%I%acc# Xb!Ycb PX@`Yfc`#.# <8#!Y-:, C .G#G#a ` `fb PX@`Yfc# <8-;,# .F%FRX ,5+# .F%FRX +-S,>+-T,>+-U,>+-V,@+-W,@+-X,@+-Y,@+-Z,C+-[,C+-\,C+-],C+-^,?+-_,?+-`,?+-a,?+-b,7+.++-c,7+;+-d,7+<+-e,7+=+-f,8+.++-g,8+;+-h,8+<+-i,8+=+-j,9+.++-k,9+;+-l,9+<+-m,9+=+-n,:+.++-o,:+;+-p,:+<+-q,:+=+-r, EX!#!YB+e$Px0-KRXYcpB*B  *B!*B@ * B@ *D$QX@XdD&QX@cTXDYYYY! *DUUKKVuVu22     V&  | * . . , ,   4:Copyright (c) 2012, Carrois Type Design, Ralph du Carrois (post@carrois.com www.carrois.com), with Reserved Font Name 'Share'Share Tech MonoRegularRalphOliverduCarrois: Share Tech Mono: 2014Version 1.003ShareTechMono-RegularRalph Oliver du Carroishttp://www.carrois.comThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFL2 $bc%&d'(e)*+,-./01f2g345678h9:;<=DikljnmEFoGHprsqIJKLtvwuMNOPQxRy{|z}STUVWX~YZ[\] ?" B^`>@ a !     _# ACuni03BCuni00ADuni00A0Eurodotmath logicalanduni2215uni2219uni2224uni25AFuni2620 smileface invsmilefacesunspadeclubheartdiamond musicalnotemusicalnotedbluni02C9femalemale B\DFLTgrek latn,cpspcpspcpsp  ?= `DFLTgrek*latn@   aaltnaaltnaaltndligtdligtdligtfraczfraczfraczligaligaligaordnordnordnsupssupssups>V$@b ,  $,@$b U]R$@bflipperdevices-qFlipper-bfce851/application/assets/fonts/haxrcorp-4089.ttf000066400000000000000000000423101452337521700267130ustar00rootroot00000000000000 PFFTMDGDEF'D&OS/2`X`cmaplXzgaspD|glyf](&head: 6hheaBh$hmtx8locaBs8Rmaxp>8 name=. postAx:h_< (|ݞ@@@< 3FSTR@ @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@tX~LO   N  mUT  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd((((:LvDPr$P`$<j6h 0DPh.T|Pr,BZ|  & N Z | 4 L p  2 \ v  , X $ P d 2hFn2\6Jfx *BXn 2D`|X %''7'3'7#!ggggggzggX25@@153'3@@@@@@53353@@@@@75#5#535#53533533#3##5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +=3353%537535#535#535#53533#3#3#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #'+/37;153!53%53353353%53353'53'53353%53353353%53!53@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  #'353353'53!53753'5353%53353'53@@@@@@@@@@@@@@@@@@@@@@@@@@53@ 53'53'353=3@@@@@@@@@@@@@@@@@@@ 53=35353'53@@@@@@@@@@@@@@@@@@@@ =3353%533535#53533#@@@@@@@@@@@@@@@@@@@@@ 75#53533#@@@@53=3@@@@@@@=!@@@@@153@@@ 153=3=3=3=3=3=3@@@@@@@@@@@@@@@@@@@@@@@@@@@@353'5333#35#535353@@@@@@@@@@@@@@@@@@@@3#5353@@@@@@@@@ 153533'53=3%5353%53@@@@@@@@@@@@@@@@@@@@@ 353%53353'53%5353%53@@@@@@@@@@@@@@@@@@535#5335#53533#@@@@@@@@@@@@@@@@ 353%53353%5!!3@@@@@@@@@@@@@353=3!33#53%53@@@@@@@@@@@@@@@ 353=3=!5!@@@@@ 353%53353%53%53353%53@@@@@@@@@@@@@@ 353%53'535#535353@@@@@@@@@@@@@@@@@=3'53@@@@@@@@@ 53=353@@@@@@@@@@@ 753'53'53=3=3@@@@@@@@@@@@@@@@@@@@@@=!%5!@@@@@@@ =3=3=3'53'53@@@@@@@@@@@@@@@@@@@@@ 353'53=3%5353%53@@@@@@@@@@@@@@@@@@35!%53535#5333%35!@@@@@@@@@@@@@@@@@ 13353#5#53@@@@@@%53'53!#3#3@@@@@@@@ 353=3!353%53@@@@@@@@@@@@@@@@ %3!#3@@@@@@@ 1!!3#!@@@@@ 1!!3#@@@@ 353=#53!353%53@@@@@@@@@@@@@@@ 13353#5#@@@@@13@@@ 353%5333@@@@@@@@@ !53'53'53'53=333#53@@@@@@@@@@@@@@@@@@@@@@@@@@@13!@@ 753'5335333#!#5353@@@@@@@@@@@@@@@@@@@@@@@@@ 75333#35#533@@@@@@@@@@@@@ 353%33353@@@@@@@@@@@@ 53!#3#@@@@ 53%53%33353@@@@@@@@@@@@@@@@ !53'53=3!#3##5#@@@@@@@@@@@@@@@@ 353%53353%53%53753%53@@@@@@@@@@@@@@@@@@@@3#5!#@@@@ 353%333@@@@@@@ 353'53353%53353@@@@@@ 353353%33333@@@@@@@@@@ @ #153353%53353'53'53353%53353@@@@@@@@@@@@@@@@@@@@@@@@@ 3353353%53353@@@@@@@@@@@@ 153!%53=3=3=!5!@@@@@@@@@@@@@@@@@@3#3@@@@@ !53'53'53'53'53'53'53@@@@@@@@@@@@@@@@@@@@@@@@@@@53#53@@@@ 53353%53353'53@@@@@@@@@@@@@@@@@@@@15!@@@ 53'53'53@@@@@@@@@@@@ =3535#53@@@@@ 75333#3@@@@@@@ 353=3!53753'53@@@@@@@@@@@@@@ =3535#5353@@@@@@@@ 353'53353#=3@@@@@@@@@@@ 133#53@@@@@@@@53'535#535#53@@@@@@@ 33!33#@@@@1353@@@@@@ 535353@@@@@@@@@ 353'53'53=333#@@@@@@@@@@@@@@@@@@@@13@@@ 3333!3#53@@@@@@@@ 33!3#@@@@ 353'53353'53@@@@@@@@@ 7533#3#@@@@@ =35#535#53@@@@@@13#@@@ 153=3'53'53=3@@@@@@@@@@@@@@@@@ 3#53533#@@@@@@@@@ 53533@@@@@@ 353'333@@@@@@@ 353353%33333@@@@@@@@@@@ 153353'53'53353@@@@@@@@53'35#533@@@@@@@@ 1533'53=#5!@@@@@@@@ 53'53'53=3=3@@@@@@@@@@@@@@@3@@@ 53=3=3'53'53@@@@@@@@@@@@@@@ =3353%53353@@@@@@@@@@@ 35!%53#33!35!@@@@@@@@@@@@@@@@@@15!'5#53533#@@@@@@@@ 753'5!'53@@@@@@@@@@@ 13353#5#53@@@@@@%53!!3#3@@@@@@@@%53'53!#3#3@@@@@@@@1!!@@533333#5!53@@@@@@@@@@@@@@ 1!!3#!@@@@ 153!53535#53533#53@@@@@@@@@@ 353%53353%53%5353%53@@@@@@@@@@@@@@@@@@ 75333#3#5353@@@@@@@@@@@@@@ 75333#3#535353'53353@@@@@@@@@@@@@@@@@@@@@@@@ !53'53'53'53=333#53@@@@@@@@@@@@@@@@@@@@@@@@@@@ 15353#53@@@@@@@@@ 753'5335333#!#5353@@@@@@@@@@@@@@@@@@@@@@@@@ 13353#5#@@@@@ 353%33353@@@@@@@@@@@@1!##@@@@ 53!#3#@@@@ 353=3!353%53@@@@@@@@@@@@@@@@3#5!#@@@@ 353%53'535#5353@@@@@@@@@@@53!35#53#53533#3#@@@@@@@@@@@@@@@@ @ #153353%53353'53'53353%53353@@@@@@@@@@@@@@@@@@@@@@@@ 5!3333@@@@@@@ 535#5353@@@@ 133333@@@@5!333333@@@@@@@%53#533#3@@@@@@ %5333#333@@@@@@@@@ %5333#3@@@@@@@ 353%53535#535353@@@@@@@@@@@@@@@@!53533353#5#53@@@@@@@@@@@@ 153=3'535##5#535#5!@@@@@@@@@@@@@@@@@ =3535#53@@@@@353=3!33#53@@@@@@@@@@@@@753'533#3#3@@@@@@@@@@@@@@@1!#@@@53533533#5!53@@@@@@@@@@@@@ 353'53353#=3@@@@@@@@@@@@ 153!53%535#53533#753@@@@@@@@@@ 353'53353'53'53353'53@@@@@@@@@@@@@@@@@@@@@@@@@@ 75333#35#5353@@@@@@@@@@@@@@@ 75333#35#535353'53353@@@@@@@@@@@@@@@@@@@@@@@@@@ 353'53'5333#53@@@@@@@@@@@@@@@@@@@@ 153=3#53@@@@@@@@@@@ 75333#35#5353@@@@@@@@@@@@@@@ 13353#5#@@@@@ 353'53353'53@@@@@@@@@1!##@@@ 7533#3#@@@@@ 353=3!53753'53@@@@@@@@@@@@@@@@3#5!#@@@@53'35#533@@@@@@@=3!535#535#53533#3#@@@@@@@@@@ 153353'53'53353@@@@@@@@@ 5!3333@@@@@@@ =35#5353@@@@ 133333@@@@@5!333333@@@@@@@@@@%53#533#3@@@@@@@@@@@ 75333#333@@@@@@@@@@@@@ 75333#3@@@@@@@@@@@353=33353#5#53@@@@@@@@@@@@@@@@153'535##535#53@@@@@@@@@@@@53=3@@@@53=3@@@@@@ 53353'53353@@@@@@@@@ 53353'53353@@@@@@@@@ , ^|   0+   T ? 6 ('.)1 * B l  *   V> ,  6 ~p l0 P \P RCopyright sahwar 2009Copyright sahwar 2009HaxrCorp 4089HaxrCorp 4089RegularRegularHaxrCorp 4089HaxrCorp 4089HaxrCorp 4089 RegularHaxrCorp 4089 RegularVersion 1.0Version 1.0HaxrCorp-4089HaxrCorp-4089FontStruct is a trademark of FontStruct.comFontStruct is a trademark of FontStruct.comhttps://fontstruct.comhttps://fontstruct.comsahwarsahwar HaxrCorp 4089  was built with FontStruct Designer description: <p>A clone of the highly popular pixel font "HaxrCorp 4088" with some support for Cyrillic letters (still working on them). I'm considering working on other letters as well. P.S. I remember seeing an extended mod of HaxrCorp 4088/S8 somewhere on the Web (downloadable on a personal website as an original Unicode-wide extension to the classic HaxrCorp 4088) and it had vast support for more letters. If you find it, do let me know! P.P.S. Suggestions to improve it are appreciated! Mods are allowed - just cite me, provide a link to this page and also distribute it under the same license. Have fun using and modding it! P.P.P.S. See also "PIXELA CYR" by sanyapolecat on FontStruct - a great addition to this font, the Cyrillic glyphs of which I might integrate as a substitute to the Cyrillic letters of this font (HaxrCorp 4089). Until then, I'll be experimenting with the Cyrillic glyphs myself until I find suitable versions that go well with the Latin base of HaxrCorp 4088. :)</p> HaxrCorp 4089 was built with FontStruct Designer description:

A clone of the highly popular pixel font "HaxrCorp 4088" with some support for Cyrillic letters (still working on them). I'm considering working on other letters as well. P.S. I remember seeing an extended mod of HaxrCorp 4088/S8 somewhere on the Web (downloadable on a personal website as an original Unicode-wide extension to the classic HaxrCorp 4088) and it had vast support for more letters. If you find it, do let me know! P.P.S. Suggestions to improve it are appreciated! Mods are allowed - just cite me, provide a link to this page and also distribute it under the same license. Have fun using and modding it! P.P.P.S. See also "PIXELA CYR" by sanyapolecat on FontStruct - a great addition to this font, the Cyrillic glyphs of which I might integrate as a substitute to the Cyrillic letters of this font (HaxrCorp 4089). Until then, I'll be experimenting with the Cyrillic glyphs myself until I find suitable versions that go well with the Latin base of HaxrCorp 4088. :)

https://fontstruct.com/fontstructions/show/192981/haxrcorp_4089https://fontstruct.com/fontstructions/show/192981/haxrcorp_4089https://fontstruct.com/fontstructors/show/27969/sahwarhttps://fontstruct.com/fontstructors/show/27969/sahwarCreative Commons Attribution Share AlikeCreative Commons Attribution Share Alikehttp://creativecommons.org/licenses/by-sa/3.0/http://creativecommons.org/licenses/by-sa/3.0/Five big quacking zephyrs jolt my wax bedFive big quacking zephyrs jolt my wax bed3  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a      !"#$%&'()*+,-./0123456789:;<=>?@ABglyph1glyph2uni0410uni0411uni0412uni0413uni0414uni0415uni0416uni0417uni0418uni0419uni041Auni041Buni041Cuni041Duni041Euni041Funi0420uni0421uni0422uni0423uni0424uni0425uni0426uni0427uni0428uni0429uni042Auni042Buni042Cuni042Duni042Euni042Funi0430uni0431uni0432uni0433uni0434uni0435uni0436uni0437uni0438uni0439uni043Auni043Buni043Cuni043Duni043Euni043Funi0440uni0441uni0442uni0443uni0444uni0445uni0446uni0447uni0448uni0449uni044Auni044Buni044Cuni044Euni044F :ݶ(|ݞflipperdevices-qFlipper-bfce851/application/assets/gfx/000077500000000000000000000000001452337521700233775ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/000077500000000000000000000000001452337521700252425ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/000077500000000000000000000000001452337521700261525ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/back.svg000066400000000000000000000032321452337521700275730ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/back_down.svg000066400000000000000000000013461452337521700306260ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/back_hover.svg000066400000000000000000000032321452337521700307760ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/circle.svg000066400000000000000000000004661452337521700301420ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/circle_down.svg000066400000000000000000000005651452337521700311710ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/circle_hover.svg000066400000000000000000000005621452337521700313420ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/triangle.svg000066400000000000000000000011131452337521700304740ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/triangle_down.svg000066400000000000000000000011371452337521700315310ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/dpad/triangle_hover.svg000066400000000000000000000011371452337521700317050ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/mac/000077500000000000000000000000001452337521700260025ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/mac/close.svg000066400000000000000000000014071452337521700276320ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/mac/close_down.svg000066400000000000000000000042111452337521700306550ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/mac/close_hover.svg000066400000000000000000000042111452337521700310310ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/mac/minimize.svg000066400000000000000000000013221452337521700303420ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/mac/minimize_down.svg000066400000000000000000000017721452337521700314020ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/mac/minimize_hover.svg000066400000000000000000000017721452337521700315560ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/windows/000077500000000000000000000000001452337521700267345ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/windows/close.svg000066400000000000000000000015131452337521700305620ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/windows/close_down.svg000066400000000000000000000015711452337521700316150ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/windows/close_hover.svg000066400000000000000000000015711452337521700317710ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/windows/minimize.svg000066400000000000000000000002411452337521700312730ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/windows/minimize_down.svg000066400000000000000000000003171452337521700323260ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/controls/windows/minimize_hover.svg000066400000000000000000000005561452337521700325070ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/effects/000077500000000000000000000000001452337521700250165ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/gfx/effects/window-shadow.png000066400000000000000000000056211452337521700303220ustar00rootroot00000000000000PNG  IHDRggA\iCCPICC profile(}=H@_ST,R!Cu *U(BP+`r4iHR\ׂUg]\AIEJ_Rhq?{ܽFiV8鶙N&lnU "(B0(3˘{zY9ԼH< & ޴ VUs1.Hu7E13yX`YԈcSXYXἾuHbK BA eT`#NN4'\D.\e0r, Z /)z_cͺ|;N?Wz_m3Z.ۚ\'C6eW ) 5>N u"ewywϴcrj@bKGD pHYs.#.#x?vtIME 6չtEXtCommentCreated with GIMPW iIDATx]v8[mgiGNstBWKhAnQA66vt(p] v  a'[jGKQ{B0@0XjtYlTԡ,P&gG`ex]JX>Vѣ*dU~;d^b1r^#jjc flQs{3(Pr!A)[,%`S50$EJF,>h'!b9[̅dP$32 5oo !6`Eb2H <'!JnZHcVQ}E*r^_ `\ngDkHt=2bVe('eFEu0F qY£lOpuƁɠ| p*1O TXeARS=k8c%pȰg7'd|# >f#՞,mEUE@o̚ /1Xʅ*NIo d料4̹ؓwĠ%" ]̚w5`,N"uRbr&!8{M2o tacYdO*49_9Z*O6n3EX$A64h`sFq- s1d,W#5Gu;A]UoS|CQo̙Z爋Ћ8NYKobsJ5&~nՂG @i-ۉeΪL"hv'9[f3{+d؜Gxj-*,%s)2~N2J{@@S cm̆Qi75,bg2xfe#Nn.@*U)Jő{R6=@*!EmcG;- Xq3mNPMo@Ե>;FIa$LyvZͽl{<ɵUt2g&:)lϿɈzeRTj8_׵IiGKG i<`d|w9 ^55PksmN^N紤ɳōJūIWyƜW.\앧H%iٜ)4vSMd%-|#ٓU~^B\Mv;1'RҤZk9Z| YNYS'tZKPosqj4wZ&{1 +H%%- 024o& `j>jZZˀYQsZ[}Ri flipperdevices-qFlipper-bfce851/application/assets/gfx/images/default.svg000066400000000000000000000177201452337521700270200ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/error-access.svg000066400000000000000000000102731452337521700277600ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/error-client.svg000066400000000000000000000057131452337521700300000ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/error-cross-eyes.svg000066400000000000000000000027241452337521700306150ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/error-exclamation.svg000066400000000000000000000017501452337521700310230ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/error-internet.svg000066400000000000000000000102761452337521700303520ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/flipper.svg000066400000000000000000000235071452337521700270350ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/recovery.svg000066400000000000000000000374131452337521700272330ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/spinner.svg000066400000000000000000000015221452337521700270430ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/streaming-help-mac.svg000066400000000000000000000352521452337521700310510ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/streaming-help.svg000066400000000000000000000352741452337521700303170ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/success.svg000066400000000000000000000107141452337521700270400ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/typec.svg000066400000000000000000000014701452337521700265130ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/warning-no-sdcard.svg000066400000000000000000000050471452337521700307100ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/images/warning-sdcard.svg000066400000000000000000000044001452337521700302660ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/000077500000000000000000000000001452337521700252205ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/arrow-back-small.svg000066400000000000000000000010731452337521700311000ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/arrow-back.svg000066400000000000000000000007541452337521700277770ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/arrow-down.svg000066400000000000000000000007551452337521700300470ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/arrow-expand.svg000066400000000000000000000006441452337521700303540ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/arrow-forward-small.svg000066400000000000000000000007361452337521700316510ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/arrow-up.svg000066400000000000000000000007671452337521700275270ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/backup-symbolic.svg000066400000000000000000000021271452337521700310270ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/developer-mode.svg000066400000000000000000000020321452337521700306450ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/file-symbolic.svg000066400000000000000000000012321452337521700304750ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/filemgr/000077500000000000000000000000001452337521700266455ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/filemgr/action-download.svg000066400000000000000000000013331452337521700324500ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/filemgr/action-new.svg000066400000000000000000000013421452337521700314320ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/filemgr/action-remove.svg000066400000000000000000000013101452337521700321310ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/filemgr/action-rename.svg000066400000000000000000000010711452337521700321070ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/filemgr/action-upload.svg000066400000000000000000000011731452337521700321270ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/filemgr/location-internal.svg000066400000000000000000000016431452337521700330140ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/filemgr/location-sdcard.svg000066400000000000000000000011031452337521700324270ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/info-big.svg000066400000000000000000000016531452337521700274400ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/info-small.svg000066400000000000000000000023211452337521700300000ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/info.svg000066400000000000000000000032401452337521700266730ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/000077500000000000000000000000001452337521700272345ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/badusb.svg000066400000000000000000000013411452337521700312140ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/file.svg000066400000000000000000000006731452337521700307020ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/folder.svg000066400000000000000000000007121452337521700312300ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/ibutton.svg000066400000000000000000000035051452337521700314440ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/infrared.svg000066400000000000000000000022571452337521700315550ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/internal.svg000066400000000000000000000017571452337521700316030ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/nfc.svg000066400000000000000000000024021452337521700305210ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/rfid.svg000066400000000000000000000033471452337521700307100ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/sdcard.svg000066400000000000000000000007731452337521700312240ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/subghz.svg000066400000000000000000000027151452337521700312640ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/mimetypes/u2f.svg000066400000000000000000000007621452337521700304560ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/refresh-small.svg000066400000000000000000000014521452337521700305070ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/restore-symbolic.svg000066400000000000000000000021111452337521700312360ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/save-symbolic.svg000066400000000000000000000010751452337521700305210ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/trashcan.svg000066400000000000000000000021551452337521700275470ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/update-symbolic.svg000066400000000000000000000053611452337521700310470ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/usb-connected.svg000066400000000000000000000013361452337521700304750ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/gfx/symbolic/wrench.svg000066400000000000000000000017701452337521700272340ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/application/assets/icons/000077500000000000000000000000001452337521700237265ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/assets/icons/qFlipper-cli.ico000077500000000000000000002231321452337521700267570ustar00rootroot00000000000000  h h.       6*00 %:00 %` . @@ (B @@ (B2(  >:>:>:>:>:>:>:>:>:>:>:1111>:>:>:>:>:>:>:>:>:>:>:>:1111>:JJJ(  >:>:>:>:>:>:>:>:>:>:>:1111>:>:>:>:>:>:>:>:>:>:>:>:1111>:PNG  IHDR\rfIDATx1#aodC0Rgma8(&Nt`bA̰Y/^ws2}& ` & ` & ` & ؛O>Bt:Tt:RJy_^?UL@7OOt*]_ 6<|5Uϟ/<?#K_x?X驼}z{*X͇Xu{qK?Oҟ}@}z*{w_5 R*+=ep־[innݞvJ_ Z%/ =ܺZz\p=_I?IAoTQ [_Xz[{QIt$c_;@U"hB49O5*k[ `xZ]_۳u{w]y~oP_>|?~n=Updz\kjwU{Ͻ!`ٛ3{KNkO*zȵ{6Zxkr{{Ѿs)n IR e{yq ؗ `߿/ ` & ` & ` & ` & ` 6Kh` 6 `Lrǣ`  `=sm޻o]yTL@0V㯽z랿vko/Q@0vv & o&0?L@/3~{K7 & ==TL@0*lӎ~vs & >ߺ=t` 6 `i~i[}-mk!TL@06,@{t=]'4bD wr=G8f{l}mfDl@my3okG `5Z{ h=?L ~bDlkޥ{Z1>TL@0f#mڀ{LlhԚ~Ll{.Zzi{h`  u~Nl@ZOxv{Y & T3`  v;k;TL@0VeF?>L@@kz^=:=|TL@0z3=S@0:~>\?L@Uf9` yfcۻ_Gq `U}'~n=lg)Eh3+=[;bDi> F8w|$i5` foݳ>sT@03l=l͈=%L@03 =L@03xz%*& `fJ `pzz*& `f KOߟ & ӏG ` & 㹔RNk6M)>|>`'fL@0L@0L@0L@0z]"MIENDB`PNG  IHDR\rfIDATx1#aodC0Rgma8(&Nt`bA̰Y/^ws2}& ` & ` & ` & ؛O>Bt:Tt:RJy_^?UL@7OOt*]_ 6<|5Uϟ/<?#K_x?X驼}z{*X͇Xu{qK?Oҟ}@}z*{w_5 R*+=ep־[innݞvJ_ Z%/ =ܺZz\p=_I?IAoTQ [_Xz[{QIt$c_;@U"hB49O5*k[ `xZ]_۳u{w]y~oP_>|?~n=Updz\kjwU{Ͻ!`ٛ3{KNkO*zȵ{6Zxkr{{Ѿs)n IR e{yq ؗ `߿/ ` & ` & ` & ` & ` 6Kh` 6 `Lrǣ`  `=sm޻o]yTL@0V㯽z랿vko/Q@0vv & o&0?L@/3~{K7 & ==TL@0*lӎ~vs & >ߺ=t` 6 `i~i[}-mk!TL@06,@{t=]'4bD wr=G8f{l}mfDl@my3okG `5Z{ h=?L ~bDlkޥ{Z1>TL@0f#mڀ{LlhԚ~Ll{.Zzi{h`  u~Nl@ZOxv{Y & T3`  v;k;TL@0VeF?>L@@kz^=:=|TL@0z3=S@0:~>\?L@Uf9` yfcۻ_Gq `U}'~n=lg)Eh3+=[;bDi> F8w|$i5` foݳ>sT@03l=l͈=%L@03 =L@03xz%*& `fJ `pzz*& `f KOߟ & ӏG ` & 㹔RNk6M)>|>`'fL@0L@0L@0L@0z]"MIENDB`( @ >:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:11111111>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:1111>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:1111>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:11111111>:( @ >:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:11111111>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:1111>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:1111>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:11111111>:(0` $cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccccccccccccccc>:>:>:ccccccccccccccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:1111111111ccc>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:111111ccc>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:11111111ccc>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:111111ccc>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:1111111111ccc>:ccc(0` $cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccccccccccccccc>:>:>:ccccccccccccccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:1111111111ccc>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:111111ccc>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:11111111ccc>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:111111ccc>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:1111111111ccc>:cccPNG  IHDRx IDATx1n\a*. åզ6Rsڭaރ) &M8dP ϝWw@f_p{ $ H@ A $ H@ A $ H@ A $ ?0"۸3׳/3G&>}Mƾ?@ A9o} xߥoS&d)==^z;M Ox?~KΛ7/0$ H@l70?ޟ嗇z&t ̟>ߋ -;5YgOo5 3~#m5K~ =_okϿzѿ㓀Y@Nf?dAM~ r5Ϸk«]gpipnlcYL 0Aߡ8ߟkϩ L 08K?{18^m[7}3zQ&d=]bAM[^ݭ}vo}zկ[Fo$C޾};7z?q@nkk֟o֟oǯv=~z^mcV;{6IL !-Yn}Vs 4wVC^mOdA$?K߼} 7aA&<~%;0W޽{g_/>?@ A}p_lA&$ H@l쫯z&$ H@ A $ H@ A $ H@ A $ H@ A $ H@ A zT=<<̾W^;L H@ A r$K7Go%&$ H@ A϶{G9($ H@ A=\{{g533 A $ hsVߓfmL H@ A z996{ϛ}{}|&$ H@ A}pќ=؟  $ H@ A?|Ȟ_}OL I@ A r8=KVgߟ  $ H@ A`Ig9w=?o&$ H@ A9#{G35{~oG~í@ A tsF@{{Q ?_ $ H@ A{gtGnwv~ $ H@e{W>~odwvL H@ A v=G>}~}G7 $ H@i}~?g~|L H@ A >o ~}GοO܂  $ H@ A0}u{}g&$ H@ A-{{{Գ~ $ H@Ӟ+?= $ H@ Ğ?7?@ A Ni=n{fL I@ A :9> @ A 9{=ٷt{6{0 $ H@i=g`tg}˞? $ H@0ǿ}΀=wx9{0  $ H@ A/>`=я}N@ A sfy_9  $ H@ A/>`=W}2 A $ \bO晽w_{޳ $ H@ Av;<푮9ϛIsvL H@ A vm?s~|` &$ H@ A9%)۳Ә@ A Nɞܿd&$ H@ A9ǿ$ H@ AU  $ H@ Aݝ $ $ H@ AX=}n $ H@ \ɞ>g`A $ H@sӱ@ A |&$ H@ A ݻw ؙ <z0YC1 A $ H@ A $ H@ A $ H@ A $ H@0)kwoIENDB`PNG  IHDRx IDATx1n\a*. åզ6Rsڭaރ) &M8dP ϝWw@f_p{ $ H@ A $ H@ A $ H@ A $ ?0"۸3׳/3G&>}Mƾ?@ A9o} xߥoS&d)==^z;M Ox?~KΛ7/0$ H@l70?ޟ嗇z&t ̟>ߋ -;5YgOo5 3~#m5K~ =_okϿzѿ㓀Y@Nf?dAM~ r5Ϸk«]gpipnlcYL 0Aߡ8ߟkϩ L 08K?{18^m[7}3zQ&d=]bAM[^ݭ}vo}zկ[Fo$C޾};7z?q@nkk֟o֟oǯv=~z^mcV;{6IL !-Yn}Vs 4wVC^mOdA$?K߼} 7aA&<~%;0W޽{g_/>?@ A}p_lA&$ H@l쫯z&$ H@ A $ H@ A $ H@ A $ H@ A $ H@ A zT=<<̾W^;L H@ A r$K7Go%&$ H@ A϶{G9($ H@ A=\{{g533 A $ hsVߓfmL H@ A z996{ϛ}{}|&$ H@ A}pќ=؟  $ H@ A?|Ȟ_}OL I@ A r8=KVgߟ  $ H@ A`Ig9w=?o&$ H@ A9#{G35{~oG~í@ A tsF@{{Q ?_ $ H@ A{gtGnwv~ $ H@e{W>~odwvL H@ A v=G>}~}G7 $ H@i}~?g~|L H@ A >o ~}GοO܂  $ H@ A0}u{}g&$ H@ A-{{{Գ~ $ H@Ӟ+?= $ H@ Ğ?7?@ A Ni=n{fL I@ A :9> @ A 9{=ٷt{6{0 $ H@i=g`tg}˞? $ H@0ǿ}΀=wx9{0  $ H@ A/>`=я}N@ A sfy_9  $ H@ A/>`=W}2 A $ \bO晽w_{޳ $ H@ Av;<푮9ϛIsvL H@ A vm?s~|` &$ H@ A9%)۳Ә@ A Nɞܿd&$ H@ A9ǿ$ H@ AU  $ H@ Aݝ $ $ H@ AX=}n $ H@ \ɞ>g`A $ H@sӱ@ A |&$ H@ A ݻw ؙ <z0YC1 A $ H@ A $ H@ A $ H@ A $ H@0)kwoIENDB`(@ @cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:cccccccccccccccccc>:>:>:>:cccccccccccccccccc>:>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:111111111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:11111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:11111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:11111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:11111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:111111111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc(@ @cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:cccccccccccccccccc>:>:>:>:cccccccccccccccccc>:>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:111111111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:11111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:11111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:11111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:11111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:ccc>:>:111111111111ccc>:>:ccc>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:cccflipperdevices-qFlipper-bfce851/application/assets/icons/qFlipper.icns000066400000000000000000010623701452337521700263770ustar00rootroot00000000000000icnsdis32      s8mkil32      l8mkit32                    Œ˒ϒ                                              t8mk@ic08 jP ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cOQ2d"Creator: JasPer Version 2.0.33R \@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP ߂86Y )x#jQyedՑm@L`:6l{$J%67?0Hv9&t߂H*n~,\wSEb^mzRd=b+()]sQi)dxGxtv;"6߂@*lTn θ5mmiX>h p1mžSKu3q$dl߁| )b.1!O (zIY&⋂~seo.Vٻ"0+py~3H4Jzbgx;uz?2v.0#L1_l`c <̈hJ$쎁4Hj d,=¶Wr;9;W$pLѷo!9-?# ȱiҸX<e=d ]Ǩǁ671PN}i8gZ2H e%G~`s}?C;\Ь < '& qvYr"8y IS:$Ɲ\5z*}/< hxN:k5[ZT\- aZP?#[5, n ! U%fg\m*8 VW;x,.Ԑi4g{m2lN|;s[Z6h,99͇9x3-qJIÛ)7tFV_!ŀ4A88[=T|EWr+HCs00fj2i˚a@0dPs'e&h4IFU#S ($M@nrѯyXP(5Q}|QlAKi> 81'KߙmGR_l™DPeM'y&;GθX ~8YdH@Im2\m p=i%K=$}x|7OD\`\w 9쁝bOv@S=Y,ߝ~vl퀁Yf-c(m0^r3a:2ۦZ nt:™ݍy5_-&&Ie,#4YgS40@y@KMQjndQ$f{RL @r9\7D9"%@"O;yQ-荇׏luly? BD %s[燓5G4p%8( B&kEIgzwfHW`l0bu3g'FG| GU '6 B5N-͌*XqQ? 8gfiiuq/c#_w.^f|PQ6} r,P"ðB(VKAE{yIShp:L1l0T>J``ڧV ?-AYxRnվ+ֆ|cfJk3'lX#B h-O_v]-l{\r؊<2Br6 2i74G$R`0*za4Njb!P&*;_@VyCI6U^/qOS &,y953[_Lߝ~v`mC;n݋.~mEȷDd@;|kG0/yh VjrW"x$Rg`*!e%yǾt1Hɠڑ/.-?țF4o$v30ט}<̕Of譛vρ㨥?@$6,g\? >o.0&ȊO8&k4 *LqzJۍwvXb,\L!=xQ" ~)a,p6o{nE=_m W>R D8V!bQ# LM gWo &_Hկ}/$E÷rF%ySe2H,8p+L @ WZ&,t.TVS>;viO^1qz4sƚB喝ߝ~v|Ђ=@bQr COt/ajLAao'o&MZ22+ x£HDu -1 ‘Z~$լAtPr+gtʿsz+ɨpO !=o;" k@ ݈Ģ@A dKD9df˦LARe_cL#Jw8&k< E \?8Kvn[jZ!qY鐏8fRCңu@ícA0 tuEll `>>,EDlZwRD?UoxpG4*i~ Q J3 M )qFbm~.W\RKofK i,ܒH ãC<ŕnv,5{yڊEЃj{: %(=y`W}IQGܣ " l]bgc,&z%)&p>Vs ؟&\\ţu]~փL >8o:1@ۛ{c;ԏK$x@ݩi~ q+7ܸOkZШ(zO`;lfrqU$%+>T} S>,}|o2>O3/ 4G lgD T9W,ȿj15Gou6K>QxBh&Ņqzb$iذFSpP~JmI{$B!2sW-F8-.F^t>ykmE2_鵥w>!O"&+ @2ūf:q$jpuJmZ,m$񩨣.= h. Bz/ߟJӥt¿HJWk{' fΆu)b-wNm)9-E1wup65q? ~XTPiLwuZʹ0E12 '0w+RnFCݙz Sv /Z7( dv5_^lb!  nƃ`p{ow`^/aN]ےH)='N9Q-9v`"~&"[.,I:cw0 ٔ?`RyM"Z݊evoe,/d;@ I"e>BmYqZeʹdN,#ooxˈvtV6 9,N8v1t[.~0߭Ey=?`9/c墛͓PV@*n8F9 4׾WƔw;xK|]3auX ])<3sUⰛ,%v^(W `>qԴg\}UXhNZ+=H@ Ml㺤m4#ʼ 2eC(YXI:m ß8⢨L+za ~>lݘXS\v\i\s>f`er^"NW@kC QZEA6 4ܖ,r?eT$ ЃPg[嗔F}<&"j⡜{o}S*du*w D6q&TddJUx,eEe̎0f%+Z9_.ymd^\| *23I?SOynLt㡘UI׿/Gb#I3vU㣒r䖚] $7Dͅw3Չ6ǀJ:4{JG(;Tl3."bmi,|l79Ix\ʳc'/<,P\@4?{N] ݾ@ncZ.+7(!-&`V=42 GVUj-eB|`TSEKtE0') 9>Xx;\V蝒͉}%% ONοߟIt¿n uC URxvL{|mܐ|o頀AC6!T$j5’mBܞAs= '1k:FaRljTJmMY1{7!w1==SprO&:jzŮAB3F%YBLOHZT ظb(F[Ͳ:/$:f˻04+1pʁ'?+ TdC \}UXhYlc߁7ܢ2o+bVxzC4Ou.*@rVuIPx}v.a~ϮOq"AHo$p.iEtQ=(l0 I O xj*.- ͆c;A#o5A͈˴K'=7$ف qs]'ysD!jEyUV׺ja T55В h-mߙEn52QZrn.'3/daB󢦼M'}Nc GYaqG|\Zrd D&2N,s.g^22励ҍC6]j z^?'8d>U6gPuBIFFg"ۨvq=bD~<߆gh׈5x%rQ_ ҃O|ؽ.ԩRxBH KQ<; k[=`81}LX!5'F_컣.~jF6(iH8 cYt O1c%RATXk&hNޢ#p4i)cWjJpt[E@~ ;FM:M#rD=|s(nw{4d4ܗ8Y<{z[Ɣw¡_~!Md` qo'@#h|m.ѭ/%1;D`Y$ǙB9RgHXg2mfF|#0XD674ik5i2q@^\na.MER<)NǕ1v5NSueif߈ਮ(Jvw9Z}&ڸeF ()nD7"(zu3J)ixEYFH9 HrL28b2ȖAJ'4ƽh ț^`Ci ޔ$r1;șϔP2CDlxbK.ɋ.Kܶk\}O ;u\FeKMi,sRiСk1d)Uk \1%2IߟEtzn uC U1 ,u: w7ieB۝0)oc2K+f#wHg-]}{A|'T|Râ8u_H >tuItG(ߍ} {3~ߣ`4bY!΄tjF2` 2b&GhNIgulk9ϙZ0XJ&̙7 ۷|Az;4g eBU KxE"qح]YЉAg/W>5i:Z QN\r͚U&MjLaPOֽJVC>U= Z1{Bj%^݂YWvZMM^.:AI"04,%ʞ r WE&X'b_ujH ZYn4tMG(@[^gTGle,[0\ Q7CõٿCBUWR]PCY҄xC7*| T-*ѝ y*d pt%03p>+،77HQ]JA F#w%іrmWbnq0j5s~|_^Io ŭ-49 9 ~c[`6X.bjG Lq08@M.[P}$%t2oW XU57l`dE=!31%~Sh߶\o#X[> w@ZE+nunAX;[~D5#̗cLWhC 8)]J!ܫ~,Dã_[~#[keaLP+fAO'CՂ qw`eL|_f''HV\tx lI>Ge s=aWlkr *{tAFFB#*><Izw˓ZVfwyPa(`x|zV , ӔYj7}{~ B+Ny2!?:xАH{݉3SÓ4?Q"aT$Y ?$Ğ1JQ<;t̫pt#oic`Ls` VmiĘ񖏼MAYVQ7n"g ]ŘYϱU #k*)t\ Pk( qY[I4#hi6K䟃r?Dgb4_X 0T`EDra@iZjkDC(,.deOg^AE롟-_-7}͜;jDAv|[hʌ'j9Dw-831^ V^E𐛝 `MMKB/šJTY\z`^Φ54<8_ rqTNY\͗J X- <`#r(u1y;.Aoy;f_9Ņ`X 7!]G}_W{ J8p.n49}yR68 s⤮>oߟ߷Xu97ŪݑWR#!/ 9,&&sP?~Kr0xNc`4yy @*a yv:/|ƿwJ.SzvA %3j{YDuq7<3S@2EF%ϼV(o_x'r퇧A^՟]4LO&HwIOM#r z :1%K[t ¨W '†syj*p=&.!Qd%!%1F9|˘tyV&@۞E83Ԫ=UCHOj["֫}g/g\N bmܻ֓[erFh7oyD&  x޳3n#5܀|Nk-u(2^-$ݲ$aw)qkd|':SSҟH›|^nZx{1E:Y7Pʡ^m֢:G=$p'wB;{Gt7ne6!y'"iOi4NJE#,V*]F8x>o:$u 曏۸hO-^O3!K3GB }lq!9aa=[aQJIKf =jߑ-4aOy6BKd-FwTϥVz0 7hC\tHkߴOw=4I*\A{G3tm҄ Ul``{ārlk|%b7d׋)8iꘫo"V{- ߵ܆eb+\z} wj|ã6+봋?;N/3p U1Z&O|4ewa4U$)׮Vucݓp+y?Kpa5&hɂOԚ~'[qq:"RHD?cI*nyęԟC3Zyⰰd.#~n dsR*]三{3,<70ὶ~;"ɋ [o*1QNU3ARy<NR eU7Fog aBN)Vt˥@zV{厎#BW)ͯ?JHI2kȾ Kfۑ qaUp a=`Xk{&E)ɡqf TbڲP&N,(Q b1Y4T~3ꥌ%^ }ϴҬ8&^c\ T^w8 )hdTv/?b;r2QN .w 5sW0,LWr1n/X!Wq/+@oY5MZǮk?\}X*7q7y22niUoFతƇ~;w/ BCV":hT/IzmN EsQkGfר[ 2Pk<ٟ%+$JRyX%Gޜz[PŬSJm1rl%pz ʮDʡB]&}8FӵhY%K,tsѻKb}Upn3{'_TorDj-LK:x`Ǽ=b o-j"rO;8(X}T.DĬ/eҺ\䥴msXmW1 >}l!r ;@HOYByKleg7Mt]4 RuS8Z1B #C?'L!JK%B_2QU5ģkI[Q ^3O! Ӥ2= ߵTN 4+9"߾cY$ @*kqm2 =u nӉYu\T0ֺR5{emh{U;ϡ9[B:_uf|mEY/h"so -H#TѦdGf@IsFO^Bիa+6R?l.KCTdppbFZ)930j5_W(nbт J`_TxRM h<X{KW,T5Ém(A(rmܞVSO!cLmVWq7ZEEOTD| TUYs7tc@1$]:NW+yHlKf8U-+Mld>c䃨m=3 &3lQc"O z8$k}$rSh>*:9H)b,{ 9 sW0QyË ht_7 a붭K TK-|@}IERZLT*8c/+ʵU)ݟ~ٛa 2lXi3в_P[ꛍ=Z'Ư&ҦPutj,6C8`ơ8 Lt4jͬ-:E\^PNt2bfڬhiuX.lGHSWE<,6x/FH!y qMYĉWe4ͱޤACG1Uiͷ4@/O(d*Y^OA^A9X-B#X|wԟCs lNoi ASKqp[؞HX;5ލUuԌ^K&>aqVm# *jW|<(&jof0'Os3jg [l8)b#) ѾN(G=HVko)ߙUը4 iFT"!ID(a,~q%M_sFHZG&R]+z!QKd%ٚ0|m)ZkXHKGB3VԐ[y--CRT|tRqdjw;aK5p71xerP a)c.V=)]Ux@:p7:Bz>a4jNF x_ 1 A.“-New7H͏X_J\Jb:w/IT_2Hi[}*e#N2U_^@$JrV)ek";): OTț:dAFE"GHV\܋z##WRrU "fsl B0=r5\\bcЍcxNi7?TR4%tUƛim\MkXK*?=!57V$+R+JiTx[5,H] MdkhpǸ5lq1 UCN׶ vEBD"ȠL++?ߟM"_@Xu97ŪݑWR#!/ 9,&&sP?~Kr0OF`ŋ6sy S_Bb8焅!ggxf =I  lRhmthaw؝Zʄ)<,,k)=z[Gx.Z{+?TW.66=U X+=.] a,$z>LC`=յ3\Bb*W/~A}7LfI[)8<݇pKQ7 ư$Es@<㑝׉o:fWPSհaNRüfp p n(@PL<Pw lVzK䵉L Zc5[TgG  i:TPw%P$*Pc1֗ 9HATVC_t>Gd4< 8˽ yEGW]aB:l䰭4-d%;z[;n4 ϊ$]IRFVmFt+";ٴdQ a eTre]eHj\\2,Ƌ1iPf<H ? u6ĈXLUII2%qнN/y$g㽮_t[$-cHzwM*($P(ltFrurDK&ge{ؔY{lZ#Ь0f[xYɴI J˛'r%4KT*Cg?;fW(O:PRxp%M?Д@c\.\v)u͹)9XaO%4 vVdujTF;U;X)#uՂ>5X($\%F̮,ށφJ^=ł kbC%4_C_쀈Iz<7Panz  ?JHׇ|ؖ0"@;8Ð0Pp?βIlvZ,+ocNjP+H%%$!8Y ^.~! xk_dGTq /^s=. 8:ҿ=4!\[dOt<#w׊!4ai/Ȫ= Q'3 6%:}HAj^O]08i9bJNFSlm7HXº¹& gȺ.Ue>⻞ 9k+!YqFUU 2XyKA~ɯ8b2T!ړŇ ljd~I^OFWSTI1XKdY<"Cׇj8pAp&9d򑱹BD= jCwny g7_o''(R[tJAG3u%}EecQ)SDeP>Ԏ&%π3%B#2NїLaS~tbQeC1o\yÜ:\/i#VsKhqКws~DQ/gIV<Py ['c17'3bL(Iz+M"Ϫ.J,CS0-Du1EtA4rH{8=e ȹ@"J*:@v$7ULR}g+:fJ͙mb!&˧V7`$e~>w ̐,h12JzɥEW8 8shzILSs=4{g9,@NJ鳥y,NE*ªmr µ:8,MH4)={:%3|@lb[Y^(, qJ_gܔ zLI-궕 C zii# S]cG˼ }xcGAW_3΅ax|jpOGnļ)TLXOc EdןȤUXzFS'z؍Oм)Ϣk)5+ZWqƸ 2<}<Vg;VpmVW p ؀EfZ#O슲2U_^@$JrV ~:ZVFu~58>OKf L]&nꉘRei OUUD=Xǹ vb&+,iRrN=b( cѣz8)$Շz*H3pe֢RK*敃~;ɹ 9ڱs]oމԊRfs?D/j Y4 Y~i~g,īI'U;7[7Uz0*8E1ߟ_Xu97ŪݑWR#!/ 9,&&sP?~2zZdW6!H#D(BHҹ3PT QL:C@ec!/ @qK?3,] ;!+EFum;@w^ZzK i.GM]kY`#$$3:dE?Pfc XOnV$f=ߪ韩o'}udx.VAcW|r,5,ƨ&|QNScO[`t/qX-Kc%pI"#z5yAEl~G8"O|Yk|E_9NbI^YMq}TJm_s{XG {Pܚ{x) Ù viKĶin;8ǝi )WgX6<ZCer1K=P66gx4K7cIJ5beD#ۢ4@'#|r:"]O)(AFoJO2>Sq7 x~Qk0G "z7G}e~ HÒ7[n:^9پ|4-9yA`3Sb_]!ʒ9ڪ@YUmcRtUޝOW×Í$:ښ㵷o?sG<z47hLne +N "tJ1CPKjN.L/Jg&і[ߛmq1m x:)N& sOOI%]5.6-.'|עzafGNpk`*l*丮zE&i0(>Hg9"<ԯOf#C-JӼ3e.C{wSY9~&*=Y#Cy8z̈'ɮŗPt nNKƻYÍψifg،.ba_pTԶɘ(Y$Uw²6ܱ2Zm& Xv4Ť8\؎E!ȥ܂ M(KqmJ9liiTvHSF=^ƸoUQ+qO^Fi?f(Z]roc +v=)zn=n)vs >pQ3@/&ƅky6 ϼ~͙pn. .~r"M`-%,#h>8Z1B #p[-n/2*{Uy#7 >B! 3qbВksu3LԋnMwK>tSj`>NQ[0j-&ֺO\Lo8"R.8+nK0Xx n ,A 2E簜^дICԷ}rT25M/SLFptUXtUbuw>GWYJ$7K 0_JHpŞt] }[3a ʬ1npIRLޣJlXS y yO|pC*~y89-ԧ:k~"'~~_5'pn O+ )ď͐1 &6=1GbT'DwaQO| TUYs7tc@1$]:7MνRO]s2Z]ҽz6 DX/cx$Mf_.Fu*fs:+m(bEeG 8gP[ٖ6zucQQ^fM{/g+m-U+ RӋun0Do>?ނ5TY yhچ_3BCv,r $kM4K֙K%P%6/{m3.b=kH'fp4 H6_\6q 2G'q<+b(gRnFn8/NC-ס2q%dcO~ ԗ[0-hG;.%!OPH[Ʈ4~v%VBnbp>hQs /0 j@AbLG½uEW/MÅ>v7] \gKMa$,w_涆Arl#~y!Q͡f~EXx 2E)6ΊWnPD&2 +Mp0{ݨ׏Ư[1k^&A\T=Ւ&q2\&(5$ʽu@{ m*O0%D]Ow&1?8"9LFj~A&p_#(iUgu)~}Y+b^K+̵FU)M!6nՇt+6 7C$XOjzER-2ePy)v',j6$I[ j%2㣞sEj8|YKHJj8KaV^~ӽ&=Ë,xTH0U+Up'2sbK6nCH(i8YSTK=%#Pb_F?֨$l_})ٽy#,E=O 1dZžbߞOZ0ȝi@}`h*'F=ɏhD,"tHƨ=ֆNS(ERWet H HDUžBaܮNpIh9?pURx׃1?kQ70hg\=?Ǧ)!GLHA_29<~gJ|z,^Zd/aOgh*@!<^c[ˏU1jӂ*C5 \ `3zޚͷ@E!3*7/UItQGjC-@-Q,Ai-Î+ҏ܆e?^PR:A@+: hL\iVpE̋ (kʄ~ F/X mƱel>''P=^k%q@7dgcJU&lEGrAǥ,!0Џa%pjVB90rZ T+Bziw0;lK}qȂ5Pi"fˤ(N+UфTU l$ZB#NK'v-JN~T{Kmqq;E{;FoZ3&q_k%NQPGi4EJgnyuBt6҆lI+Ŋ3_(Y_DpcX 4,:H"XK%\rn GlErDm)#S !}q"rJo>%,xgZ6]ZiWSW?YZDI[Q_BH Y@o>S$Ϫt{@ @ A>ܲ<\i&WRE/  ƭ Etmv6?JépO? i(h"4"woH5zl2Ї6Kc8xHLѢ~}청[`;wge ZX+zˮx%w_s!GqƕG[ # !b0Y`3 ָJƧa_nO^(ƕB%~^e-.2IJoCai_OyB=MP] z ﱻ :\T|Ww/Ӵp0qR81| nfk}h:PݜAFd\Xbux&zFsDcl(6=#bo#P [@S&rHF*L7K|n!4PC庝>DD_o2B]8I4g<_읫\'^P`m&L?gVgN6ߜ-&p!Co?n?zfS 7t|5ZO?k= ? OяYmse4?7M %}*'cc Pgщ8j_7zlVz%3k,9,i+5U2I/YbkN(oDE ףּяYmse4?7M %}&I=^k?֌Mi UQ mW>rzԐAgQ~ :8` [LtRF$ $4gvj' xRL9`.x6rZ_vpc]4rY^[ngÃ?ȅ,Yb^ށu/L♊ /*,?Ľas_"ep8q p00w,⬚6X_:=>\cDB. 8%yЁclqRԩ. 8;/̺.iU.61;hAAYڏ8ţ6?Hv L8ezR|6ZM㤴?^y\rp'$v@5=;k 7+?9C @, Geķ,wjbybpv*$A ij[nzm5v: 6"78U^vClpƦ< Qeh븂L=f^]'m|Ad:Ig1Zg6=g&[kQpb7GO~A#CIeeIx쏡˽hCϸ)2{[wg.ȿB덦ٷA FQ&_Yfcl0#PfjAb Z$}[&53_lWq$X{\Z{d fp9CvX=.3MX7teQ@ze`5ؐn| g+][WeBS3% -{1$r5LD %~+ &0R(? TcHT*܎՛Ͱ# KC1;#GmO! ~,3O!Z2/+G1-EV2BTQ" 1ʓҔAvd5K˭' '}(?ztW7*tܫ}:N{TWXiء@{gU,Q(άMǝbl|WJt#Ld6C\Π"OSߗ2pNRx2[0^[<=+%wv"mlu}WD xKmT c_77á]ȠZ2O(X_RB\8\ux[^P eT;ZenEy{+A,AUP3 ,^e??X>]Vun.Zkr4PUD:ǗUe8=;/3Qtui* d `ԁKʕ^a( |` 1'$hpQF dz ,h !v > ŽSp4~"-'ʃ{J#cҝ/hZv(@+3IW5f3 C]?Q*XBn_R-Vv]kW>KUQA@Bc1PY8-Mcȇ/DLba45!C~q7ŐhjR]Y+*iy<cMkE{?c T=" xq+Ar@#8v#HXNZ ɾ V>\ _Ig3a-8o5Ŋ7J4fmcC#G eN~89$aPU['&~2I5M^L6-2$Aտzpp0P{lH1ې˨椽[oQ~,`#Y~Nÿ :3 #duGIz3jMu ^W#duGIz3jMux6GZxt}#6^^(ր^<#%sHͨe5׃۬H Qc.C2(72p7EY pH[_oUqyP]Zwߛe@jһ { "$=d{<~!37yr-~;4%kZ}!v0KyqgvÈh{뗍JfylgX4  MB֤H]8G^wc?z^Nݤ9 !ٯKVRO l 6D2,\۪jCJ[⃟1OrdH:8Y&J˃S?K>|=XO9} 9d+eqSܵ!̞G שSv~|*{s'Ar95ON!&C9%-l:iLP1tR)%otʂxL4u$6,|Y[2(gKDyVyB<(?Cӣ_b[G-Vh\,;4l)1bP%`X&l)1bP%XJ S{b K ׌=œ=3Ե /"nU,b3;?TmQ.lTl W4I^eVڒ;ZiWJD#Yd$bVyg|F k4Tm(oT&,)`?zM~Yn_mp[wĉV@i_|Z)߃eC*Ŭnip_A,Iy*^}⭤=1&ҝ䩐U@a F$S m!@Hv[7ٔwv - \I{b, DMpu@IqcrzԐAgQ~ :8` [LtRF$ $4gvj' xRL9`.x6rZ_vpc]4rY^[ngÃ?ȅ,Yb^ށu/L♊ /*,?Ľas_"ep8q p00w,⬚6X_:=>\cDB. 8%yЁclqRԩ. 8;ThLv鈅K+ 7qOnZ7El`HN4ٴ $spw`̃;6,7l=>x[xfwG[xWl:'|#z~v4خQcTI ac-.-2ָƋ55bxWVSl.J>N|@x7FĭoP |8ދA%d8%`DJqrt#ʴ  `KSd3x_ý9P):Y'.`dAֺqZ`q3or %̈4yr$k/X*k? q6  Aȃ4+ >6T3To|uGc>X-ź}.l5v1yv*CwY.-u+Lp}R k͢x1X[^!nA֐i~Lպù/ԢͷZ@٫͏iO34ODܖkg =tߒ"O1Ru -:oJv =]B`43 GCG0T"%@=*;T5mE$#QKQڞ'dB>qQ̌~E0*{*Pu+ (8wS+`RxTB610 A7TvF?O"|h^&%uqCk p"tdhv@$=a=|3O޺zI?:^Ű?#H>WY;G!Q䁡p$Kg05Ȭc-eCLA3/jb!Yq 9hXiB&BQ@ v3$R~Ch\){A˺zqo^ѭ ŽSp4~"-'ʃ{J#cҝ/hZv(@+3IW5f3 C]?Q*XBn_R-Vv]kW>KUQA@BMyL"m%pfKO؞"P9S:nXp[OuֵͬHEѨȬ xJO{ }ZeMfvx]m¬40ŢP, )Nnm#]_Ga!гl,C|;!۹09vՁsd=j4lݷ-ur#7#א"+'e70ߌ1ά`wbchra䀒\7D0}xk PGu,uv} T|N7yaCu\oxm}*d,eڣgg35x1Gc2THZhZ!!DsWRP&V44=WO)ƦG b%@Lx~[ɜE> leai5>>br0\^SMDJ1Ivu ^r<$<@%fƴJ\{hRxJ:vu`?S}S=+F8p71n)6er]#L_ M'JSeΥUN>=" xq+Ar@#8v#HXNZ ɾ Vay 3QTx6$Շ99zD^"<N 6ΎheY .[^=M#Y<+xݏhI/6ǚ,o},u0>B>OQLtʸ$%>_tlGкxG:K>PkULj΂w8^x9f2%-9xt}#6^ˁ n#%sHͨe5׃HmNZo"ڝvh?tezj@XG.0\?u4l8fNQTD:i D28xI`0œEJϾt^7/Jy屁x#TlE9VV([MڧC߰y7`*%b'g26OP.~lPC]7msr93V65pf6#vb-NYa_'=ήf\<<Փ,^>0dq5|:n>tqMzs>y@q8w6e=/ K&ہU;oz`+CvG ׫$"g'tͩ;6j$5b5Mw /N!&C9%-l:iLP1tR)%otʂxL4u$6,|Y[2(gKDyVyB<(?Cӣ_b[G-Vh\,;4l)1bP%`X&l)1bP%XJ S{b K ׌=œ=3f*d:X f&xF k]rgmEt2+N81y "w@ hTN +q凯NnACzƗ\kH(T.%>K6̰Oq3/Zņ*T6FJ"j2REW܊z3ʀ:_+QC7>vy+5#g/3,Z߮@G\j 53]5.UDC5_ _sm-'Ffćjқ][#n&oҵtov6?Lëᢟã< ]+?ᤀh"4fFOQׁ)3RfPtzٮr6kJ-ާNϾf(JRl<zyɪs:+& 婭sl70W`iArW -& R#+8YY P_Vm$3 4g_ʆ,,gdU|+}38L &(9Ƕ-g3m\I{b, DMpu@IqcM2"Y=3}{%)F=τzQO|B'LO~O0mwpc.g\:V;>FyDbYsvNXFe(SծG_ tln&OEb/rm>uǦTyTfV6-^j #Kej -zySRuhXGU:4rO?ko{q<(C=ȍnKTnE-m !AS+Rk6%~|v{{60e ӊ_6r n[WIf:DHt=}yq^(R[*(I/YbkN(kjĕQ mW>rzԐAgQ~ :8` [LtRF$ $4gvj' xRL9`.x6rZ_vpc]4rY^[ngÃ?ȅ,Yb^ށu/L♊ /*,?Ľas_"ep8q p00w,⬚6X_:=>\cDB. 8%yЁclqRԩ. 8;ThLv鈅K+ 7qOnZ7El`HN4ٴ $spw`̃;6¡XcC)aDzAd+o ںI]2g(Q^?N,晾VfW~\i9 Q RCSYZEgmFD";?m~iedah+ˬV)wF5cnj$Yㅱ7X`ϸ1eх@ nvT)319h*5!^zٸsĵ_U@Cq6!-w(gIcj.LD)ޱc_zMZfs36>NRoDFmJ7nizR71H&^(Ws%; e*X:C> q $%1wp8 [(@^%lI;Q mf!u *mE.?GD#jx SuGmdc#O%@nb+B^"U>>ڨ*4v@$!LoMȉ@/cx %寀8dF͂FcfAD<*!SHzýz*fu aQbgA.&A/\7xZjBJhy@yn?KTR+yO%~{67`!BVsЫT{uc@jNM ŽSp4~"-'ʃ{J#cҝ/hZv(@+3IW5f3 C]?Q*XBn_R-Vv]kW>KUQA@BMyL"m%pfKO؞"P9S:nXp[OuֵͬHEѨȬ xJO{ }ZeMfvx]m­xҝ΃ GR1#XQyRRPa L=;j]B%@BF_,'c֧\Rl]KGvSf:9Æ Nau$uMiM</burU$*:;?=E27 A[T4sO{z2S2Ǣ5 *Nv CʹM}naG Ll1)i;k̯}0AFd íWe?\^SMDJ1IvBi$ d' ,(JRZ1#ʜ8U}&&y𗅿`?S}Q#n1 R]OG$ްɨ>EG%s_04jRhqâ݋(ۅ-L"*s`{\^SMLHgTb'BC 5Z7gnŌdưmTΥUN>=" xq+Ar@#8v#HXNZ ɾ Vay 3QTx6$Շ9s5*!FYXS3jXEy((幯O[yԉAPKu(3ñi 0ߔ.l_~dsXlUȁz Rk! %o~U-OXB%#. yw'Q ]oBcFPFv/m篑e9dihM+1: Bb[͏>$]X>VgS~?r95aa6)*~ z Ox5{AȎr&#AɯVsi;M7u6'Ar95vN!&C9%-l:iLP1tR)%otʂxL4u$6,|Y[2(gKDyVyB<(?Cӣ_b[G-Vh\,;4l)1bP%`X&l)1bP%XJ S{b K ׌=œ=3f*d:X f&xF k]rgmEt2+N81y &H- T:trUï;"]郠Szs6yq<ޱU,MϬ\N/)`{@=?WH%rCȎPod~@#`5P$p`;!FCdHo!5ت_hdzA,օ(*Ućw^%/Mlqs^pղ֒\u?genSS$(bLN]4g)WbesWE fH;*JEh'֪o>KQ/{02vUVxO'V;reT "ZpԽQt_5WTD]A|qaGn23E$4 a`ʁ[| rNl$o1 wWk[[7xTubB;$PCPpw~*?=DHpY䥢.Ze\1x`aYk> bd(tӮ+Va#{ڟ6gN2Y򙝸A3f0+EfߢaN:*VYRo.je$p k@ACDoK 8İv-B}|P8{V2{q@q tS^:,mh;G&Wg0XWma ;} OFk^%ڇ#٥A;t̶$*s~E.f؈H2r!1r:^bowW/bG5L͞iJcmhyU9%P  5Y8;RR3/GW-~ ,{GF}9`H`cYew &6٭T/[ۘQw6!!` a_(=6PK UĎ3e"R%O.{8z*l $Z}-%#g_· ٯl^\i.fN"5S "Jea@%%i)mb ɟbƲɕ3T ޘ+u2Ơu3~1|pdaMt.E-_x| pb!X*IRl>g ҬT}="_3T`i2Rm3{$xXS'PhR܃~zdVHIt面b;ѩX'Wv!Ԁ;fY9M3}T ㅨzSE#@$ OXwX&n?F; -w8[LC u8"-81ޱ)Fp_5Q>ʺD G!rc A/se(w͓/3AV?W, 1dべdٚp@YNǢmO/ak\H%c5}}cezž?jD?|*W?85;|1mE0, &\_u?W[w<աIi)ɛ{ϙ:r Q(R 24Ϣo5c:.oҘjf_߆,칧+Yi59yQ@S 4 ү3ʖ}ܖ!@`e ;F$6XBiݝe9z" ? x4`VcAY,MfYJmWr8z+*SElv 'E$0߹goB`Ik ハj:MUssN̪i}jŵV`z!s$_z4Ό>M~oݍ_?߅1;/,A5VMA,{isIgYI9^2J2aLzSzlɨIoċ?H=DyԾӞJߝ}~v4vgȇ>Pܲ:sҼŽ(=rk$h5CI`HoQ&׬gýVhk˝*bqe^7<?ElrbJh/Yw\ "EX_9J"$*~oU#U9 f%;E( B&Vx4{ -GOsQ C}R .|#Y)g~]屙:C# ֊F8bI{d> AYEBC`X XrK]Qŝ{GFM R -|^è*z[Rݡ@0YAe~/qERj_gC"]I:$#^툻r罒l $)֤=8&_Q/wP2 hV;hA[=}ƴ50ġdKrd ,8Ϯf }? e*L1]iJTP*۹0j3p^?,Iz.*Vԗ͢ߝ~vdvQ=q%J4Bĵp9Cྜ D&eq_~WoZwt&eq'Rs%v Ժ3mZ M8g^vsDϝ S% DKc%/QG.|SLrc9:rڬsKVX<5KY[5ɰHǠ͖1nzyǕ8&k4 @;'7gac_hМaG~< 4'CRe]|APwKyjn,fe3׼MZq2Q媹7VF1{(*-`E \0k|Uw* wŝ\tR_ !\ 1ϊ> 2$ĵLbU-ȣWn6ٿXa>+gmgN,:&ik"\Heްk90&.AX^n-ci蕜YH 7k"ϛ.N=G[![Z-Ph|Vz=y@_Hst+6r:)]Y6gN U`+|s~J+OD?)8EgH/ߝ~vtv:8ĩ.&yVʦ[!1Mo ޼A/S"a=DVؓUh7А BeNqcӀTK17aZj 7&ɹCb"kt'|6`0 P4Db@3oS"KƉV$V6o8&eL+덓P[Qvot\ nJx,?ȅYS.̐:#$ax bSf5Qt*MtѭH,TK6=ּaa,A( <"XLtlZlيܥh0I+ `wC֦EZ[IL^)5cK&c i GD\tTmڛ ׁ}hgb?ufPtñ\'ͮ9:[tzODG}щf yg}ѧBeth"_Z-9GJ&jH;;Im,ss.橵Xxg8=}CGUЁ4Llo*:_nO2&-a\ 2f]=g~ +b^o՗-R6䀲OC'M6ڳܲ휳8"wv>Zڌ^ͷ*"ъ~K'.>mxPj/j15Gnژ?6 )DBNff+l&$ol = ޱn~  ˓#_e(y"t^ݏ$?EkwK*9OpJ$O|+#6!j)$|= (|y_/b[EqDD#[4ġkPaߟGWtdi*>}GdI x@TC 0:]%t23CKܻZcf$ud5-) e յbFh*^ZwZ3ȈPM._ }ETga}W5:rST*9e>n5|#X>Evv 7LBR0C{~ǐcuG„BBtEbKiqCgiFU9q 6p@HI/W(/&FK }A?OQAqܼ[d na>)+i8lf fOYӊQegHnz51E05g3ʾ:YHw(D+[V ÑŞَQeĽrZ+uB (Q κ͆WʗFowRߦ 5ꁠvx>K6dEc83H/d/h'#y.qz2wZ9ǝgd~ܽҬ蕨ނP?j.D55zaaI|O6¨Më D(g[\J |. vKhL'~YBkIE) jo-Ffyj{8[mqcՆM~ P&6-)c: _3%CgTF'i"gJ HDȷ\b R8SN EܹJ`cfpd Ѩ&}SV5iS.fO<ɠtA9SdtbYF $'V#pf+30>:L< FAA/jT`"L "ODRлTѐ9IiBsL0g2 @LpZ꛴|P'\`* TS5qzF .2[7,:7evxHro1Уk1m&"T}&b rSKįG4ǀF"I :E|Qj` ~: )z\ݯR4{n5߁Wic@UZ3gdM:0[S5WȤ?׳M$ywk/)ڔ#[:?ռ 8l]9&Jss##Ow_VŅsN" 1T؍a`CjYGc9)u y@cݲwb)?댧~_J_C2vYgXl獢j=o2XZ!CUp2Sj~~Hg[A?b}Hr!8CH!v_ P:2^έ \>QU8Մ׈)jmV}+N F\@;bJn?~Drڅ}*;, )o,qDeF%1P3VϮ?̃^Rɢ F罰ŵt 3g_vsѯ {<7jy xH;k_kLl|g]+UZ: C7=ýoD!qɍױ5 {1F6̞WDZ~zp<՜_y&-JŪ *5F$<85Ljݵ9b͢cGoXDҌ&IFh|o6t!e}0 c˼:[YFJHD3|0qv)%!xi2glɠԂ>5B^-&0ڿhbܺU}5~' -Gֵ]7TAO͑딏h4aX +PH1v &MoM]RbE.tR|GL-Ek!JBa\q\+L'4 P 3%<%4Xx+EyM ,@, <Ύu Agp2KslWO5߁X U%=p_V҉N|lDIMȤ!kw7VP,MG탛*f%(#swɵ./Xn=Ԓ_N.gVla j&9Jו}۾s&*;|dq|> *ibB䇢odUtP<(!E4x8UwR frp)̵6kNk ܅=Yۇ P9f5BfZB nqL$*\31~e$wJ@ܜ\ DhD`Ыp Kݜq?UgQ2r#`SMW?ij${Xцt&`hV)x z!_Cug1N9DW{}y DTKpKXoٵ8F$Ϯ}.sa58}U77O=sN.*WBa a[%_-ǰig*yk'ZT-73 X6)G434s#PP].m:FGNTY~T~ Sˈ'|߆<u*pŀWZ] X`XZ/J+G3[t#jC$+k -T1,Q| V ^\[_{׋/8G\à۠`#= o({!{h~Պ0 Ǯ-vZ}eD6AzETQ[3Q[R|]%C|e4'0 tͦ;;a QI-ti (F!ثM&}~_3{Еqw(}Ȥ!kw7VP,MG탛*tzc=ϝ`h Z 7)Dt;Z=r4 ^.+˼Ce-٢ VQ="$_#Bqyf ]Wj{,DLJͱ^qbQ<9GoƓM~5Ugά䌈ڧ\8T" }{{{K^O:q}<$WPoKRXk犆cHQҟr-U?O:ǫ&\ p#6+LBI=~°sB-96[PQûӢ ԡ{ TRHCI@Hng_~ ϧ $NYPAΔ {SS[j 쮹%4c4Cw,x"7zL_KINP. JެaI'EESUXU# OFcn];? 1m5LP;m 1/oNb:~1?:xАQV`5 *5- I*ܧxjc\;kYMT,92뢾@UE[" Ͳδu:q!t[sT89Hܡ0hN؝t/ _wرW/ lEuQi}"=+EF7fϿ- ;_1GTs]6]~nThʮ{MLI/ݐ>"h@VJ_կ7u,nV?Hn`,;E3l6]YnTUw;ݿ ۇXd ]NUNrضld?w|=وɢ/; B,jpECW_ɤrCzC1#fUmCur!&3" h$xsB+i jq]wed 1hz//pxŢO,+a~UcJCI/FQ_xS9gL':.'S^pu$EYmSC6UhlN~uvdqŗ&QN4Пp=a#W튴,y|^V¡փ3gojL<0][D=Ԙ6$ۇ+$]X8CwJOȷ H,SbO\q]3ZzQ4TB* ȣZd 69ϢP~IZeBS lOU siڣڟ~\ H=P14fW ϤWTC&<#R=dܨu ׸ IzO8hI_^Թ섌K5DM oNMdBsDyt畜O9Q˕)rp[5.r&'RC':0-"x֭V]8b[=r:RKcCD,fzL]h]&=\ڸ0ms$Nua ;ȄO}eQo[ j8~NseoZ5 BG856t蹛L٤ SRR0u4ZYx2A3[ە#|CZv**}M^yfGǀJMAphU$ia{xraNA=56+hi'9;3&? S+5d&z_~?x-[d9Lsϻ*ֈɮ^{.d5jONXIL^0SKr;"sp:m:~p*A3Tڲ4m=[(R ֭vs$ hK bu#[ţ^"|O;U t+J d׻W;s+ q"8^ȸV Xd>K]!"FM聴/[\(P$-<ޣK a?<// .drtDGUj*Y&K*"dVp 9_^}f&랝[ff p7r nK8P_U $@h$Da2cOB9K<3q{]vMZgqTn';M؇pFHd`njR Zc}GEL]E,=%ʷT FM 0 r +,nӅ#eɳÇ3?' Z#TV;ZJEX͑ eo%Ì[ה$ @s0B/M^NYU|˲s/.A΃!{4(!% Gc'=}4Kqmn 9DZuG.yD_=t.Ș4"$FOOF 4~w2rzPl?$ $)q+KʐQ]n"hGg|\9\9w !9}8z~='4wk%m QHk,,t8s4{IUc>&=S/aǺJRWNy01JE5V,A'L(rjD0l`w 9(v%ڔuut6p\/w6Ew4ąbhl\N<%p--iF$Srd G&uX8F=#DW-᥼,1Du~3\L&\({h+6Bs1G:^uE/ f馲=!go >j'rސzzғx'!qTxNÚehDfٷ2e,RPۭ!_fdY%9Df),WMY㜏?+KX@&Q)ӄ)h!#} n?Z7fNx=sM2d%8 yI#+C-iYa)'fʵP{gB6s۠%Rzl!\1h}ۗ:cô7>5XñdWtH1<+y |BBf7+cpN!vy#mhBn:z/l՞ ,M;PO?PABqCq̈́8Vs.){6k-򘱣ff ^[j3X@AnY5yc}F^J^Elfݢq XEb0K ?!CN)՝19xs+ hNJUao3ź(["h,^pG?^X * w1vYjBөRZF+/Bρ|,۾+Ru8o+#Dn)8c0!]dǼ;PϤM^ Bo!+ћ{n!ѝ>5Vju73*BqȽs=!,6[t|8 3EϬ G>7H -? 3~p$kgi6:柾'âOkઓ9|.xA,d sehGœzr߯%q'F(}9sψQ;4x繺 Dޢ14% ,+ytC>F\;՜(>^R ,q=PSʹj/fHsL&?xR壩f\`{PJqp_O;nVZPe8\ "`N}H;ђAOq 2@[ +K|5j9]F솀jU1EKh@Y~]cjY UVӭ2]T_gF s<ҕ獑3@,]NU.[*!-t%c Ms /m$:eun]آ5OX׵ht!"_[kfiY&0b#\=ؼ!_SЗ!@>7)* 4~Cib4,LyQV NbSS\5W{!~ SmWAuNu8R!12*yn F~DAC$äD}t9J. - H2a$& __^ =jg^c ᰐ2(dDmw#>Bg~bJ˼AVj]<c8~ߍʼn)1{y4]49V2U 0i Ć؜{>ͣcI IB[cMs49Z&1=lv- rOc(7 F?:Z0SRb6$,#eXк='I y:I4Yo֭ Q%|'$] l3}^Z6zDzgJ婖\ ~ tPg2:LV'Wߟ-߷ fap6mS=1.h֦*ʭيK> lF B`..zc9P,*z zyS:?ӯmZuRu$ٕq4 5d700lNu|aS&SPd*D!`I10S/`XT9b置Y քJ#u:§\=3ty|[ 26Odv# 8d4 r-Z0 ~B.9?P_#ቛZx!x_Kib0LI:n5}((Ma]udQ4;g~H!̼xc:Su3Q 8oL(l:w7S i'(r!xؾ&Z&õ[})uD9!gg##^&5Q%܆ ::=jFPgߪ^5;OV/!c649_)i=\ubZrªo,>U5c&m7]K)s'q ! =4셸sdEUH.4rd؏f ' gƒo7ۃNpqCG&]k'z5GiŦh4=hz +5^'3[*uH|:[^F`zkrE4(sѮ`M x0Q_%pl>R6g\Hs #DB_ʭ xb!F < 84&YuQY(%:?7%ȗtM1SɺA8L# LBrux,ř">CgGr@efFN e!8tP4ܔpxǑۈG bfgSAO~0 -R0N{HW)y^-b B \H&E0^>Oӝ;] miSaq`SlMj-KU"׃h([ 潋o62D[xe_vvDd BZ S/b&&-QMϦ;ڜXaD1Qe/OfXCx7ǵU1dgTH4O%.KƜr^^!LoԼsMe?C'3!JdNQ]""nj,zGo764 aOg|ttzE(ǝp#^w3RDͣ8_sB{3wBMI6CQ. < oyܦt'ry}ZGYg&:4,2=Aߘ94i9~_k4 ;]t4PE굥ͭ#cvpWޟw4զ?`-jK2Q&S C |ecTD#y[+t!;{ o^RvDviந?2Fø'cENZ&䯶ۭ!(ўǘddO[ằـ5*:hOxqSÕA2Y !ƞ£#UgiG#1 $ɘ]* !dNdwͶ{XH WEʎoz_9`Mk߱hB8limG],rXKIt'/r)Ÿ AQ}=FN%y@lI6"&CvHx/U#HPΆ.=Es-=N5 +geWh.bnj:d ZMvz$v .CfS`Ė85, ҩ\(oBì[ 0A+uP6t>szrMD?YuD1vALWPIesDzHBt %8Di :7M7Q)5eZ:t.~Î&* y7?NH+RK։!>S5ZF5jF%hj7ΫF1;X[̽8^Qs%Y7FlUakeMfs:9K(cW?5*+*#"xZ5|jRKrD:˜}1k$lĞ rސzzғt@R= ؊x8JEڳ| ]jW<[ R$zrgT(a]s ٱP=JvL+ A H"=9*@%O8z9dPBY]==K%.ȲG:qN4Js7B }<;-{`Мa)Ѵtz#',@Yh&wdR` Ul 8A,OTgZ3ǚ-2,?B %j@/iKG@:O/ + >o_A{Ms;fqqiB Is =ai(r8FP :)#וAd FY3 j!6MQ ߝާKx'Lg.:ow2 __2/_j?6%1q&5Or  vfWk *tQd?}4A2ŎTVv@m:[,@+nFVۓnA[ ~)9=4Xӱ\x1M.ۮ3ȗjϩR矧xrcpݡj@aY 76bllD_q* gMLn0.gsX`@&`n,ϻ-kJϨPSϞ܂"Wd!vxV 1*_2'n3,Oab Jؾ_zl|)1ׂ 4.}߄p0#k)ۉڜvQ@H9';ر쮠fWa|oBBj#opVQKe⮎UX)4(; J $̭]pLɑG)>ipͲWIxvG\;b6 .p~ZkK_V'_ZV~I2>QJvوn4 ǘriD"'n'Q SusLD5Jy{g4" _,­G30jLy 1H"VL#7JhMJuN߿ỷ`Rt7EfG8 ?"v,۷Q|"MM' Iws|倻4"!TVN{ TXy hþlM49L#_-h󾐔 /A{8B"#hr\j 6 lF"av REF{pAandk轪E/{Yd8mʧrjy𠡿 +T}?k FF5j=N߂ !KNHF)&8l!(s3@uZܑI30Ҋ~^h`SrPt/L B%$1όPbt;ɽ1 1s2w\kov=嗐(Fj ?v<³}?D)LAd[ 2eV% ӱ%QBƠtʝX̲nd?6JfN Ο څٻmY@~פ K|/}-*mm5]Uqt@ /a"M@YL'AlE6h;]::i9 Zf%/o˛+v$~ww_lWs F$.'p; xCX^$ Jpfa/cSWnf?U X~/u}pB:M,Rv_z$~5UZ,,GjysՓaMٸ Fa1[9͵*F÷12\`kOsJs(res@bl:4@wz9C)( ~bJ#-t3‡5ԮlĞF*zA:#JN{`~ujG3ǕH_!?F_w8URV4S]bɄ,騉Fd{ŸdH'}J@39.$4~Tw,Ush=r䱹<.UdTnuEkZx]ᮦ(?P.3@t? @hfAg[?/ ]M DpƠ_`fLVl[rf"a 7Ơ#2jIb$Oq J"QNPQ,s \.lz@S<ꬣB~ B{PG7cG{Zֻͣ_{3`T׳&-@Xmm 0X%J8Z:ѫ n*B¬黟oG0?PlA;t7 3-ЖteB5:h*w2ۯ >Cqd [~D i#iռ(.+[^=-k_qw}P3|Hnm:i%a* Rܮ]3t/] j̉6ziiH~h)n~OX9o75'e쟮 bH/Wgt/W!`i4+0g}/y! _=P?͵*TN]R±{06`ٚ$-tZ |"fI&JI6] \VM%\!Zzp)dW˚ƬO#9EWmν$k76W.㬱Xl E 纔kBLWOW'4z%]Ci 2T+ n8iR9 . ﳁǎ@wY'qGޔL94WN299`?A||a . .aL9혂rpk);u^x<|RO[,O x6`Lvr}p]KmfIiG6;wf-┥ŋ_rfZqu&Kϐ`ȝD|/Tً`QaL=M+AKr+o7?Ocn]BuEÔCNNDŽHANOeqVe6e"˴2]x`%|)֔XaHj%q(Qy#!<]@7Og^;aO^74Ig%L>+3\à g5۴qLwD("mp  p)w=]i[{/-h,2gข:,-%5 k]ChHuQK^`ћ Xj6h/.ͷwZAn=|2BLVHAUBe6e{J'X(l;rbȣ-+{0 -ߦoqfik![VҐpׁ:|qku,̀u׆IZ0 @G˔bb35BrFIF$ p_=HxZ4v󺒖9[UzZs cme}kDSPlAJ Mu{+5zZ֜ϡ?ߞO`P HK=^%uq)F_i]h"u4e`XӴ"}lcLL q"ngH|=< ƭ#Z̫S)*l%ichҒY@wq\9ف*I6Pԥg,ȳ,W(NM˜GPwQĿ<=mi6 ]TO99WS)bM0`^s=6B2CPɄ9ӥkfU}EV"g{AU3zpW=`8 É`;an/%*,[Hh_+|=r,8#M4D fQ:e ~_Z5,r_TgڡAL֙gz۹rxD ZWp6` V#ƷfAP!~o+ZzSQodZWK9U~$ͭ"+hJZ5Ip5]kn|.gTzh2#,Ri'jeϽ,k5!.As(ܫQSGB Pa"L%v1:^,|.ʗz$ Tx/xs7õ=+-uE$$B+u'@nkD X|0ԙ_ru2Cy#FæUE~ (vx" vmzt!/0{6UVf[ƍeQ-7m,3_jy ل֘<Y#-@١92'ݏ SÌ00+x'b+T +_+@G4)QEnUJQTk}p WNw iz>V|s!^x!Qoe%$$4ri*mZN+LmBi-J)6*)3bJ;z0OrWin#Xh?ʃ`$}Z7>2_2:U j :I5whyaX7٨YiJgX=8ݧ}셯5!mH@e}a!TsLUw &N29̱bK};!R?x6!6s,OMMaES)@2mH#5~єZHd?G~XN UxAH4O@IZ&O[?<ť 9DّG&D-صv՘/_GxŌ%lcSR]V C\7.)=K?tYs+j6@ώ^Lv6R<#:,E7Sqɘ'm Ü ;3Po0fF9Z_< cȎTݒ!( 8w*L͒v($ sbݐ, d+Dzkc,%4[Nt 9H@5P՞YD|k/&B?iS[ ,N8FruHKUPFl(RTbMt VXwV5,>LOQ&v6lԡOΡnom;. \)pO Xh8"8, 186Ih\2FNQii2 $.c;YYrVHJMwu)JA˺u, AF|ѭ!e D˻BC/3g[|:Ҏ֕f쌈hKJI[6@;#A`$DYܣ؈1eW]Kg;A=ܳ0cffplzn~vy{\>\>OBh)Oo9?6͖}C@Vql|*ydI*= sYBUʊp[~gQo&1p[y@dPԜ[DrA: ؝N̳wr?pXܹ&c57pÁa\ kXA靴\BnIG!7OWո$pr5+~5l'{Dᥜ$o#Rx$Jf{^9>;Dmr<b)#K &{jsJÑ |"gh G?}GUlxNv?JXy9=e#5_tY؝DfO4[9 C'9SOl S{6b~]v:Y,4\Iø-vNTdn,%ؚi&shP&Yi6M!'jN"aB 9e {4 ۭ@g+`ٗfh%A GjTХ4N9i<`']n\BnXu=]}FMBțUc01ح@eά k!w>% ީx\"5 ähV3&G5cH;ܴ(,\WE¡&ntb(BxjH91ԠMm%@];"= ZtGeSѴ3oT3}{T3^E9s Ah-$0X~+̃썖 o|Lͬs *>'/[&/uoE`@ϬVs(8[?Ӣ7LğH5}HXs}J QҀ$)iQ .TϰSoiY'}e)uz`sDN{Ig4܎&3$p)*K)+d84vmb]jxly#l, ,:7' 1K\|Nj_h;jQfyŴ`i]"rh93=2,IB!E *IC?nt9$B(*DLDz{ Fu !rtm7>(Vehb$h~9MTCHVP?S [8E E+wՈB3dm114I$Pt4PB.WakNq+e%L6jtw}NϻH3 %M.rJduIѿ=~ͩEH$+5~)NXI0-8`Ջ[*޽&V++GQByҐ|UNŝx?0jd x0{8+1] L؁#ƿs'0+&3(tپO K!?^²4?˝CNPؙ܄|.u?Y;>wTٚ1$~҃`iCįvI*j{HH:}z Dtu ^'2e̫ihUM6JfE%s1Ͱޓ.X'(/sD=B NCəD\8Ʌz`z<퓟!>^0iJɌ.y; T(U盟9_՝>@g(Hqs@&-}a/ߚR4`w AH9`J) Ni-nԖSyAc8:X6 *oˏ-١moS}znP3cdPK/ܸGMtrC&Qr$chku>fgD-߰ƏIjϸncYC*]_hAuc8۬͠/Pς49w9}>_\S3Z?[Q8_Eͥ.Q&VsB LW,3ϊnݜ81gy>5`TBs-9 iX-٧P(`.C X7l"ԍ>E?Sԅ]$N PS ;z+$b_#pD?7] zGO}뛯Zo4%$^QNt CO4ιcԗND*,U\M|&E+x4򚡕$B>52_333334,3|qWb#S9~jg:o1]S)^R<-G_^צm7+߂ '7R› AOlu *X|#;2bQ|g<@Ȭ9s9n@b#tSldz8HKL0GӾ `ތ,ѡLFD%q?P+ j#NG>-;W4@P9s9s;jǶ| /Solߐ^8\lqfUU؁xvaڱcպA&=ٗ^~%WuYd]uUZ\#؅\ڀdfSTfᯔ7 wI'ᩊ6%.~H#\ᢺ)l邜!Ki %ci?!75zH触yR?'v"0%3Q)\0}íABҢlQ.{6g -+I֟6W L<'68D%lXPk zYtJLBauRp98g~w T-)]An˸=%QqjS4qg՗s' ~K~EGO`|e"5)&"4Ŵƿlp'rpNYdYIvJLރM4rʐ.+0%/ri +XUn\SciVZL8ovdLBg3wYl-(w4\ɴp4gڱ'|UN# q$\v"?K\Bsr'bp$}HT ohR9dxDӿO9"!Xo5%ϸ,{idsUA'RgujRGG~ȼT_Hk~nŦlOZm>i}H`L-~v)y}xqSrIځڶq+HNJo k7T`lQ(?8\8QyEHj !ad $==S&]RgčN)WE0 ikDL+^ezz*&^U_⊣(w|fߥAPkO^d$_Pe hfeH([\"M$)TArpv.N>+](ܞ?L$Jy d:T, fRS[Ⲋ&(|p o3Ax5o?{uLݑd&^t(cC tnJ)vUxTAZWNm RB-ݙhfo~rbNG~;'F=\lŠq{N O]XÚB+7ϣO*d>|x꥖Wx^WΔ;3Y nb]wG<4TQ 2HG9=T_ Gg Te}xSWqCU$סoS%lsl*p qi&h7w#޲ޕGf5QN}9k1UcW4Bg0~c< [D{F,#y:b@ɵRpmq1jPPwz6l4rg?}${B,tp-@Zkz$('Zpjṕp.&2~Z>Z0ef[飁]{eS9igXh3P/V2UYMY.zog#;xte"Pa@}4|0 T"P@U";. 7UDx.Y8M9!{ͧQNz%Bj-p]$o }{C T1zcMY%_Ar(8 _]Xj:|tDwn@ȻkJ7}/Q1ue-d7)Y3A–SsJ5$ӢwT*ZO2j'sR4Yb(˶rK,a@r9y"ȅ$<)`X$et?Zs*NA0,dEbvT^C,pi?Әv[TT[_3hi| (0a \a{&z~>eT6ů9Pӄ;>l^'ѣoR(*Qot`TQ(C۾h=PQLPe.(Rb+1Hݛ<Qv9 kFyT:ĭ!Ş5PSfh!%6jWgPOʼjjGTe.Fwu,|.uOTlP/zDm!'\05@T鶪szxDU*~9Jl B@@ ygcU8&}x:)o:7Cꆟu!Pu6XP}+R?$C&A ;롔@:cڀ&D+[=9e_?~w~mz?rb?Mĭ?;bф~A[?2]zu5Y؞  :yDlG!JA7 =*=R pQ<$w&~MUڧR@_S#;G%e%)jZo#iP.™MzR<߼#;- Ng>݇˄\gϺkkhΠ%P3ѮdߢGc3}4c0d FfCFe XnόHH#z>38X8kSubgI ]"gU%j1Q?'Xs1J9A Ɂ1J._%M9.=_k/4M_͘*<_sOvU3jzv` PT6Vش<[Y H@/@vQ.1[ f[97Bҟ^YKIg:YKih-'q:}$q lfGKj,>5qC!XUlB=FGk?ZyG곺fZ+O:wW8Ŝs'YF@?Df1ڜϩ;R >o:\IԺ6Bp1WIجϻ q%WFM"؝JBzCJE=G#-V b_"q m]uS뮼yJ<f:,&n,0̧>{f+` ٔ˭ψ 7{&,9˵lvv(5BSSp}fcY. Z-֯/k ԉA ?)=u#/6͖}O 0bL$]4& b&]wȄ9 {w&&7V~L͑"Y?pG!:#;Qupc_k5[o`itQʭ|̻A;kn&h܉-W${g^k8NJqsrlТܤ/+e_ ב8P7 N_yP< uĨnCaV̾.H?Q}FdI+ߚd2\d~*D6~ 4 M`;X?"ŨBDN{ "d{(@> 3Pq)j$r _2`#5Т #+ʃC;֊aDb1y^Sܷv@0ynv3U5@AP&Yi6M!'jN"aB 9e {4 ۭ@g+`ٗfh%A GjTХ4N9i<`']n\BnXu=]}FMBțUc01ح@eά k!w>% ީx\"5 ähV3&G5 Z _JưFؾi_[ćErL8 R"o&YB~ǃaMtv.~qH=M{Ɗ!#"/pp@CQl-B[TÁ4\@%(1yHG/yx #cā|_s@ HLtS $ލPFA}]j0zoZ7@^k?,y,S!َYX̓̔uA{9'ٮ+A~uT{y{4s j?AkM(DzB̉B7?G EWR<ţBGkz~ '}z6:;LJozF>tqPݓVoلBq#=7 & Lfj2m{@#&!oX_< 3ނ':=9UK a8{&0?]}Zfvc#uU!r 164;'P 󎿹ibEޖY`]-[ciŬ5OwF`e0TaOb{1j| l0 SS(N9PPDD=5"% Y3%:MYc'ASlyqJ^jҔf外11 +I.EJТoc^s4`z.fia:ۭ(Ք0T7!ZБm.稩U?|A]<=vP|5qT658 W~)jȁP艥g7;Ѣ]hTAؐĎsQ"(/TH; 9$7h~Pz)q3j?ӘcRm/Q6yr "k :^镅ZpdlD&kr_esy6*٩?5ïs^|qHFiD#rx3$A8E*ݶU<9$B,1-=4 j8ǰ)Sanla5fh悓HLt4?\AN{"Dt4w|3{z7W}|#c(4lEqZm&ܒI.L:Bx%'o=@Sw%С&Cm ^$"{jfV= W@A(DuRPpN!b_{X_D%/0-Jr)uOkI╶%z#Cs,Q8߶tƨu$θ,[(^L9.̹,9!֧jU@27| wrR:g0ބlqSe3 >M< t&8@(ԍVg!-Y1C9W& ecx;O7kpG,R\|Km:vZXCiU@m# k4%4/r[Z>JɌ.y; T(U盟9_՝>@g(Hqs@&-}a/ߚR4`w AH9`J) Ni-nԖSyAc8:X6 *oˏ-١moS}znP3cdPK/ܸGMtrC&Qr$chku>fgD-߰ƏIjϸncYC*]_hAuc8۬͠/Pς4R~ Ad*D Vϑ 0򀏽؆?LT8ߝto(i;pgeڹXo״|Y 7u޲u-TJ߹Ҙأ(t{_] gl&$F ]*v`f/A5S&M"Q#R h1ʵb/m_VKA*5ޣ򍛧|%R.f ҾzM-MU7fMZhewDZ OܦY(vPSjo&-KLS7n* 6ndY'k0+c#)>JPT,I\8 _h. -0{V8?Dplq3: 1@-ZUTMµM[j^*/ꠌԴVR%:ܨ%;NAl@NšyPDl 7!=wvЯ`V~HF0͟@VYL6.U6vbɽ&"fGi $!/=vXlI͑u![[-FQ;GD`@-pV |dfffffhYݝ tf i:I$sU)6z< G@)4JKM WIZ;l[oU?_1lքuhaKU4Zy~W?N n5i_"!i+)9s9uG( D(zD Rk52fY̅uzv@ilJEuSrt+"RNRJu߯c`7ГXIkf:N;Xk6wKZ?E3 X{EUМ',:Iv +JAywwl tҳrs+oɽ#wՈH&i6I|ȍE&#ZQi+S!/akzveǤRZ9M] 6n*ȟ"m]v5ǻKp~СX;2fvbq&Y]R3^6g*@VXwGќ +/bvovc^4h`к_H#nx'lK3 "O⃯˰ }:?iLZ :e}@k)>]Sm00mS& nDw+D+kU(0N?BYgֿ-uˆȿ@!j,덧U!a3-~vX;Ѻ-R?=tW$ltZT[kE'r#ܑ"[^֞: QWLu+`P5]iIoui:oX)::~ub =~w'77nUN4?A:xKg04{m~}IyͮERAwM1؀sJTߘ^3$Fuq@^^_ީU9>Aq*MCXǸ^Xߗ E8fȄA J>! !yK?F]lE< [Q{.aQߣsD S†̯wF4A(jv}Ub(C]i"ajn8W,}pkB﹜^n pR|4v;ard-40E*+ÑTBScSf:7l=vL<=nRpx(ttƓ{l5uuJi+o|.?pI%jҸw.6BzuaBB, R줯XQ>Ap9tu,5K@<% ~vNCt@*TYE_i"X+sOi%Vpy (妉z`h>y&}[(jPV9_[}'% va(e|Nl#X$}ƯTSgTRңMr;Rh84J2=@cQ<"8'ƌ^AOi 3Eu,>,>(K21FqמᆕHv^Tڭt5=F'-]X}p !p.&2~Z>Z0ef[飁]{eS9igXh3P/V2UYMY.zog#;xte"Pa@}4|0 T"P@U";. 7UDx.Y8M9!{ͧQNz%Bj-p]$o }{C T1zcMY%_Ar(8 _]Xj:|tDwn@ȻkJ7}/Q1ue-d7)Y3A–SsJ5$ӢwT*ZO2j'sR4Yb(˶rK,a@r9y"ȅ$<)`X$et?Zs*NA( 8fr?C2&54F!*b9LNLa];?W_Ϲ3niK< _p%}9ؑ|EyB鋑)#N[DnE E "נ"Y[RWմ)9YJ1,:]@ۆ)7U3ĺxeasMNbanUNGCz>?8&IOozlP1U1ʬCU{H{ 9ܓTmYv}ʥ/N:4$%s}"`bnH6tFuS|/3da5G;s-YGƺn(rd+D .']֠b zL8Jq`u?mw 7]aրS{` IԩZThA5Qťj"d/]vJMx3:%%ݛ khY㰫)*-a$A:Bq7u)6ؔ!<DZ6~R[/3^ɠftEpgږ .ME&YND+D:ѣ7Pƺ9o֗wA0:i|8@xߗ FK T$ h|\,pj( g4;?3DM'c6%|l Rl{=(wI2h)"tqhTbɠlJnN45&J4}߀4{98F6rp`Dh!P&Yi6M!'jN"aB 9e {4 ۭ@g+`ٗfh%A GjTХ4N9i<`']n\BnXu=]}FMBțUc01ح@eά k!w>% ީx\"5 ähV3&G5՚9e^ lq&~2+YFܝ7Ü#$]"d9mW*">/-Y&L=7v`^:!83N4&L(KjF?_AkM(DzB̉B7?G EWR<ţBGkz~ '}z6:;LJozF>tqPݓVoلBq#=7 & Lfj2m{@#&!oX_NLB=a'o0ڹgEM]`vo9+YXn™Lտ"ІkaН% -~?}b*)( VpR|K_1HT]DVHE ;[Р=%i$<*BQzJǷ]"@.~ /PD0g$ȨjIP͔mLr>Dv|`4VW:|A1kE,x{kblk/jpEW h6?d*c.lԨyne ;_JQ!0s0NjJ^7גI$I$14@YrYHf>;250ч*T=lh6ᓙ~ͷ &ĊN j8gq' 1K\|Nj_F# k*!UfZ1JMXɓy"znH6mj0O#FvImLe7s1!`'POm,͛m LTM"1Hr9r9H~^`Va-IVyo Yd.WB OU@ kbɻrI$&}Tؖ.~hCŦKCmLn65HEyjfV= W@A(DuRPpN!b_{X_D%/0-Jr)uOt탖Mqa !9ѱ 4h&Hc;@W.(|EmQ?>q8HJH8Y5TU~gJ$7ClYq1wTt"Nj}"Mt~ V bӧp'נ=Sbq cRnWyUTQ !qz~颡Ema ߜQ?`*~3?&(\r͖L>Ї`)$}HaCR7VԈAf soHђt1Gz@GQ`/K_*50! 5vSm6 /cj@um'5>-xf $bOyˡĪ;b(nGM|JɌ.y; T(U盟9_՝>@g(Hqs@&-}a/ߚR4`w AH9`J) Ni-nԖSyAc8:X6 *oˏ-١moS}znP3cdPK/ܸGMtrC&Qr$chku>fgD-߰ƏIjϸncYC*]_hAuc8۬͠/Pς4Rw;.Unp}c#W7FhU0zd{tuExkST$Of|7+c`3

9FTp0LcH`r!FTtV:iH]E)\(1ҜCiH,.̚DT;bra=% Kwq\(e$0 }e=xt+L>hr6f`\abϕȝ(HAN;nV!^Y9BQ;.ATXh=Z)'UUUUUR^w-[h))BiW86\!Owr+^ vA6"ڒPbUGwnz$_}C["qN<*Jf.Iꅠ1#d7_L 9dc ;T-r3#?<$krSMw s(Xfm |)#hT./ަTĔǒ ~%v=YbL'PPa?3_(sVN̽م򝘣\IWhTn3̀QٓI ̄ef H q@8X5S5UH~\ɢMQH jiR|$aIļ8ȗoDoi^ʒG,b?e_n6%^6̺#MG?F"'w`tsz)D]#w! 5>T581cl$-C bϻA~e_R?-~vX;Ѻ-R?=tW$ltZT[ie[L ieaK6yͼ!P~ؾaGM:nа?%#ϾNMpTf-c")ib,ҫƔs蔼YG3e0z+fBKmkpZ@a*?fR"7|Ei&vdIpXT]ҳ&39ɸ'I5ViaPNQ~b6D*oUD-zΎ[޸@;#.b07Mq}Լ v jo&3%CJB.I>6KIy"!W֮:f(!0LuN36z@Ъ8<Ȃ%X:e*Zv0ˣ!*MW6#\侯㧑{R˜k PYaj3(H؆'"+0Z7D8 &hzil짷$bi.u 1 Rw8"83T *kf!]?M4gbh{,ʕY3{BKΠ b7}kڅ\LҜ0+ZbR!}ƄtSQ;"11aPhxqاeƞ-k9v_ּ sk~r"9:iQo ΀4qF:m܆A69;ƝA7Zs,5laxP7!ۿZ" *~p'Nmp.&2~Z>Z0ef[飁]{eS9igXh3P/V2UYMY.zog#;xte"Pa@}4|0 T"P@U";. 7UDx.Y8M9!{ͧQNz%Bj-p]$o }{C T1zcMY%_Ar(8 _]Xj:|tDwn@ȻkJ7}/Q1ue-d7)Y3A–SsJ5$ӢwT*ZO2j'sR4Yb(˶rK,a@r9y"ȅ$<)`X$et?Zs.`|MhQ&Lvh.@% TRx琋^ܾkX^+@,`V jli"Ѽڶ44$奀0*G,0/#ءڪthJe>FS f2!5|7aKIފq"m?Mʟ|;ժ6-DX]w;kh|.npkX|J^ NoCQ+b;'ŬL?8.ȝ2 nd .SaQ||SfR>.unl.83fF 36lmK4= &tXyATl]%nH!+Z:aѢ#mhv #PisKw)3^iS,\Ŕj{`{M T)3镱V mz1Al6 kgАN1HZcg$5^B)WV]/n {|ƒ 6Hc0.!̐w lZtWs(\J2l'@\\`liH58WLυb6I@b6ixBi[z^lN55Br 8f݊V8{;Vw3% ϬO '=6qCc eNI@Ď'bypt cVHp Uӌ+%e^^9kIQ&CT z^äʬZG _PCࣁH/͉>۵ʲڦZ5.rt?b>g8٢51H+;5S_Gſ}|׫Τ YI r4;H 9]{JN]>W(^8"cTp͞Le z&zed"j T'0#/v@1L;ZKˤPӟ7+ GN) ־viP |sYAq<̾Ŧ'Kr\GA9Gx#;ӬQ#TD>a/|8V d!D"IQr4 l $ʿ&>cٵs݁WwB|:PU0&V'|rp}i[AP}yE##!zRrrRoVZ-oL-nPiAFػ*\ Iw` 3Y»3 N(<-v˳'ˑBُ_cŸPT,RcQZ; g6Hͻvjz/m6/QR1KE i3 MYo _&o"**p#56'k\&@>Bǟv ٳ '6VX3_yAb9o= 5KFw̻=p$Ul̀fLFmDI z?F; "{꿄aw)q6MD=; ~dw)K%soײe/@j[ו vkuZ:uiHYE}RH`={B]7zvp&b"'t+Lc/C"ǕbI\SJ2>_35R*,oN_3debbW^'}PDOet)oK ?t%u@ .pЄz!bck+ :RDԊ"IIPl7389VL*i鰹='j#vT8gaڏhf()cnxH=\=2ivxZ9-ǒQ;M{3Ҳ[ٷAcңmW $+Gq4_2-g/{߆_ǿCAg?h4[ 'mܟ?G6,5 BA}@Sºx3LA_:G%'x6L5MLq ۿiiCR< [hw'Ti V51Qz (7 _|dC7gŃ|dC7fPȋC \>Ƅݹ4Q-0e##-n5jC^)i (b\Z7ȸ=4$kR ba.߮ ր"^>*1 8tG@)Wc? ۻ9΅P~EӹW?27Ŧ30|j$oFX1&Xf⌱zbMi;*/K>RUgIL ʴ9n\c7k_2mV|yXQ][rpm O,(%g: n82>wX²?F56'ôAq//,.0u_3[qMz۴MPM7efj'볰Gsq(E+q; w7|Xvsz-DvvHn4%?*+Xs$?~CO,;^s욭 Ҟ̳sGy.XNwׁPjD]5$Y).Z'ߍb"+nG#KЏdnUOڏ`ꅚbk,\uP%ݏyOKPRuȘ}WtfBXֺ̄wF wFk%o}`?Jst¸+S9-sʑJ6u%lN|I+O=KREJ};_kT)(hS -d?X0V\$ )x"M%ڄE1 (mUTIh vBf-$LHg '3x!r" E2 H$!T5=]$z71c oeOV }Qzl!pjʃ&v8{A/UaEHaf!Uu7uT^x%ںrsɝNp1#OV }Qzl!pjʃ&v8{?+4 5&򢂠a2?}ei!& WFp{D O@926QA;.Emm flҋW9si=%Ld$tw13sW- oIFRj:I|?x쁃22V$Og>FHd ;}xdd<v@+{0SHɮq+eXX[Vy-S̸#,v9%0Ju٨}/54CT/99Yf6n{ŒӁD̴7|`REDe!nФs֒K{q̫WNsL(I.Y a(!,pƸW.z ;R 9 uS uŃJܦWΙs^tj9\}Q,@!in:Zrw@ԧ/u)6Tv%<[q\It~[_Mk:WZV$6Ԃ;O31os]M@~g*pS\IGvV7E@>na C}Z3ZM[<墺bʱӬ/+iGH-{;\pٜh^'xvCxj B{L>\Kꮼ<|HHO[ٰAB+ʞ.F- .F-"ELK`G^kj?MPq[whI\EOY *$dH AƆ vKr(tѰYzKTx*+jX%|okw>4$IS}+8okb!RyԯJߺ*"0Ds=ay-t ZsV 2Iȋ~I|xπHj.ẗH9餗>oaϱ#ŽTeΓ):4G2 7kc6Z%{+EMvK }ѻi ~9D 7=#u)Q#MUEiřAVmLE E>z~d̷R fp50+G6 R|aWz?~g#,/$ U`h%GbI_tR'Y_LV5LmP.rOjPqtZK )S(L"AΝjPqtZK )S(֕"xzf΁ҜwO(dv/:z\@Т;0Y(9 la滠v퐉Mţ\T:%]|O;E,@m~P!O=gkțx{=]GYe6;u vjK*f1l]CQ6Ҳv2ZY_\.\\S)i>W#=Dod~ʼn')U_8 $%*[Z)e籝UAe31)~8D.!_#VKh,T"J1G2.=Ei@ MrG;LTpOGUMi0@#ꍶ؅=Oc"{I#5sBTu6b]=0SZA? $%GPaHm!zEny."wfH}Wʟx yeJɮ G^ Buc%XGpGlyuF*8Ӓdקf/l hm8 3BO<֊K4?|g9!8a$Q~[VZr΅yeҠv9fqf_1GlR4/k q1xE3jM8CZ@Z`e4 <>Ml?)gcKYh%̈e4 <>Ml?)gcKYg}tg.Ji}VZRv>8`< >7fFqrRK Ju>".nsgLyr3y0tU0y+ is8A0B.Sdc HJI501C/{lR:wo i+fUú9(X\i+fUú9Tx)AKEW+Uú91S:3{4O뱳#u} Gpb ֆ[ w9fG4_02d~$CHuoGuG. p:$Sj {刘-*8'؁q~fI*)uCV*E$}Phk: $ ߤL?ቜ%:SmpU}⑗J!!f)#%U x泅_#* ٧!>t 9*mi A/ܶkJ!e_Y%e\U$;lJ9d5*)i4ĨVECگrMy81iHHFrmgY J5o4)M1*9ՑP^NGhV^^h+OA *`#?nv @ۀQe㢷);`ϥWg@rtpU%k|4S?D @AD)0?ĉ禂'f<˦|xi!ATVΛɴc==E\Rn\}i^Q[n&Qla晇_T%ݘoPMd@BfT]঳j?;7͍T3>tUJ-%zo%T 05W_) ll⡕'ʩT%ݘoPMd@BfT]঳j?;7͍T1k\\1BiRL^^.NRԶ\5FH3ۥk'#!w47B3Cـc=+i@ 1~+XrbKۖren -G!LL4ҪrI`IQ_%r$)KDch{E8s(}ڵM|^﷌y_]v 1b/kP(W%or??8ňծmC\w}c*/?Ѐ( 7 }["$M RQ$jGW6㗹i@ܶj[8Bv[@;GI(%VCro\ FEmR_dӔUN$։7IT#%Hb+, J/-'vC: V WOy.{oxKyY{UfXMGGeb='gx:74̀ v(E)IЖ栊/QuE=jfS G-rPO?#.|'Sgs@?D0DyImV&j ?L[j@7F5#QRb?zh]Y èMyȇa5~[u% yG x%~&ql9W1T0-HٖoY:Z]Q̿,&:QuNGZEe Y_D0ztN 1 Ul0;v_=׊`1t.)"Pc$_0\+ &<^|P0mD1\G^WEaP/谽ݴqf@Mfժ Ju (x5dW~7| ~0 P35. k6PJP-cPG"iHPM [7@HA5V%((SMՑ]4¤(&}B #r 2BKZ[T?XMEhg.sZXd2hœT0$`fML_@aA^_~ HqT-9Y8cG8cM2oCّ 8X;&e3R>%Y7M>ߝ4Q˸قBg<| >K e AųU)ku SmlX@ֳ;\͊M­P ,_kx?!o^N-ڨ8|ez IO^#)xſ,Qa`@᷹ Bl RH 3,&jͿhMцDHrhQDB(ML@{N[ ʪzct^7;=ʃ2Sk&TWb pMe~j^΄v!BWf_k&32'zjWޫM\ gz3uIv0˔dxϺsؘQ2<кsؘQ2<`MsؘQ2;? Zf \&@N gk~Qxak rs6T]3\#fmt,Z #0 T#Na5JSHvd3_6xE"bl8=7Q/ZhLu[5)lt!p_ITM+,]"}goNT=]EHlfpp<Ct@Z@Pvg`BX#!Q)hUF3W}bZsO "#7T`i+]^Gb/RJaGH?ïi5\#>PfDgjx㘾] BmKbfl{kFL/?ؼΥE@ڿ ^L{ύ-BxVRvhJdzϷSv9$z$\3G{8gs/3'9}ݶ5y ? /m5.o4d OOi1O/ṟN᭟h=}`lAS¼ ?B}``w&o/e2x'('4AU"6%D{!,LחLİQ+ JOՏNW.zXюcW,Dsmk߳|_*ۏwY-gb%7=W2v3[}bHD٦Cd#+&}m#&[%{\."ģ~7ގsy \ʉ=S"oLا__1Y|ᦴs2d:AɀP.?GO]/P+wx/ЬxrN "/oG귝 9J;8)d7i]Lo͙lM(RUC9qUUJL LyBMazmX[#r%4cso\&>\| T/E\{b_%-Qؚ iA9Z}E/1<D!\m:6Z~CO,;^s욭 Ҟ̳sGy.XNwׁPjD]5$Y).Z'ߍb"+nG#KЏdnUOڏ`ꅚbk,\uP%ݏyOKPRuȘ}WtfBXֺ̄wF wFk% c\hzP fx121,T& Gjy;rJTt{ޢ}QQ74*EX@7"R?b>6K@ Ö(ͽ8Zý~o:iuN`?0SHɮq+eXX[Vy-S̸#,v9%0Ju٨}/54CT/99Yf6n{ŒӁD̴7|`REDe!nФs֒K{q̫WNsL(I.Y a(!,pƸW.z ;R 9 uS uŃJܦWΙs^tj9\}Q,@!in:Zrw@ԧ/u)6Tv%<[q\It~[_Mk:WZV$6Ԃ;O31os]M@~g*pS\IGvV7E@>na C}Z3ZM[<墺bʱӬ/+iGH-{;\pٜh^'xvCxj B{L>\Kꮼ<|HHO[ٰAB+ʞ.F- .F-U1N;/b@y a(FzmV e7_Kƽitk*c'sPMNIDD1ӱ`ܼe4Ҙgyґ“T a'xӼG~ 3s1~U,;r[6[6V_f쭗t7&7˝'3".R#ui!/`HC}IqN{C~<˝'3".R#ui13c&.ܖӡߵSȋ~B3ܰ/kc6AWL`Q||_*Znl| , ?EiSGW*ciF\}d~$PoH,M ~YITg*̡pq)*YU34*8 t4guӹam|ie:[`nO$gSm^t;'$&܆ i}Qv7O˓$ٶ# OcXR>m^t;'W>E4E+`yɖEmrDOoV)vH)iiJ'҈o 8^0cPmb $QM)7)TL̎@(Cci"*wxp@8`< >7fFqrRK Ju>".nsgLyr3y0tU0y+ is8A0B.Sdc HJI501C/{lR:wo i+fUú9(X\i+fUú9Tx)AKEW+Uú91S:3{4O뱳#u} Gpb ֆ[ w9fG4_02d~$CHuoGuG. p:$Sj {刘-*8'؁q~fI*)uCV*E$}Phk: $ ߤL?ቜ%:SmpU}⑗J!!f)#%U x泅_#* ٧!>t 9*mi A/ܶkJ!e_Y%e\U$;lJ9d5*)i4ĨVECگrMy81iHHFrmgY J5o4)M1*9ՑP^9 octГM5 -ސ[(Q^E7,#։#rͼ.Sq;Oq1=~cm؆Rtu+ i4(x#b^R~rI'pϣo:c Pzܝ--Cd(a^\C={ wO%@O~eDw!z%RO7H_ir^9H5 taeGݤ,b 0t >9~5V?Ѐ( 7 }["$M RQ$jGW6㗹i@ܶj[8Bv[@;GI(%VCro\ FEmR_dӔUN$։7IT#%Hb+, J/-'vC: V WOy.{oxKyY{UfXMGGeb='gx:74̀ v(E)IЖ栊/QuE=jfS G-rPO?#.|'Sgs@?D0DyImV&j ?L[j@7F5#QRb?W [6/:h(wT7Ȫt++FUcODo=:lG0p/Z-qy`@H9:"A6N;= MlJ@}3^4y^PՎ(OPMNf/`0pEC`?O+\VJՔa7+ gϧBʲY\ x\O)rCХ(DP4'|⼂FR%`YjRhB?l 8 Yߥ5}eZ* T\GQ5%`YjRhB?l 8 Y߳M<3T![J,U2oCّ 8X;&e3R>%Y7M>ߝ4Q˸قBg<| >K e AųU)ku SmlX@ֳ;\͊M­P ,_kx?!o^N-ڨ8|ez IO^#)xſ,Qa`@᷹ Bl RH 3,&jͿhMцDHrhQDB(ML@{N[ ʪzct^7<(>{((*j̞fB`*PGj7gh!c6J+'_ikW/_~u"ntJ7"n\_iyM)W]ڬI'CHr !\L\# 3X #_JxУ˔dw^", ~Tcmx&l!yrGIWpwhА󀒩GM>f(Q1I#wx\ N)/}=c|I!"$٢@e?gl=ޠ3enZhLu[5)lt!p_ITM+,]"}goNT=]EHlfpp<Ct@Z@Pvg`BX#!Q)e#7SqA+TjLHŲrO0WRk`@8g*ݟ8N3vX?G?ZBRH6H⢰"̑iIsƃA}_P^.0Q .=5.o4 6P?G?Y?hach5} /7+Ag("]',Ѐw|tZ|:_xݐMHK_k 9 B1nX4P㼸ا__1Y|ᦴs ۶J~^ s^Cόҟ{'շnN9T(9^r8sϊST9l&QẨoO/-y~TUVԍUl+ ~c,SÕ103UYQ9Jݤ~¾]z3k٦Bܳvcc 2&?Muk+WDBւjw~,E~CO,;^s욭 Ҟ̳sGy.XNwׁPjD]5$Y).Z'ߍb"+nG#KЏdnUOڏ`ꅚbk,\uP%ݏyOKPRuȘ}WtfBXֺ̄wF wFk%%i\#2XS+?QN&8bPQgAyR(Sր \S8ܷp0"=7Tzp?WmJ/<ڱVasC.f~RYOf#ȖS0A%HwPUE鰇]*K<>z\᪎?o;*C.%L p~$ۊrb.QPZ@%HwPUE鰇]*K<>5ju)u]6rhR߽ r0lUpr6!laMvU1 |U|d1yi!vf.H'M?'T:$M}6Ȫ0L^"^)fOvQ\" ˙- }v@TzqfƘV6F&j4̯+AGz/8%DZCF.4UFr$0SHɮq+eXX[Vy-S̸#,v9%0Ju٨}/54CT/99Yf6n{ŒӁD̴7|`REDe!nФs֒K{q̫WNsL(I.Y a(!,pƸW.z ;R 9 uS uŃJܦWΙs^tj9\}Q,@!in:Zrw@ԧ/u)6Tv%<[q\It~[_Mk:WZV$6Ԃ;O31os]M@~g*pS\IGvV7E@>na C}Z3ZM[<墺bʱӬ/+iGH-{;\pٜh^'xvCxj B{L>\Kꮼ<|HHO[ٰAB+ʞ.F- .F-h?(<.Oȳߤ/}()3ħy،"=8\#%"G%uh2X!`^/*a@! ڕV >w=JJITM(MU3m$kB|b3h+{s[v=&Q:}~ywbv.PUTGWnXG@%NiI115UJDyοM!_UȐ7+Pܳ''UTGg8gkc6AWL`Q||_*Znl| , ?EiSGW*ciF\}d~77]@0i_r+otp v^A5֙ 7rO79 lVqSߕcr2ODMlZiGbwfXn73Lڕc=S?w $IB"D%M{0/u(zjv/?@.f4/LK314'I%ȡ=._ .;&>K+{Q7/\!sٮ @HK#iF@?f /5_pGknm^t;'"edX J q,)Tm/A{W>E4E+`yɖEmrDOoV)uAY?s}[#% ,2 ; A|e&;T&YM5NJi@&5Eu í'yUr)Gx2$~hаAEU6b2Ewpӱ?l 0M#4 6XW>MU:gKgz2 Xh;$n߼])?DL^-æaWYswC[{\~.8)d>Q7ְ'ql.Ji}VZRv>8`< >7fFqrRK Ju>".nsgLyr3y0tU0y+ is8A0B.Sdc HJI501C/{lR:wo i+fUú9(X\i+fUú9Tx)AKEW+Uú91S:3{4O뱳#u} Gpb ֆ[ w9fG4_02d~$CHuoGuG. p:$Sj {刘-*8'؁q~fI*)uCV*E$}Phk: $ ߤL?ቜ%:SmpU}⑗J!!f)#%U x泅_#* ٧!>t 9*mi A/ܶkJ!e_Y%e\U$;lJ9d5*)i4ĨVECگrMy81iHHFrmgY J5o4)M1*9ՑP^O`,O=4?0 n]6/OA [tV>uS[B(E@K q quY/ļppNc_z^}*z(7|{&@U%r…%⨺)MfWv5Bo8f xȎUJ<߷M@6&@U%r…%⨺)MfWv5Bo8d3SAU080ޡ;@U%r…%⨺)MfWv5Bo8c=T U-wsl+$zD>9 octwET *:Y:}ʒ[~W rkZ41'T7a{, N|=&J7apF*l2fSY ABH.\, jJOlž/C'AS9Efioɗ4.+8+q s4Dw3ktJ}Y$)r^9bA$m?āHyW4gPeC/@ɼ4ώw}_S< Ϯg?Ѐ( 7 }["$M RQ$jGW6㗹i@ܶj[8Bv[@;GI(%VCro\ FEmR_dӔUN$։7IT#%Hb+, J/-'vC: V WOy.{oxKyY{UfXMGGeb='gx:74̀ v(E)IЖ栊/QuE=jfS G-rPO?#.|'Sgs@?D0DyImV&j ?L[j@7F5#QRb?W [6/:h(wT7Ȫt++FUcOS(}I׵V4#~M3}9& 2 e Z z6AI(>z P)js1~+W^)*rwEJRgWo#Z?xEMmc1y6[^A.2F1D5 @Kh~[qd!0faeJv1M: ~qi+OGP3AE91"_V%((SMՑ]6!֩}' M=|GFuCaʼa^gժ Ju (x5dWGI:X9x!O #siD*c~$%>De "}ha.K;Mlk$/&os_cUb?/U2 ``_ X)tO9]lrŸm͙#+Cҋ bI$5B |a7{]o tDK6)5\F j;XNً}:n^\}|WSM=Fa!pkv.;;pZnK烐,&*Py;5CoJMe__}sy$daؒG{\r8!-G INA%Y7M>ߝ4Q˸قBg<| >K e AųU)ku SmlX@ֳ;\͊M­P ,_kx?!o^N-ڨ8|ez IO^#)xſ,Qa`@᷹ Bl RH 3,&jͿhMцDHrhQDB(ML@{N[ ʪzct^7<(>{((*j̞fB`*PGj7gh!c6J+'_ikW/_~u"ntJ7T:1]bu#]]R Hdn`*=``*f2#mrФ˔dxû;k2<^", ~Tcmx&l!yrGIWq&*tOh".zqN ߙ%qM\YW"KzYT\LT.cV "1! ~g>OZhLu[5)lt!p_ITM+,]"}goNT=]EHlfpp<Ct@Z@Pvg`BX#!Q)e#7SqA+TjLHŲrO0WqWNsN?-!3|o.Zy)#ΗW[-:iMc7u3*O2+tk &D=7)>>3OBWG'S|A?#) p?EGK}D>qˆIZ-S0oтL_ %e$F XXk}N%YK0yph(0G_$Jd4n!2mYs dZqF!* voM[iD8?ȀU u\]5S?|,RН0 ~w bWՑ2t= yB[=+,okBJb{s?B;cЯja]ww1=3*J;&YG$H!'9]qc^;7%֏u\s}A 1/M!KՏ|yu0gWIC$#? cX|02 HZҠ 9=> w-Cۙ) `/U8aX7 z̈́1/M_ԱTyƔ(n ,F(vdp(ΰlCԾ \!'iWiW~fљ;)mx|g] 0nZ%o*@Q*gTVz.Bgʠ!lㆩ:1M .@*~uVi~"x{ mXx9pD]睫bp%0`_C/$ZSKx4 t}XZvϽ|' ֋_?k' ɁRFلD] >_ ~"WuSz82뎠 m1M#Q؛he?xTdb2uђN/F+[SV"љ0\ηawւy9]:2Hc3\}3 ~GɿlUX@>P NZaC_HN@?hhm9Ǭ sβ^KCLlZZ`ܷ`;A~W{S >'.<^*(dV$ oe߀ވ_V>~2Ld~#6Pw;5  =gK%K2){E%VLLYP`a%rj-23o l9`$h/" IbD#3^?Ȫx|1{E@?b HKf+cPxMelڸ[/|*3\?RY-!y8(3JlҺE휞i]Au&JҺh?*qB˹5 /*bm:]/͓)J()`(9Ti<}InUFUWV7}L8'R8QREuehO<71}&AkĦ79_a9vN[+X6seʍ2.7uV'00e[>@wћ|kεxIIe:?'0yctՉ4jBQ0ݞJd; XW_gyKT083gMCϹ3oԓיdsv1ccCÅL hb;egF6U}6Xꀼ*<ÏփDpb+M>2&l'3HV31F{1S= 9BO+=S5y<'whý!NUeoQQl`j-  2r]{뜟b|M00$a&(eP^ [(0+kЗnZ&t elTI$<[mݩ.tbOeሎZ41΅,8&F9Jk9g${8W,(+jD[ q0% ;d3b\[X6R VI]/ʒU CIiF 0g@ %TsvYTv4)1>)rL,`  h),T; xǴ`Mƙ5ݭ I| 2֕#"?_kIe3SDP 7IK~nvu}SB2Aq-Covﵬ#H!djH37];AD!ą"Q~VhGuS*ʐzg]O,tna96k;whþ6]u>#yJ6yo[dvp`<ט9,S[OteRߏgU[sV:Vj3߹9c?B/&mEooX^MP۝V L)uL! Zp+% `bZ|GG oR&?,m0tc3$:5F D6&TwN1wPg,EZXw x}.*vsխ ^C~Ӱz(h\|[,v^, 6#Lk&v2W; Fw;T<3' GB | iTYSQbI`"4'ֲ<ƃ&Qi ^]9)F[ JgϜԡhQP$%d-#<=l&rL=9:09R \S6qFf%qپsB{R}8FӨhtA'#!)=oq>HG:碍м1)9s9s)?y_vеhGJB)X4 aX]$;W/] Y56P41M%VP9I(km[n]S?.T'hnM hrى/9=?LB{h`9-ĩ.0*(^)߇EPOuEє2. ֶV$^S/2xHyBJl& A]IBgMF@N_:2u & OlV;jS9X)\9 :.^(Zs.?A]">⯂$pJY|p3YuƂ!.iho`X.F)/[IL8{@&h$;;Vg8a ^7Ek\WP{|-_ިI$Qc磆H~%:uk^hC\͆X'94cZj#4RR+QYUqjB2/oUFokN-Ym2[6|HfH b :|R,G*qTB QmX!cj-[OWJ5Ӷ[>k̚Ru'mϗj. b W+-wZĉ S $!6!/H?vh&ǜy3i )~wxEbiH_3jS"c_'ۏLSP>IВ4JnxH!7-yה8]^uJ\S7;#!5UO> P-1(mbrsf(;BVk ǥ d+fYT6YоˤΆz 6͠5V=}U)Y#XWDx8;D)W=fhgl[:cMaNv*J#TO<3,x]rY ڦXT䲛 L|NX<,̺C3z,X TJ%LP~Z(k'0 \(UvСTw99f4hr^0Fc!LVM^H/b=(vr&asϟ9p?HOշ[.?Ana{F1qcyl u!$9fD} X*Ve i[cN-;'i_Qk,Z j^U>.Mou[\ץܹ2I0O% ѯ@Xxg<)ޒC-hǒER7M5bCR>F~H@:h괗fBkSjsC|.fUe02AA[TVFc ZОmױNLĞ>(\{lB>Ql0]4KS:Q9 '#sxd Gp?t'q~{ G?Ki+9w,d>W|\9 )g^SVf*tǐ/FEէ9m#=U PRL&EȬgJo<2Z>;)xNi@ڶZ{G._e9`LEG&GlR URˊ2j1h( *0Sʊ$ʱJfo{V2=owǷBy]M/gVg(Ci=t/ûa_ /36Sb4Zs5W@&?)53L6)3%#]A U3/m_!81.?1~e$wp9oj jyGKz<&E/jH>$7jzgi6񻂫\O^:ha(D7H2V%(xK=i}PVN\Y_LAxMncUŜB]qEm2 X3졆IœFe`"%W^޳t!_wP=/xV+] v5c(s6_s5?_kf>r'Q5|+&bXKľN}nj4lxFQ3[fQ[o!Qp7 '[8)󹥷K*9 33LE\屶7f#g5[̥L( @J\77YS8֣ ӆjydlʈ~2Eߗ_),CE[+1M9#1T"k ژXPR jȐ5eZ K>*H1m[#MP_cxDbE"6^l|"! m%SY~3Fc!HVRub@w bf<$ Y2z˃W?AnCT'AZc%{[RZ 'y,#,Hb *-A5/nn_')=ؿ-f5N "zP+6 n?:N ܒ, [`Y_xvYg?@7T|(b8]:BЋ9@ I|7E$i|`< Wrah[Ol;rBJJ Ь3hm|L2:XAXpk,@@~$_q?t n)'ub*4@>lʾ1) X&UHx2 \68U-TT3e568?J:CV#xr# F h’3#e>EaʘfjN[D嵉3~%"[V]_X>l.iͺdVGTgIC,G>a鵴 bi=x[qy?u]mWr;ҙa)T`r钒+ 5<@3}L.cawsyM!:}h+_ߟG-tlfEY,"| ӊ=Ny Ծ|E[aFcV!`2maQh7l8Y8 W &uz|ԚÈHC@5H6ŐA[YE~ff],9%&o 2M[g]K";pK~?MQ`o_d<8jq> @/0PZC"<⮶(p*ωfgԢ$72@oWWKm[8e#`DzPOTnV ͺ=hVTaքn _rD+:w={5$8pEJNqƏxDUNpϜ٘ x ^7a v#=F LoZre1fTXj-GeRTtOM0j*Af9 @X4apۆ/ +CstCpp"0OVo5V{jR>$kz "`I&gVAϘ1~e$wp9oj jyGKz1XAnYmv <>6KA2|}B=Se% K p;)' wm(9pnT0Y=M^s.EP# 8ri:)raU:\- ғ ,PaQF%Q`Q/?XfNv:pk^TvHOKUٹ}+=;3-*0s R ՛3<ѕyC Ov#{)A 7 A]AP6#>N\屷k*{U@ߨ-*id_lLDOxIBX v٦]K(E;X yYE-x+Xއ zg+8=E@כJ# ūٴSxHVpކhz-3 T s%_M+_oNefBkc*v>޳,Fm廬NGFm>2ٌXHj rق],L%B|$c<~|B\=9Svb:q;Jx'AqoB8#\{z'q&~j@FV,#)!Qr_ =^F5.EJ5@[~H։*܆p[KvTߑ@MaI/Og45"$ ~('%!B(?Up7XZ|d6z¦l/qILh&DY̡HNgC4&Hib oԅ9Яɬn(#` F#~Do=Ī1M 1%bXHrRBMfeKH3@DždWD5q{yBtL17pĬvoӴHGSL %8cß?:o[0eO tǗ A1,M/3 bMb1[Ew0n2o:#?ڹEx$jVV&Z[O!d.~lGSi'* KbX]cu^u7/Ԕ s܌VNJ4hX #S BY`ia:)F);!4ORӥAXb5!tZk!UbB,CL J%i.oa8,еu^8`Pՙ ntdd u.Q o;vDVn{ZT4ɘiɲPi+"^RSt/ZBh:}Pj#̂=&=,!wDѕ=VϪΦphiz1R e%^Ju3-@qO"ԫj#K$b 604u$qy పEalX|v C1$ ,w^Co:Ո?3iiߟ5߷(mb=V_|%Mr#wS]T|=ۻ7 TgJ_"W`qsyWˍhU2u$MlZ#jO0TUT@Ъtj>#  V|̋{ggxEV,eD-P$ >w|Z yPg=]$ MQz еJu$OM H2iZ})-z1a&Y~h{xb\5cL(+r5YF$%VQwѕ@d~~yYo؞]S ct% 0!'b@kxCFx`gee. ײ6ect4骞^YC8؟+s\ $_}XR\#\kHM{)4ܫDp\Xjʓ.jUMcԄ~ӔIq}}gq2YUISilDlĻorh 8/Snkpo_YX[+!?OK6=̗;ó9!27L,u|F&f<2 WkB|gTC(ffYA,[H8N{ϭgrTX< %|:+Ic[!sQqmrio ͭF܀hX;>^UdGogѿCuH]kF@U1(V/#{%IzN@Qz! OI pyL`wDsu8 MS:pH/Ĭ6釿mcX޶u[\&|j/"3 pv PPr: WwAʪ a/)|bdr-G 8[e5}=sC n"(kS2R1&Ca`Td8iTꔥbWVOyŭJ&!Ih +ek7M[p;/[ 'dA :DƖ#0pPYMr'3U*hKsJT+giz=z\ܙS-> g>u m}'Ql1g ND:~aLJl#+"bIZO*ڠN'Ruɢ@\jB)8-)]7pcJ)C@;\7ʷEϜF6z-[-p,T}M>ƆU?]hkHDKFLG:i2 /,8W "҃ p[w 1zo(ɣdRLcai;VG~qh!%=Cr.0K w}UH|W=7ykP/vxRZ 4\w9JcX`: PHk^ڴ lyёPڼ)N,)񄕊L{DV꨽ n ghӁ04mͶ=ЌC_pVvWuLz@nJJPHl14s %i8)$Lt Ef:3s̋Ys"Lr'EPVvLuZ,$u DBvwQdR/ @p?{ &M/3L; F*O6~sE&`r[Zȑz g2` f 0BY=#(m{k}%&uIl0&9mJ',TVqܬDnf [bd ̤9UK1zM~:S#Ĝj}0$)y%/060@zq~| v/ag5O"5sCސ.Kbp  C҆A[{ dlskv!zq**DZ=ɨ>a4 ]Ӵ)Я\ZGcYϫ$^iG3hWEV3$N>;)BB j2[/)$2bdxeFJXd<\;~CBU%-dhۋuޟ$jA盳WV|%sO%N0P U\Sc peГh~9¸ Ux4ٜءl|XRc5iU+8mmT(3 ~^et08>.Yՠf|;m[TZBl ݬZ'^UBUi.+CL&Kp\ݝX=nFca{رHZ7&G ׶/lK[Eug#'3! i3"nr\%3FK>#̸g$Z\8і3`gوpAll+Ã66UoyH6K?:7v|d+diԨy]at@?mP>Du4rc@k,*^|31Oj 3Ax7{|NP=;sW,]Ϲʉ B+CsXDpB[DzMM)rftz&m#b'r=֍˾v^c/?8>ctQe}' \T0SgWd)8Φ"3> `7K*lZ?tvڜYv(c!GgAVJym50?4 mJYzPv鱀 5//`[y ڂcl_.:`kxJ1Wfw\Gb!օo;d>@̛ͣhy {>]ླྀiIX TQ<#t&*{V-eK֬ `%TO u6tjJ2׿ܓE AU#:Y^S-6X>& 9fCDӂqH@ǥwr'شҲS jCx6hYGഄnx/Oή ,ʓ"V2+S"}vX*e74 鐘C$ ;W0_Ѕ V/47#Zxlyԇ!}>y-9M3DȊ+X vN04?/ήu2/yfبɩx`Du=m>];?*Pe1*b}h2A6Z>ɮTR/.a,۝:]v D4#CanygY2LW|e_[]ۀʪ!vT u܈ C_`e `wZ>؈ll< 瓙z‰&gJmOOof5JZ29y&9{źj-)Xi(vb(>/&|DS*n^&+h22v|DީVs|SM7SKށD3oy^TGtTI˩*96M+\E&4S||r#K7qEWNJc99_#*bm: MicHxUU-P&]wI}1mv1MnNFURb|Rw"?uV&v¿2OpdaZH :e-xd1?DLF1v0 &&Į[L=V&P9Β`F\pzNl6#Nkc ޕI7~Q=9([Wg P~XvJ?;FPMf:* Jaו{5kG3+䕎N&ŨR{#vN.)bF,O|kj-LJ\\E|5)@g㍐h` &Sd]rVdKQ?K_#CxΔé|_ߟ9_mb=V_|%Mr#`))9XfO%YI,]^T 9/?r1I|m(ħĈ3A:QΉ(W@PtD~!$,*ȗ)4 *y x&U.D>ߣWߥ&k|RY<щI%fT?j$k7N=1Òߙ0KhzR=qah twK#4C3o n MYc/L2yH,"2i$-#\y.mY|S2onkO˨۫ `<⬆Wt5[{A˓-D'3dcN8pW XRXTZp0銡wb+R#4eY>N舋Q-m]O58AG͌8wQFoYx>`]cڀF dxN* t:܍x<Rm8Fd793oI)C{,Fmfj%"MC߮\/w;3 p2۬/w:!c.106)`0s zM|F DxU$?dK]Mu4 oINtЬ['&Pq^ گQ~ ENt^nZ ={P[ vY[o=&ѳw7jڻdb T51/;W(ްQ4+o}G݈2~}r^zh& Zu&J| c9Մڂ+1K0?r)A ";qA~,sb1n >izw{ B*Gfq:؜s#~" Ԫ"(n.gǢt 1|Ԫ nU\9\ݝrHBPd4şsrUūYU;ܭ}pR5A82xgß;rN2)\ {FzёPڼV W~3S2`cLXNk6D IKK>KFh];8{)I֩;$ʋ 8C]|V^[dM,!zV:i-feRksNu}qqi)7qf@HiMk$͛W!lύ<&$0\Mi|qAA ^L-iZb._o!ۑNuTc‡3s2rxT5tڀp}ae%Qb|nFJڂLe+2Tx V?-xKب+PleV+fl<|S{W"z֡4^}r-8P/Pw,a)t# u5?9`.xL%P,5ڳCFGJ!]-.E,hDW-<0,ҾG3zɀbC pI %+Hܥm.Qb%ap/vtxOhVyWK>RkP.=IS]t_VWAWZtƛ*1mftތΣ`﬘JwG]G6DK^4(1Q)0}{Q_Eo\?SfRj&HSC{ NC   gXŠ#wpt^vSwּ^ lsXs@Ҿ d?;ݫ: _4̦,ŗݢ+3C/:[5a՛- Ir41 RCFoxG1K:{C5cEQfw t>Cd oT1"_T_AY1>xMI=z>.>S%gqU,˾h8B䎟/7BW\Ŀ{H+DHOi˄IYK?e^>42KmemGP# Kv<|3f7Q>6P]9:Bc &V48BS:mc~hm2Pnv||~2n# A%l wg[(v>9n >dy_QV8{4VCޞҤŚL^D@ey2_Se{Ckpϼ(,m~& 9fCDӂqH@ǰ9U_RjN*L"B9|PZu{py15Mm) ~`|H nCCL>'Rجs{&2N_,wOe6)y˪1a=DMsPG[kI5\+cyۧE<%,gaջ:/*2_Q^{5  hxQx^ Oͻ|b|ҴS-Ȕ > 0jnC 7\vpmlyfGm/ OB4A,a](Y|&X-!|ڨ866_ӼQ]i+8^S((_mTD4 v7^HŹhqH{u7W履£zc91+UFhdQ=E+>y=V5׍)hʸTR2=Љ ھK؈ 9(cģA) ~ !|rR:W*fwU[v93*%('<*2 uV#B&Q!{lDJ0* ZH2 ;eYlTyO7kp9o+_QXƜ3*PUHcf5`y֎^B>jQL|<1@Lf!(iL0=KX[{ɬR^.\1/Pі7I\+(»a m8mRQO9C W#5mt&898q쐽D$ BŢC6%ua=݂9 5zG̗ra|F6MQ#ߟU ߷mb=V_|%Mr#ƯQx1r,ƪ o_Ԁp^)Zd/ *\fØKkg]J=wGMU375{:\~dKD +G`4?ņwyf 2U/_آn(upot\ u/6}܊T(s?d3|n)cϙM޵;UN ]9aS M p֜vf&)pgPU䝗'o/ҁ!Tˀ zp.!}/;Uy5a AI.3 RT{!~8v 5JM_'=&a ? r5_O,eY>NC`:Ðu|Fl 4q|Kge*,j1۪c2zX ެ%ǣbE*2Q*K/3K&Xiİ1&8YWu" nVGDzbc[!c槚106)`vȉҞ/y - V&~膺jDdOICw̤Á g;EqKEƫ2wkBpCY+̠wsT9Wn "ݩU[mlIv|ڦdIئ7jڻdb T5ճJ9!؏hC+ HoXL a$д-C9Bqhp HFD[|C!N ~u'lho T åd8 u~$֟]Qk$b`|2ex23,hS$ cJb̗%q Q?WixRPi+z3}evD@qiU3nk lӮ=-4 0i^u6EO,žu /|= /U7@<)#,+8kk.\=\k>$?ёPڼV W~3S2`cLXNk6D IKK>KF)o"ρ,S)VO'ɔںYDkqKbF&T <99 1SA91—ʷڢ|݌vy[2(sƖ2 i0wfg@6lD%ނ 2f^gbf:Fz\9 tkhЂF!y>Ek{0IZ]/l\2cA<;+܀Ef/| Fvc;%!P-ᴠί 8Tx. άey xizn!6VmlEC+@ c> G07~7v\P! Я=uZ7w E}Ge=dd ~sُHiw j"f\mؒkih (SpJ*.k,}sR&лhȃD+H1 ̤zI`)O$L 4!̠Pu\/-N}PK_;:^ wL`2_H}>ɰBFW -ate/krby3O Pʤ.M7>ݘ}zWn B,xk} F duV"}_ʖRb;%7.ePW'vDo;ClnNx鴜qiieacT|l_]qFߌ_h.0z ٢m=/CɐǏ w{vU*ж'P1D7"N?^ AU#:Y^S-6X>& 9fCDӂqH@ǰ9U_RjN*L"B9|PZu{py15Mm) ~`|H nCCL>'Rجs{&2N_,wOe6)y˪11iJE,#ps_~nW:۔!ao }u7 ꔻ%xUG[Kq~a43 v8gZ=2 _-@Rk19 24>/? ؿ:5A5{:gk.gPG$j~s`0;%PVTUK_1d{$Yʝ%N}.&T?ױnRXZ r&Ƃowr4~>$k-{r_S-cN/6\M1EmY[s^c^4*㗙"ILCW.>#-04sC}luN "]V[*09Yeb{q6RgGX}ԌF8P,c#WwDWSFH[pNw`pAj\p,5eH˱%$,&C<#a R|❄*n~S5|}@[>$pBotV[p{9,zU%聍-0>OV" @{ 4φgu 5OGq1:QdRȬw|Du^[bB@/ WnV؋۱.RIZu OEdr1@ePsP PwP;= _w"ă=X'o*%`^-(5 `/\b]}v`ᑘm5kIDVԺ܁ 1E"%9$ 4eeVc~qDpʙg'"`ĝ$(Pn1.!\Ev(IR=&!Pt%Ί`` Ԋߞa@}[WDP|RLyZϼjؔ+'* e;[ӽfKTnK \J!X+ 4 [rX\%*9UFϦ'_ՍDTOa* w<*r j Nsr njmf]sT?6h|[06vJaA35'P^ST@+@ <O)x52`FC83|)f6\˖GUӰRM#)tmh_Єa܇7|&P*{|%A// 't&TdUÄD59?q[RtND",8qx_1-,kX_WtX/FEm|@-3KTum["zV9p+JfL]:R5wI:WW< ]yyW72"Tjt{o9 YտP0 A*m3u ӼnH Ә&W?29hlYʔ\o]hHÚWޚIGvK4qKuB~Q0/vC{g,U`7L]mE[kAJrf9ܛKSuFß![KQ+?x'- P:w$lOv Uc'8Jpjt4i1&FzUM8Xez3zoF?_ùoèQ.%T#CHg8 w~x7/Z?:9ƖA+, NwʫPewˊ|7(Jes;nD?ז,_D&XVҕ-Vwz hB~Un&QɄjK C/|]G c+@`h60?Τs@/F>HĵqY\fKj$h]ZUm:Ԋ6>YN0W[<3MSZ["Ûoe-tK rJR g _{V@Y,3I0Ts@vNDWXhtؽ;置/*j#.V1/uka(Mw$ +9N܆lsU8AIن36AKҖ"Q"(fs?i2h$HKZ{]m5Tw(3V_֢5 I=~ӔP4 ڀINn A|eZ&0S dF..P46b8֯} ҏs}ඎ{𔮍e&k#(\vir򈩵#,XX`~xcr=DQ#ڣng"}LX@GE4nfi`$r:w(pIb!rVYonmdYAn~" W'[חtBʜt]2'-ƢgK2P\Tw4&1H.)auUT$V ?6!sZV%oo|r'謁5⛀ Jx!})ut)'b~@ucFOIxMپEK?y}T[cǣƊ@h"\ \ZsqL. n"ˋiكG'i+ө̅6I%ak!Bh!1-{V3=%eGL1aM{t=~JKҟ0iX6/*lʕĈD)>^,ӹRf @? /$"=H*1оHnCrf!UdzPo *Th3(tkC!~4^5@^k)c.6Gd54kAy$2/QARvx <]v[.7\ӉN1h&# !sx::V*1pQAޕgU>ƞjS+Mn+A;[d,Bo3qjD90DV$:1!ѭSj_?js1V/[^FL#OB{qcX+\,`JJks)?F8iK=ƢVl;|U9Vl>E~f 0N?GHB39'lUwlSb~E '|wMi}B@;)He?ڴ央DB88B'Oo4q\[%p1dmS-<;ZEy5JhlK>1SE\2~T !/`,2VWOX\m]).KxqcԴPLyUx2 gS,D`߰>C;R|ĵ>OյdJSHW=<|:l1Vw5B>-s ;~낊 ip8>;n&ЍX4A$bUjJ@m }y2ŖOt/aHa+̩B$G7GōPHޑ` _b}ap+.fG?*U 7I^F#7P;+A ]~1G%7Et9(xn\nWE 6АZc}e$[^wYqShrnn3yg"7NOmӆk“uL#H;F٫e)A2vxz 0[>A!)!BGw(clړ\k9Y3ɂ)KnGm;7sWU% cGIJL=ŃmJ/ָ9葟nKp 7c>[a.Qgr"d|;\$j)W$8"Itj7zo ~1{e AtWN \) ڈS wpAM$_S.,XΌ'e<&q'cEV`t*>WKvfv+EPU{*Dp5[C4LY*>A8IF5])kG{ @s%ѣs?,n5T{."w\0}PB5cm4_ j)a^/N,ͤ))s x_/nr$h#=rsjB!9 Qx.fzQs>p/|LC{. d1\R eR~"5û~=eAB`R6Zv ]AՉ HD*'! !3d^pG&N:h 2MgaZҏ o6>0KNtKD)NS\r$3(7[`7C`o9] 4Cޘ'װ?oqY Fz؝@a8oD.IEj*Ewp'YOe;+:kl.ȧ~@݆3l_%1Y΢sy=߯Z&5g]Dx_b_M~~ܦ"(ݛ#mnban 49Us|}z@6X~_9 pe9&OX_"ΗPmJ]{m\'w,x2n{*`mI>bexGxq׫)fP7T`\3ޏ⋕*gJ Zو!h Ƥ$;- (CC!PkN^h%!5ʉ+^NzLI呤ttVgVf_hZ )Ka_sOS[-X-Z eVےO+;z/jv!-(a`Ri\mai}aUM=SW$Ch)8E ,#ŪUg[;}8v$M͔sv4qPDazVsJI1B'k빪'Y;3}\n((7Vڙz6h-Y3=Sk DNgQQiƓsFx(< 1Qn}M~q%emWB'xeͮ\s jq/<8n@5H +M;uTw{K$PB\&JO4~ Vp`+ف&j>M\HY(z7F!R aNjO3"ĘdFnE/Lݥ/KEAy0aw>Ƃ W Z9sԥ ]Pe&?k*(B.Gt!*:?8_ؔfݦL%[>6ZRl,C;ֺD{nդZn{+ȸϼEjrwyۙ=5{O=ݗͳ_~<~El߃lW~#~O惤uDh$ _vS 0#‰g6鋹_И秌&m5): v"%|H/2) X] Ð`6OZJ@'>r0 Hsj"4AlJgKYoYakc{ Vs),9%'*incδX\e],:T(|U5·KBQ2hTnEdfNks+E^hrɡ;QL(PL(\[x!Hf^}*QuvGd4A=aUw !R &WKoʑ9 {PoOACufW/PMlS_5G̲{[qp PM:bOdHӟ)M(=*NSVCIq qR+>niYN 0Qj"Z<1$okY8=3.Y[+\?읔68Nb|F p`v4_J ?>S8cAM?:pHPdA\x#i8J62ENUmLe{ϱjI>l7nql8eEW2JK+ Y|Wg1+^'}HrVEWA+^&^[5mE> T؇b0KfoDb~550S` uءhވ0l62/{4° H644s`Uw@n^]9; e U1[ DfilX-5}_P6d"8&ڀLFR>UiuLkCp~%N aJWv]&WFPwC:BGil?N?LR[bUY3 :7YR*Wȵө$imȄ..6szdONAlCtjAgL--&e@ KiwELOhN=.xDhE߂ul$۽Y9X`5P=X:FFכ 3$%@HWm)/=N"|W1ܻj#'kN꣭? %2hNKQdF+3q? 1G#1``t[?m運RRp| `M"dR~+wD4j*F҈殛x/NӠx[F*|R&J9$&ڬͯ5o\PL z[7{K,()mJ mߨDmw@NQnUDİ2MaW3,@E!7(H-?,v-J.< Xmz6g ljRMҟ8<`*dD״`FgQ2,h".&,5Y]K;u?8w%FL]5^\S $ cKAyBR\ xu_>:"o꙾} lH5QgJ-@ffffABߦK@mu*ڐCy?\V_Ã`jj{!-J=@FGtPSRX-7ӧ&ħn2Mq =*$ ƊEWZ@Y8ݞ FyKnGX!2lRl%-UK0=ލ<4z H!*a~|dQ^ҡ/i/I? nZP&%'V^@D,?&r&L5x;'v״[wqTZr.w`(aBDj$Is7vwdä/(-}̈́c ~o`p:Rr0s h$LERE őU] Zg6P#p*KA<@K=.Rh`|N[L9LG\w˦|Z?B\ig2pd3`0{t p:CJ{P58y2}׈^೸? TڮAMUFbJuZi:}N%-C%;VzXG1N+_`)@֞*61ܟlȟ )rEƸi{0?p8* Ej&3`;j~ڼQ@ m9# Yrnz&yo:Tqe@iyz겢Hd><j%LX}fOV # e!<sѧN^C@V 3֞ f ,-Ldt4#]ʈS}Ӯ$JBG{5y^1 j'6f[ɭ#Mz&q(j[Ⱥ!\2*Bs[k Ep9mB*5zI9KFbB+R(#Ϲ2c%fe%'my^ S>ve)8HD1Cl~]@~uF.dtU̥} BuI!E;I!VG`q {p)joa!fq !lBŵ %ө5;ܰ0,^=lr)E3ubOc]SS"/z41X2OI}$2+vDlU˙3RQ=F&3vG,+MҍŁߕw\*TpM$}E;ܚww-DŰ 7)|콿7 =ìJoTt-¬,ROd&=-/8AbPN"dk_s`S;=uiK,O|Ό&(bNЎnQ;M {˞ u/ꛞaHG/O\4X~7\뱳.*݉a@-lArf}i**)xZrNԇ)G.80X lˍ0`-*H ӭޒz8jDY_)Y/7"@uh' <F?[nn2Oxp)`s &B_P#u=!g4&"3 q y*\/Rʄo#ӵn}X9w:>nBmukiC-xS:ĊqdOD6^s~UHE^y.m]E[ujP@#3hz y½"jtaSr9O$`8X i:Gpyt]RZQ~k2 9ְi$XѕE{p^MdxM>=t_E*_sIQh{$"hq*"_p/#gu.9,Dc뒍9+KJB2iZyue )lxVS7eH~ʩm ?nF4RZM;1HO!Bf0W](%I Q4a1wC~(6<\gldk]n /Ϲ2*& {5_.1uglAAaClܵT)ߥq}.XE s10XiGrﳓ|"CR'Sbp"+ MnjA m&e77 <\G*F樜\4@~GԄ5w+pKZPnIRFS=D; hWG x ESW446{!N{=r4.QaZ92FbtX Trc}ztD|ݶN?wo/7+bS՚IK@ӓ퐐wǦLv\jlB]7}v)  4W(ϤWj)}{?7@mLa[RTGk0ȡ(]Ӎ|SiSCr{-[hE^.".)O⤄8i;I-xA4]{ڐUe%]U5* -<Or[9(ktFL`>QKy*{o7^[Fp< [E@ޥM'sʚY9uLS9Ks7޻]G'QOҋ~v%ؐnM>f-h0>mϣ6EqMS[@ر0 = [Fe==~.'[Z4*&]7-,sj`}^B?z"dy=CoWïxm ĮBߙ9=\:M vZOt+LKM?} jP<;F pnp=73lNM)JSHnjtGt1n.Gb%ҺjлRqz\BJ`  ح`F&x&bFO I i`;HBLr+iEiQSrB7 b Z[ULP)@8j4*H ._w\S7L;GbЩ3ƷQ:>Ս9F="}W=z uH9UU)JɮŨM̠kϷ5* @b1! M!MRS5EY]D`b9L] WJp\tqPC-t:M0[JmYwfp|W4JBжdܓ9[\3/J=NX yyXG8Cx?qzJv!PC^7f&2&,R>2c2q] 4uLHte32m֜EC)N%.M=azSf쮈Ar-(8> ;ϖ!qĖV2?5Tw(3V_֢5 I=~ӔP4 ڀINn A|eZ&0S `i{q 2)@t~,9 [n#5/rFA?7U'>NT~*D]#+i}v (ah!b\3P&0lw|^g{&Egs7ud4MKi H0WYGwkܽ B\1[W@ ؠW\\ #`F>4 %p֠ALyr~ykLUY%爑l ġvx[.kt?\u{vn1Պ\=N`י3x#AAGb4CɢstU)jsp_F3-ݓ:ƨZyçlɩecHo/l:,Vٱ%ckMB5ܛ<3ǍQt#2Hla_ס,Mx&PzBD6B`TͶ\fNK%J6>&%K EMG3ϟ(}uv _tg㖑"7Va>#Xh&g͆j.'EFƍf '#X: &Lo2S1%m*gq}]F2B&}/whZ lXjtOvyBGYyLj8B\mO>ɚ`h}* -} o~7z5o/%QRbi./v<”JACQln`2n9\{M?q*dYlV/D3pYnM;ZSţb*y#ãr6-%ǴR >$.+ 3@IXT6u}}UN"|h@ L=/E,n6 ĺB7XT~W{Uy:U*b|5.- ٳ8q$EYE%A&jUV^,Yz^2O >)?F8iK=ƢVl;|U9Vl>E~f 0N?GHB39'lUwlSb~E '|wMi}B@;)He?ڴ央DB88B'Oo4q\[%p1dmS-<;ZEy5JhlK>1SE\2~T !/`,2VWOX\m]).KxqcԴPLyUx2 gS,D`߰>C;R|ĵ>OյdJSHW=<|:l1Vw5B>-s ;~낊 ip8>;n&ЍX4A$bUjJ@m }y2ŖOt/aHa+̩B$Gcz.2X%5؟}9u;-sJ之c27ʼx6k@F !7S+"9m۫ xCd<(,Dp;W*-G&"{DOD/\y1^;YOjme/lK !ᩈtTm[@;j*Rfmk&mR"./yL[ 紀Y@բ<#YycK:G 4BxOK;dW s`\j$aq%|QA~:-Tǝ0owrBPSL ^Ԡg uW:TK ?]AA5GJ|aE&@]ZP#3V%dұb?JmS+2ȉX=L_ NNr=o]]Vn44+v P 6*A;S.&c|7i=YqfH_kł ֣▨=0Ԉ #Ο%Zu+h|tFu9㼎̬i'JOE TiN8'#k>O&ct9=(ۯʛ$NR>z2󩧷)TJCp[`RMfmC.3$~1!"Itv`_} }Db%CA!( NԼ^Qۍx9"\0{U\OAwSkmlF*TFgU6ZKEfo֜ v:KV:Aկ@6䢽IgqoEUWMN% 60T YU AFqAو]7ʂI:]%t`V[G14l[WM~ɜysy9rI$S ~sP7BȠmj37p!fia&oߥw1 ?S/F P3sm~H`] o>jqP8l6T\ ܳ߭o2Y[~ f imD뭉!xēmmٛqT5Sb!w6T%4HyI>>cιL\ibh6LjB r؛)<Ӎ^<2Zmf+]4Cq#Yd_3mHk˜ m.T9%Nv,}lu4ܒI$<✅#<"ڸAh6R^ft3/ VD"a*`N;hu%_Ap@5SsCK5E[M~(UYQY]@6p5"OLx\ԝ2õN՘ !S 䮬:G_9Ժf ~( , Z#ճgB@O_>ӡ=KE|PKN#A (;xzulF(jӁG',,L'cWo: Q8b{hlְͅvM>ßP?/~< P 8luo1T )ȔF:,vtg|)bdZ]H+[q-%$yvww;!:iBK&r) m[O CT 5N7&fǼ,ÒswE^Ru9;g/.=HR Ɯ֎LmC~༇_Uߜ[a)Ugχd~ܽlf'̓IgۧT[:'`eX9I*X /?.LOʮ7~\G\)* b_KTx::tgvۤ"+;euy\/iYJh F0|Ιj34^9h/ЎOht/2:f~wg s\,J"4Hsf-DD4>g:@j1۠涵J3ͩPo2}f,{#WFn~6m H^C FG}Ň= QVs>zl7nql8eEW2JK+ Y|Wg1+^'}HrVEWA+^&^[5mE> T؇b0KfoDb~550S` uءhވ0l62/{4° H644s`Uw@n^]9; e U1[ Dfil?9sr 4_M*sEDg85^Vmu4_8F4&ƄxeEW"GoAK\?\G4AFW.!ևJ)v~E>\3chyMTѯqpxѢȗSXkv24CbWݰsl:e+5× Ο7eLI(>J+Ґyx_ Y%i *\ٙyh:2~ayĕFmmh酎fBjrCmiIVn`h9I{ ϱK~mlQj^d"jl`pC~Y=S`{?Hl@W w+W9[,@Z ]yM){0mIٗՂ>p xLPltkGR* .נ~cUD]ouG'AK yTp\rOi&3HH}Ǔ>.Ȝ=zvy&LULG Ðj͈M@ffffABZpq$h Ͷߥ]ێHzaqXS}I'4OtPSRX-7ӧ&ħn2Mq =*$ ƊEWZ@Y8ݞ F"{Y4p|qI!5&MA nziCӞKD_[鉙=A=يov0rP ɿ'ʀq9X?ݵ^j&eJߨ~{g}/Zv+7CH*5jgQ.e|ˡĺei̍BOFLBB\FA*CUɬ|~M%a0fU4CQ̿!- W @h{k8@0cژ0邬,tw5G9|{ )dow33_*: ϐDy`f";W6jZ2) rx`U0|>HF&6^*X ݠ we-&JqCG+ U5'>3(ݶu_F'[7eҰRbDalg.n ҧF+-nf7ؽKme][a;#WٮGB[dغU8cD"깽ܿ?xc^  "۸#,Kg(U`') /RDؽkv5#`^~ݤWq(j[Ⱥ!\2*Bs[k Ep9tņ)e]d0èp#DW-ZFGWj4oxKAҷ׼7yO*}Q/B& Dq%j6Ht¦5 I$߽s]<=%,=2#,.j'\Y9זU69VWv (v|4RZ/: +XsqH$ v{ȸʤ[Qou^݈0gjܼg+} C6Gk-jXԻW0Cȍ~9xpu7W)QB9<;=]Z2D#QD~'<:l#6ڭalՕ&40N=K CJZ>R^Cy \dSd:495R_\{ >&ձEҬ1^Erϗ)KN: a{5I~#UnriģL7A6-Y4xF7[45A:ciu{'uWl3h,*L#m%i"ME*m <M]HGphC oԧI67sSf&nzkϧ8{TzԎZ/*M+gvVʕ룜.uOt^^>\HJcOܐSH,U[PY2 w7Lx|MK ,6&~mQl\U0Tus%>rnԘ֟4U20,.ʨOin`\nhP:BM&!3izG==ؐݎ/+i9Sͫ7|*o^B%:31V<+"&Nu7 `K[&WX i:Gpyt]RZQ~k2 9ְi$XѕE{p^MdxM>=t_E*_sIQh{$"hq*"_p/#gu.9,Dc뒍9+KJB2iZyue )lxVS7eH~ʩm ?nF4RZM;1HO!Bf0W](%I Q4a1wC~(6<\gldk]n /Ϲ2*& {5_.1ugJ6^K67[+˪vXE s10XiGrﳓ|"R'Sbp"+ MnjA m&zjU .m%1T8 AG-_n6MV wN+^']fܲRP$8Js|t-ʰ̽"ZBa DvVg#D8i8X"ݛei@QEUb8{{Y&dq΄6)"AC\H*XQL>GWLlk賯B@N?-yU~z<CgP*jg CXJ" ǠBL?\glS*T_X wx|)"w*= G_-FY1H'Lv ՇKj&J<~W982c2q] 4wL(Ʌ: wzu\?m՘Wl(PY"E;Kj %vHA:Y}ԅH[H%QĐzb݉9esOOrƁP / !U2BaDf=j}QASc9'w+)`t_)5ݚgذʾrK(HJMpb1Th)NCuVPde%9 3QÙ;JR!Ωm:ַ2953y8cQ?E!LP3C岀HqQY]qhO]Hl$kV[v2@bzY9hjL eZ%}ҁRZ4G49+s8!8?}ʴM+X(h[fxsoXHȝ<{ n \6UR~][6{7'}Kqx2n9\{M?q*dYlV/Dg~5ˆ4y` gXu As,Cц1=g\rh?Dȍ[^087l2MJ/E+K_O1yb ;uL&n~ N toB[@Wp2-;pki>ٜ]^ć5*[/,پpo̸}O >)?F8iK=ƢVl;|U9Vl>E~f 0N?GHB39'lUwlSb~E '|wMi}B@;)He?ڴ央DB88B'Oo4q\[%p1dmS-<;ZEy5JhlK>1SE\2~T !/`,2VWOX\m]).KxqcԴPLyUx2 gS,D`߰>C;R|ĵ>OյdJSHW=<|:l1Vw5B>-s ;~낊 fxN2kmHzN>Lk_MRIıt*5 %o6>7ˎ&>&rڜvA5w*H@x’,TEEw~UU q?I|W`Agwa~gyB_yHvػnݷْs_qܥD3ϙj@G^r'iiG9AغOU@j< o_P?]%l-Dm  Gi՝^Wr0}o91(\n$rsPDFֹS|H,xn՞S#企g+p+,XIˀ.~u;'j[UU4Bޢ۰:g@gWqA?uXWӉ~:0%Mp=;Vt˯_kF$~dtTZ&f#ⶎIz a;ri>U}@Tx- =uUk&|@>?X',(L {륮cMm`',k?#CLΙ:[7~N,T_NCp'hЄyO)֌/%nm' OZ. PBkt$>MKY?$xR>ێ=>?Xi,@oR, _* P,$< vbS&/;Uj U QXz;ͯnw 1>kB*0a(;L'2>:cHxj/Os9'gL+Bᢀpa_S'B~T΀INCMÞQ5[G:wȡ lkq8Wz^9*Pu!CQQչHB(6SF` RJOE6:0ο5tܸڔ/Z0>@Z^,jIˢCܡސ% Pb PplÉp;{{;qZc+4߫8KC㜑ãkA>O.;yjk-ich3Z4 nJ+>ܬ7mJ؄ K1T8>|'kgJ~Alyu .4 qktXD51۪h^"֝&9D8j@^̽} 2}JȠێoʊ1' v!^rG"6 5ɈGV7-_ JE01C?7~Tf̎)H("=3~/mIo>U'`l9\bGuAxw;oą}UUH]A_E)F\"n"`'Ԍ@o>!GWF[> ]"W-jpb~?tUYy~{0$\r@Gɢ%[o@d>G* KKn\=%uZސےI$/255DJÈmȥbJI ՞$L]o=.ƪqVsou)`cWT U܇eUHA`]w ݻzcnV &dNtka LRj\|&=4!%k:p8N5uǦx,,θlO!mB 3sAy=}FVgmx(/p6’ { .Ɉ k]co`jSض4iorMT빑rK.O НF"k"rWGN U/\&z);lZTBa%dP?>r_=e]yhgbx!am< wR.O~Em)Ay}%Cg.Age 柌/f6-1x0xeBt1riX M 1+:N{# Hss鴫E53 ޡTA>| ]xI@O8K X<;`zvɵ}YYQ]7*2/joЧ6iv^D&×اG'S#~k`F7ߌuUh4FiIM~5pkot^1qpt ˲iύP.:tj4Q &^6!^?S;cٺzV=?qfˣ80uF9R֚䇐(w9|зXn)ުGc=j*孻 Cr'ئJV] bd_!+\CKm'^:6H ! 8HVbxGpO [=odǭ@얪ǵS^[.kx#8XI\y2P=!,EE?UZLY* f(}:Zs)eS1cz, r&blQh:X l| eEC^"l%lmDR*NcYX68(-<ݸ)2,Ьt-'oJ9t8" 2]?P~k `@d l]VCʾ

Device cannot be recognized.

=========== HOW TO FIX ============

1. Disconnect all other similar devices from this computer.

2. Reconnect your Flipper.

3. If the problem persists, reboot Flipper into RECOVERY MODE and click REPAIR to perform a clean installation.

-----------------------------------

READ MORE
" readonly property string errorInvalidDeviceLinux: "

Device cannot be recognized.

=========== HOW TO FIX ============

1. Disconnect all other similar devices from this computer.

2. Grant user permissions to access Serial devices.

Run \"./qFlipper-x86_64-%1.AppImage rules install\" to do so automatically.

3. If the problem persists, reboot Flipper into RECOVERY MODE and click REPAIR to perform a clean installation.

-----------------------------------

READ MORE
".arg(App.version) readonly property string errorSerial: "

Cannot connect to Flipper. Device is busy.

=========== HOW TO FIX ============

1. Ensure that Flipper is not connected via Bluetooth or Terminal session.

2. Reconnect your Flipper.

-----------------------------------

READ MORE
" readonly property string errorSerialLinux: "

Cannot connect to Flipper. Device is busy.

=========== HOW TO FIX ============

1. Ensure that Flipper is not connected via Bluetooth or Terminal session.

2. Grant user permissions to access Serial devices.

Run \"./qFlipper-x86_64-%1.AppImage rules install\" to do so automatically.

3. Reconnect your Flipper.

-----------------------------------

READ MORE
".arg(App.version) readonly property string errorRecovery: "

Cannot connect to Flipper in Update & Recovery mode. Device not found.

=========== HOW TO FIX ============

1. Check that Flipper is in Update & Recovery mode.

2. Reconnect your Flipper.

3. Reboot Flipper to Flipper OS and try again.

-----------------------------------

READ MORE
" readonly property string errorRecoveryWindows: "

Cannot connect to Flipper in Update & Recovery mode. Device not found.

=========== HOW TO FIX ============

1. Check that Flipper is in Update & Recovery mode.

2. Reconnect your Flipper.

3. Reinstall qFlipper to update DFU device driver.

4. Reboot Flipper to Flipper OS and try again.

-----------------------------------

READ MORE
" readonly property string errorRecoveryLinux: "

Cannot connect to Flipper in Update & Recovery mode. Device not found.

=========== HOW TO FIX ============

1. Check that Flipper is in Update & Recovery mode.

2. Reconnect your Flipper.

3. Grant user permissions to access DFU devices.

Run \"./qFlipper-x86_64-%1.AppImage rules install\" to do so automatically.

4. Reboot Flipper to Flipper OS and try again.

-----------------------------------

READ MORE
".arg(App.version) readonly property string errorInternet: "

Cannot connect to update server.

=========== HOW TO FIX ============

1. Check your internet connection.

2. Ensure that the update server is not down.

3. Try updating again.

-----------------------------------

READ MORE
" readonly property string errorDisk: "

Can’t save or read files to/from the local filesystem.

=========== HOW TO FIX ============

1. Make sure that you have free space on your local drive.

2. Check that qFlipper has permissions to write on disk.

3. When applicable, make sure to point qFlipper to the right files/directores.

-----------------------------------

READ MORE
" readonly property string errorBackup: "

Can’t get data from Flipper. This may be caused by an internal error.

=========== HOW TO FIX ============

1. Close all other applications that may use Flipper.

2. Reboot your Flipper and reconnect via USB.

3. Run the operation again.

-----------------------------------

READ MORE
" readonly property string errorData: "

Necessary data seems to be damaged.

=========== HOW TO FIX ============

1. If applicable, make sure to point qFlipper to the right input file(s).

2. Reboot your Flipper and reconnect via USB.

3. Run the operation again.

-----------------------------------

READ MORE
" readonly property string errorOperation: "

Current operation was interrupted. Connection to device is lost.

=========== HOW TO FIX ============

1. Check USB connection.

2. Ensure that Flipper is not locked with PIN code.

3. Connect your Flipper in Update & Recovery mode and start repair.

-----------------------------------

READ MORE
" readonly property string errorUpdater: "

Firmware update could not be started.

=========== HOW TO FIX ============

1. See details in the logs below.

2. Resolve the problem if possible.

3. Try again.

4. If the error persists, file a bug report.

-----------------------------------

READ MORE
" readonly property string errorUnknown: "

An unknown error has occurred.

=========== HOW TO FIX ============

1. See details in the logs below.

2. Resolve the problem if possible.

3. Try again.

4. If the error persists, file a bug report.

-----------------------------------

READ MORE
" } flipperdevices-qFlipper-bfce851/application/imports/Misc/FileTypes.qml000066400000000000000000000010421452337521700263150ustar00rootroot00000000000000pragma Singleton import QtQuick 2.15 QtObject { readonly property var icons: { "ir" : "qrc:/assets/gfx/symbolic/mimetypes/infrared.svg", "nfc" : "qrc:/assets/gfx/symbolic/mimetypes/nfc.svg", "u2f" : "qrc:/assets/gfx/symbolic/mimetypes/u2f.svg", "sub" : "qrc:/assets/gfx/symbolic/mimetypes/subghz.svg", "rfid" : "qrc:/assets/gfx/symbolic/mimetypes/rfid.svg", "ibtn" : "qrc:/assets/gfx/symbolic/mimetypes/ibutton.svg", "default" : "qrc:/assets/gfx/symbolic/mimetypes/file.svg" } } flipperdevices-qFlipper-bfce851/application/imports/Misc/Mitigations.qml000066400000000000000000000014761452337521700267130ustar00rootroot00000000000000pragma Singleton import QtQuick 2.15 QtObject { // Workaround for QTBUG-107038 readonly property bool fontRenderingFix: { if(Qt.platform.os === "linux") { if(qVersionMajor === 0x06) { if(qVersionMinor === 0x02) { // Fix version: 6.2.7 (LTS) return qVersionPatch < 0x7; } else if(qVersionMinor === 0x04) { // Fix version: 6.4.1 return qVersionPatch < 0x1; } else { // Versions beyond 6.5.0 should not be affected return qVersionMinor < 5; } } else { // Qt 5 seems to be not affected return false; } } else { return false; } } } flipperdevices-qFlipper-bfce851/application/imports/Misc/qmldir000066400000000000000000000002111452337521700251060ustar00rootroot00000000000000module Misc singleton FileTypes 1.0 FileTypes.qml singleton ErrorStrings 1.0 ErrorStrings.qml singleton Mitigations 1.0 Mitigations.qml flipperdevices-qFlipper-bfce851/application/imports/Primitives/000077500000000000000000000000001452337521700251415ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/imports/Primitives/AdvancedRectangle.qml000066400000000000000000000024221452337521700312060ustar00rootroot00000000000000import QtQuick 2.15 Item { id: item property int radius: 0 property alias topRadius: topBg.radius property alias bottomRadius: bottomBg.radius property alias border: middle.border property alias color: middle.color topRadius: radius bottomRadius: radius border.width: 0 Rectangle { id: middle width: parent.width height: parent.height - top.height - bottom.height + 2 * border.width y: topRadius } Item { id: top clip: true width: parent.width height: topRadius + border.width Rectangle { id: topBg width: parent.width height: parent.height * 2 border.color: item.border.color border.width: item.border.width color: item.color } } Item { id: bottom clip: true width: parent.width height: bottomRadius + border.width y: middle.y + middle.height - border.width Rectangle { id: bottomBg y: -parent.height width: parent.width height: parent.height * 2 border.color: item.border.color border.width: item.border.width color: item.color } } } flipperdevices-qFlipper-bfce851/application/imports/Primitives/ColorSet.qml000066400000000000000000000002111452337521700274000ustar00rootroot00000000000000import QtQuick 2.15 QtObject { property color normal property color hover property color down property color disabled } flipperdevices-qFlipper-bfce851/application/imports/Primitives/qmldir000066400000000000000000000001301452337521700263460ustar00rootroot00000000000000module Primitives AdvancedRectangle 1.0 AdvancedRectangle.qml ColorSet 1.0 ColorSet.qml flipperdevices-qFlipper-bfce851/application/imports/Theme/000077500000000000000000000000001452337521700240505ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/imports/Theme/Theme.qml000066400000000000000000000032321452337521700256250ustar00rootroot00000000000000pragma Singleton import QtQuick 2.15 QtObject { readonly property var color: QtObject { readonly property color transparent: Qt.rgba(0, 0, 0, 0) readonly property color lightorange1: "#ff9722" readonly property color lightorange2: "#fe8a2c" readonly property color lightorange3: "#ce5300" readonly property color darkorange1: "#491d00" readonly property color darkorange2: "#3a1f10" readonly property color mediumorange1: "#9e5823" readonly property color mediumorange2: "#76380b" readonly property color mediumorange3: "#662c00" readonly property color mediumorange4: "#9b450b" readonly property color mediumorange5: "#9e4a12" readonly property color lightgreen: "#2ed832" readonly property color mediumgreen1: "#285b12" readonly property color mediumgreen2: "#203812" readonly property color darkgreen: "#0c160c" readonly property color lightblue: "#228cff" readonly property color mediumblue: "#143c66" readonly property color darkblue1: "#11355c" readonly property color darkblue2: "#152b47" readonly property color lightred1: "#ff5b27" readonly property color lightred2: "#ff5924" readonly property color lightred3: "#ff1f00" readonly property color lightred4: "#ff3c00" readonly property color mediumred1: "#953618" readonly property color mediumred2: "#672715" readonly property color darkred1: "#451a0e" readonly property color darkred2: "#331400" } readonly property var timing: QtObject { readonly property int toolTipDelay: 500 } } flipperdevices-qFlipper-bfce851/application/imports/Theme/qmldir000066400000000000000000000000531452337521700252610ustar00rootroot00000000000000module Theme singleton Theme 1.0 Theme.qml flipperdevices-qFlipper-bfce851/application/main.cpp000066400000000000000000000012571452337521700227460ustar00rootroot00000000000000#include "application.h" #include int main(int argc, char *argv[]) { QSettings::setDefaultFormat(QSettings::IniFormat); QCoreApplication::setApplicationName(APP_NAME); QCoreApplication::setApplicationVersion(APP_VERSION); QCoreApplication::setOrganizationName(QStringLiteral("Flipper Devices Inc")); QCoreApplication::setOrganizationDomain(QStringLiteral("flipperdevices.com")); #if QT_VERSION < 0x060000 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endif QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor); Application app(argc, argv); return app.exec(); } flipperdevices-qFlipper-bfce851/application/main.qml000066400000000000000000000032511452337521700227510ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Window 2.15 import QFlipper 1.0 import "components" Window { id: root visible: true flags: Qt.Window | Qt.FramelessWindowHint | Qt.NoDropShadowWindowHint title: Qt.application.displayName width: mainWindow.baseWidth + mainWindow.shadowSize * 2 height: mainWindow.baseHeight + mainWindow.shadowSize * 2 minimumWidth: mainWindow.baseWidth + mainWindow.shadowSize * 2 minimumHeight: mainWindow.baseHeight + mainWindow.shadowSize * 2 maximumWidth: minimumWidth maximumHeight: minimumHeight color: "transparent" MainWindow { id: mainWindow onExpandStarted: { root.maximumHeight = baseHeight + logHeight + shadowSize * 2; root.height = root.maximumHeight; } onExpandFinished: { root.minimumHeight = root.maximumHeight; } onCollapseStarted: { root.minimumHeight = baseHeight + shadowSize * 2; } onCollapseFinished: { root.height = root.minimumHeight; root.maximumHeight = root.minimumHeight; } onResizeStarted: { root.maximumHeight = root.Screen.height - root.y; root.height = root.maximumHeight; } onResizeFinished: { root.height = mainWindow.height + mainWindow.shadowSize * 2; root.maximumHeight = root.height; root.minimumHeight = root.height; } } Component.onCompleted: { App.messageReceived.connect(root.alert); mainWindow.controls.minimizeRequested.connect(root.showMinimized); mainWindow.controls.closeRequested.connect(Qt.quit); } } flipperdevices-qFlipper-bfce851/application/qml.qrc000066400000000000000000000177671452337521700226330ustar00rootroot00000000000000 main.qml assets/fonts/Born2bSportyV2.ttf assets/fonts/haxrcorp-4089.ttf imports/Theme/Theme.qml imports/Theme/qmldir assets/gfx/images/flipper.svg components/MainButton.qml components/GridBackground.qml assets/gfx/images/typec.svg assets/gfx/symbolic/arrow-up.svg assets/gfx/symbolic/arrow-down.svg components/HomeOverlay.qml components/NoDeviceOverlay.qml components/LinkButton.qml components/TransparentLabel.qml assets/gfx/symbolic/usb-connected.svg assets/gfx/symbolic/info.svg assets/gfx/symbolic/wrench.svg components/TabPane.qml components/TextLabel.qml components/DeviceInfo.qml components/DeviceActions.qml components/SmallButton.qml assets/gfx/symbolic/trashcan.svg assets/gfx/symbolic/update-symbolic.svg assets/gfx/symbolic/backup-symbolic.svg assets/gfx/symbolic/restore-symbolic.svg components/SmallButtonRed.qml components/WindowControls.qml assets/gfx/controls/mac/close.svg assets/gfx/controls/mac/minimize.svg assets/gfx/controls/mac/close_down.svg assets/gfx/controls/mac/close_hover.svg assets/gfx/controls/mac/minimize_down.svg assets/gfx/controls/mac/minimize_hover.svg assets/gfx/controls/windows/close_down.svg assets/gfx/controls/windows/close_hover.svg assets/gfx/controls/windows/close.svg assets/gfx/controls/windows/minimize_down.svg assets/gfx/controls/windows/minimize_hover.svg assets/gfx/controls/windows/minimize.svg components/MainWindow.qml components/ChannelDelegate.qml components/UpdateOverlay.qml components/CustomDialog.qml components/ConfirmationDialog.qml assets/gfx/symbolic/info-small.svg components/StatusBar.qml components/DeviceWidget.qml assets/gfx/images/recovery.svg assets/gfx/images/default.svg components/ChangelogDialog.qml components/ExpandWidget.qml assets/gfx/symbolic/arrow-expand.svg components/StreamOverlay.qml assets/gfx/symbolic/arrow-back.svg components/DirectionalKeypad.qml components/ImageButton.qml assets/gfx/controls/dpad/circle.svg assets/gfx/controls/dpad/circle_down.svg assets/gfx/controls/dpad/circle_hover.svg assets/gfx/controls/dpad/triangle.svg assets/gfx/controls/dpad/triangle_down.svg assets/gfx/controls/dpad/triangle_hover.svg assets/gfx/controls/dpad/back_down.svg assets/gfx/controls/dpad/back_hover.svg assets/gfx/controls/dpad/back.svg components/KeypadButton.qml assets/fonts/ProggySquare.ttf assets/fonts/ShareTechMono-Regular.ttf components/TextView.qml components/AbstractOverlay.qml imports/Primitives/qmldir imports/Primitives/AdvancedRectangle.qml assets/gfx/symbolic/save-symbolic.svg assets/gfx/symbolic/info-big.svg assets/gfx/images/streaming-help.svg components/FinishOverlay.qml components/SelfUpdateDialog.qml assets/gfx/images/alert-badge.svg assets/gfx/images/success.svg components/DeveloperActions.qml assets/gfx/images/error-access.svg assets/gfx/images/error-client.svg assets/gfx/images/error-cross-eyes.svg assets/gfx/images/error-exclamation.svg assets/gfx/images/error-internet.svg assets/gfx/images/warning-sdcard.svg components/TextBox.qml assets/gfx/images/spinner.svg assets/gfx/symbolic/developer-mode.svg assets/icons/qFlipper.icns assets/icons/qFlipper.ico assets/icons/qFlipper.png assets/gfx/symbolic/file-symbolic.svg components/FileManager.qml components/FileManagerDelegate.qml assets/gfx/symbolic/arrow-back-small.svg assets/gfx/symbolic/arrow-forward-small.svg assets/gfx/symbolic/refresh-small.svg assets/gfx/symbolic/mimetypes/badusb.svg assets/gfx/symbolic/mimetypes/file.svg assets/gfx/symbolic/mimetypes/folder.svg assets/gfx/symbolic/mimetypes/ibutton.svg assets/gfx/symbolic/mimetypes/infrared.svg assets/gfx/symbolic/mimetypes/internal.svg assets/gfx/symbolic/mimetypes/nfc.svg assets/gfx/symbolic/mimetypes/rfid.svg assets/gfx/symbolic/mimetypes/sdcard.svg assets/gfx/symbolic/mimetypes/subghz.svg assets/gfx/symbolic/mimetypes/u2f.svg assets/gfx/symbolic/filemgr/action-new.svg assets/gfx/symbolic/filemgr/action-remove.svg assets/gfx/symbolic/filemgr/action-rename.svg assets/gfx/symbolic/filemgr/location-internal.svg assets/gfx/symbolic/filemgr/location-sdcard.svg components/ProgressDialog.qml imports/Misc/qmldir imports/Misc/FileTypes.qml imports/Misc/ErrorStrings.qml assets/fonts/ShareTech-Regular.ttf assets/gfx/symbolic/filemgr/action-upload.svg assets/gfx/symbolic/filemgr/action-download.svg assets/gfx/images/streaming-help-mac.svg components/SDWarningDialog.qml assets/gfx/images/warning-no-sdcard.svg styles/DefaultAmber/Button.qml styles/DefaultAmber/ComboBox.qml styles/DefaultAmber/Dialog.qml styles/DefaultAmber/DialogButtonBox.qml styles/DefaultAmber/IconLabelEx.qml styles/DefaultAmber/Menu.qml styles/DefaultAmber/MenuItem.qml styles/DefaultAmber/MenuSeparator.qml styles/DefaultAmber/ProgressBar.qml styles/DefaultAmber/qmldir styles/DefaultAmber/ScrollBar.qml styles/DefaultAmber/ScrollView.qml styles/DefaultAmber/Switch.qml styles/DefaultAmber/TabBar.qml styles/DefaultAmber/TabButton.qml styles/DefaultAmber/ToolTip.qml imports/Primitives/ColorSet.qml components/WindowShadow.qml assets/gfx/effects/window-shadow.png imports/Misc/Mitigations.qml components/MessageDialog.qml flipperdevices-qFlipper-bfce851/application/qtsingleapplication/000077500000000000000000000000001452337521700253635ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtlocalpeer.cpp000066400000000000000000000155051452337521700304100ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtlocalpeer.h" #include #include #include #include #if defined(Q_OS_WIN) #include #include typedef BOOL(WINAPI*PProcessIdToSessionId)(DWORD,DWORD*); static PProcessIdToSessionId pProcessIdToSessionId = 0; #endif #if defined(Q_OS_UNIX) #include #include #include #endif namespace QtLP_Private { #include "qtlockedfile.cpp" #if defined(Q_OS_WIN) #include "qtlockedfile_win.cpp" #else #include "qtlockedfile_unix.cpp" #endif } const char* QtLocalPeer::ack = "ack"; QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId) : QObject(parent), id(appId) { QString prefix = id; if (id.isEmpty()) { id = QCoreApplication::applicationFilePath(); #if defined(Q_OS_WIN) id = id.toLower(); #endif prefix = id.section(QLatin1Char('/'), -1); } prefix.remove(QRegularExpression("[^a-zA-Z]")); prefix.truncate(6); QByteArray idc = id.toUtf8(); quint16 idNum = qChecksum(idc.constData(), idc.size()); socketName = QLatin1String("qtsingleapp-") + prefix + QLatin1Char('-') + QString::number(idNum, 16); #if defined(Q_OS_WIN) if (!pProcessIdToSessionId) { QLibrary lib("kernel32"); pProcessIdToSessionId = (PProcessIdToSessionId)lib.resolve("ProcessIdToSessionId"); } if (pProcessIdToSessionId) { DWORD sessionId = 0; pProcessIdToSessionId(GetCurrentProcessId(), &sessionId); socketName += QLatin1Char('-') + QString::number(sessionId, 16); } #else socketName += QLatin1Char('-') + QString::number(::getuid(), 16); #endif server = new QLocalServer(this); QString lockName = QDir(QDir::tempPath()).absolutePath() + QLatin1Char('/') + socketName + QLatin1String("-lockfile"); lockFile.setFileName(lockName); lockFile.open(QIODevice::ReadWrite); } bool QtLocalPeer::isClient() { if (lockFile.isLocked()) return false; if (!lockFile.lock(QtLP_Private::QtLockedFile::WriteLock, false)) return true; bool res = server->listen(socketName); #if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(4,5,0)) // ### Workaround if (!res && server->serverError() == QAbstractSocket::AddressInUseError) { QFile::remove(QDir::cleanPath(QDir::tempPath())+QLatin1Char('/')+socketName); res = server->listen(socketName); } #endif if (!res) qWarning("QtSingleCoreApplication: listen on local socket failed, %s", qPrintable(server->errorString())); QObject::connect(server, SIGNAL(newConnection()), SLOT(receiveConnection())); return false; } bool QtLocalPeer::sendMessage(const QString &message, int timeout) { if (!isClient()) return false; QLocalSocket socket; bool connOk = false; for(int i = 0; i < 2; i++) { // Try twice, in case the other instance is just starting up socket.connectToServer(socketName); connOk = socket.waitForConnected(timeout/2); if (connOk || i) break; int ms = 250; #if defined(Q_OS_WIN) Sleep(DWORD(ms)); #else struct timespec ts = { ms / 1000, (ms % 1000) * 1000 * 1000 }; nanosleep(&ts, NULL); #endif } if (!connOk) return false; QByteArray uMsg(message.toUtf8()); QDataStream ds(&socket); ds.writeBytes(uMsg.constData(), uMsg.size()); bool res = socket.waitForBytesWritten(timeout); if (res) { res &= socket.waitForReadyRead(timeout); // wait for ack if (res) res &= (socket.read(qstrlen(ack)) == ack); } return res; } void QtLocalPeer::receiveConnection() { QLocalSocket* socket = server->nextPendingConnection(); if (!socket) return; while (true) { if (socket->state() == QLocalSocket::UnconnectedState) { qWarning("QtLocalPeer: Peer disconnected"); delete socket; return; } if (socket->bytesAvailable() >= qint64(sizeof(quint32))) break; socket->waitForReadyRead(); } QDataStream ds(socket); QByteArray uMsg; quint32 remaining; ds >> remaining; uMsg.resize(remaining); int got = 0; char* uMsgBuf = uMsg.data(); do { got = ds.readRawData(uMsgBuf, remaining); remaining -= got; uMsgBuf += got; } while (remaining && got >= 0 && socket->waitForReadyRead(2000)); if (got < 0) { qWarning("QtLocalPeer: Message reception failed %s", socket->errorString().toLatin1().constData()); delete socket; return; } QString message(QString::fromUtf8(uMsg)); socket->write(ack, qstrlen(ack)); socket->waitForBytesWritten(1000); socket->waitForDisconnected(1000); // make sure client reads ack delete socket; emit messageReceived(message); //### (might take a long time to return) } flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtlocalpeer.h000066400000000000000000000052051452337521700300510ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTLOCALPEER_H #define QTLOCALPEER_H #include #include #include #include "qtlockedfile.h" class QtLocalPeer : public QObject { Q_OBJECT public: QtLocalPeer(QObject *parent = 0, const QString &appId = QString()); bool isClient(); bool sendMessage(const QString &message, int timeout); QString applicationId() const { return id; } Q_SIGNALS: void messageReceived(const QString &message); protected Q_SLOTS: void receiveConnection(); protected: QString id; QString socketName; QLocalServer* server; QtLP_Private::QtLockedFile lockFile; private: static const char* ack; }; #endif // QTLOCALPEER_H flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtlockedfile.cpp000066400000000000000000000137441452337521700305460ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtlockedfile.h" /*! \class QtLockedFile \brief The QtLockedFile class extends QFile with advisory locking functions. A file may be locked in read or write mode. Multiple instances of \e QtLockedFile, created in multiple processes running on the same machine, may have a file locked in read mode. Exactly one instance may have it locked in write mode. A read and a write lock cannot exist simultaneously on the same file. The file locks are advisory. This means that nothing prevents another process from manipulating a locked file using QFile or file system functions offered by the OS. Serialization is only guaranteed if all processes that access the file use QLockedFile. Also, while holding a lock on a file, a process must not open the same file again (through any API), or locks can be unexpectedly lost. The lock provided by an instance of \e QtLockedFile is released whenever the program terminates. This is true even when the program crashes and no destructors are called. */ /*! \enum QtLockedFile::LockMode This enum describes the available lock modes. \value ReadLock A read lock. \value WriteLock A write lock. \value NoLock Neither a read lock nor a write lock. */ /*! Constructs an unlocked \e QtLockedFile object. This constructor behaves in the same way as \e QFile::QFile(). \sa QFile::QFile() */ QtLockedFile::QtLockedFile() : QFile() { #ifdef Q_OS_WIN wmutex = 0; rmutex = 0; #endif m_lock_mode = NoLock; } /*! Constructs an unlocked QtLockedFile object with file \a name. This constructor behaves in the same way as \e QFile::QFile(const QString&). \sa QFile::QFile() */ QtLockedFile::QtLockedFile(const QString &name) : QFile(name) { #ifdef Q_OS_WIN wmutex = 0; rmutex = 0; #endif m_lock_mode = NoLock; } /*! Opens the file in OpenMode \a mode. This is identical to QFile::open(), with the one exception that the Truncate mode flag is disallowed. Truncation would conflict with the advisory file locking, since the file would be modified before the write lock is obtained. If truncation is required, use resize(0) after obtaining the write lock. Returns true if successful; otherwise false. \sa QFile::open(), QFile::resize() */ bool QtLockedFile::open(OpenMode mode) { if (mode & QIODevice::Truncate) { qWarning("QtLockedFile::open(): Truncate mode not allowed."); return false; } return QFile::open(mode); } /*! Returns \e true if this object has a in read or write lock; otherwise returns \e false. \sa lockMode() */ bool QtLockedFile::isLocked() const { return m_lock_mode != NoLock; } /*! Returns the type of lock currently held by this object, or \e QtLockedFile::NoLock. \sa isLocked() */ QtLockedFile::LockMode QtLockedFile::lockMode() const { return m_lock_mode; } /*! \fn bool QtLockedFile::lock(LockMode mode, bool block = true) Obtains a lock of type \a mode. The file must be opened before it can be locked. If \a block is true, this function will block until the lock is acquired. If \a block is false, this function returns \e false immediately if the lock cannot be acquired. If this object already has a lock of type \a mode, this function returns \e true immediately. If this object has a lock of a different type than \a mode, the lock is first released and then a new lock is obtained. This function returns \e true if, after it executes, the file is locked by this object, and \e false otherwise. \sa unlock(), isLocked(), lockMode() */ /*! \fn bool QtLockedFile::unlock() Releases a lock. If the object has no lock, this function returns immediately. This function returns \e true if, after it executes, the file is not locked by this object, and \e false otherwise. \sa lock(), isLocked(), lockMode() */ /*! \fn QtLockedFile::~QtLockedFile() Destroys the \e QtLockedFile object. If any locks were held, they are released. */ flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtlockedfile.h000066400000000000000000000063071452337521700302100ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTLOCKEDFILE_H #define QTLOCKEDFILE_H #include #ifdef Q_OS_WIN #include #endif #if defined(Q_OS_WIN) # if !defined(QT_QTLOCKEDFILE_EXPORT) && !defined(QT_QTLOCKEDFILE_IMPORT) # define QT_QTLOCKEDFILE_EXPORT # elif defined(QT_QTLOCKEDFILE_IMPORT) # if defined(QT_QTLOCKEDFILE_EXPORT) # undef QT_QTLOCKEDFILE_EXPORT # endif # define QT_QTLOCKEDFILE_EXPORT __declspec(dllimport) # elif defined(QT_QTLOCKEDFILE_EXPORT) # undef QT_QTLOCKEDFILE_EXPORT # define QT_QTLOCKEDFILE_EXPORT __declspec(dllexport) # endif #else # define QT_QTLOCKEDFILE_EXPORT #endif namespace QtLP_Private { class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile { public: enum LockMode { NoLock = 0, ReadLock, WriteLock }; QtLockedFile(); QtLockedFile(const QString &name); ~QtLockedFile(); bool open(OpenMode mode); bool lock(LockMode mode, bool block = true); bool unlock(); bool isLocked() const; LockMode lockMode() const; private: #ifdef Q_OS_WIN Qt::HANDLE wmutex; Qt::HANDLE rmutex; QVector rmutexes; QString mutexname; Qt::HANDLE getMutexHandle(int idx, bool doCreate); bool waitMutex(Qt::HANDLE mutex, bool doBlock); #endif LockMode m_lock_mode; }; } #endif flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtlockedfile_unix.cpp000066400000000000000000000066141452337521700316070ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include #include #include #include "qtlockedfile.h" bool QtLockedFile::lock(LockMode mode, bool block) { if (!isOpen()) { qWarning("QtLockedFile::lock(): file is not opened"); return false; } if (mode == NoLock) return unlock(); if (mode == m_lock_mode) return true; if (m_lock_mode != NoLock) unlock(); struct flock fl; fl.l_whence = SEEK_SET; fl.l_start = 0; fl.l_len = 0; fl.l_type = (mode == ReadLock) ? F_RDLCK : F_WRLCK; int cmd = block ? F_SETLKW : F_SETLK; int ret = fcntl(handle(), cmd, &fl); if (ret == -1) { if (errno != EINTR && errno != EAGAIN) qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); return false; } m_lock_mode = mode; return true; } bool QtLockedFile::unlock() { if (!isOpen()) { qWarning("QtLockedFile::unlock(): file is not opened"); return false; } if (!isLocked()) return true; struct flock fl; fl.l_whence = SEEK_SET; fl.l_start = 0; fl.l_len = 0; fl.l_type = F_UNLCK; int ret = fcntl(handle(), F_SETLKW, &fl); if (ret == -1) { qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); return false; } m_lock_mode = NoLock; return true; } QtLockedFile::~QtLockedFile() { if (isOpen()) unlock(); } flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtlockedfile_win.cpp000066400000000000000000000146611452337521700314220ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtlockedfile.h" #include #include #define MUTEX_PREFIX "QtLockedFile mutex " // Maximum number of concurrent read locks. Must not be greater than MAXIMUM_WAIT_OBJECTS #define MAX_READERS MAXIMUM_WAIT_OBJECTS #if QT_VERSION >= 0x050000 #define QT_WA(unicode, ansi) unicode #endif Qt::HANDLE QtLockedFile::getMutexHandle(int idx, bool doCreate) { if (mutexname.isEmpty()) { QFileInfo fi(*this); mutexname = QString::fromLatin1(MUTEX_PREFIX) + fi.absoluteFilePath().toLower(); } QString mname(mutexname); if (idx >= 0) mname += QString::number(idx); Qt::HANDLE mutex; if (doCreate) { QT_WA( { mutex = CreateMutexW(NULL, FALSE, (TCHAR*)mname.utf16()); }, { mutex = CreateMutexA(NULL, FALSE, mname.toLocal8Bit().constData()); } ); if (!mutex) { qErrnoWarning("QtLockedFile::lock(): CreateMutex failed"); return 0; } } else { QT_WA( { mutex = OpenMutexW(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, (TCHAR*)mname.utf16()); }, { mutex = OpenMutexA(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, mname.toLocal8Bit().constData()); } ); if (!mutex) { if (GetLastError() != ERROR_FILE_NOT_FOUND) qErrnoWarning("QtLockedFile::lock(): OpenMutex failed"); return 0; } } return mutex; } bool QtLockedFile::waitMutex(Qt::HANDLE mutex, bool doBlock) { Q_ASSERT(mutex); DWORD res = WaitForSingleObject(mutex, doBlock ? INFINITE : 0); switch (res) { case WAIT_OBJECT_0: case WAIT_ABANDONED: return true; break; case WAIT_TIMEOUT: break; default: qErrnoWarning("QtLockedFile::lock(): WaitForSingleObject failed"); } return false; } bool QtLockedFile::lock(LockMode mode, bool block) { if (!isOpen()) { qWarning("QtLockedFile::lock(): file is not opened"); return false; } if (mode == NoLock) return unlock(); if (mode == m_lock_mode) return true; if (m_lock_mode != NoLock) unlock(); if (!wmutex && !(wmutex = getMutexHandle(-1, true))) return false; if (!waitMutex(wmutex, block)) return false; if (mode == ReadLock) { int idx = 0; for (; idx < MAX_READERS; idx++) { rmutex = getMutexHandle(idx, false); if (!rmutex || waitMutex(rmutex, false)) break; CloseHandle(rmutex); } bool ok = true; if (idx >= MAX_READERS) { qWarning("QtLockedFile::lock(): too many readers"); rmutex = 0; ok = false; } else if (!rmutex) { rmutex = getMutexHandle(idx, true); if (!rmutex || !waitMutex(rmutex, false)) ok = false; } if (!ok && rmutex) { CloseHandle(rmutex); rmutex = 0; } ReleaseMutex(wmutex); if (!ok) return false; } else { Q_ASSERT(rmutexes.isEmpty()); for (int i = 0; i < MAX_READERS; i++) { Qt::HANDLE mutex = getMutexHandle(i, false); if (mutex) rmutexes.append(mutex); } if (rmutexes.size()) { DWORD res = WaitForMultipleObjects(rmutexes.size(), rmutexes.constData(), TRUE, block ? INFINITE : 0); if (res != WAIT_OBJECT_0 && res != WAIT_ABANDONED) { if (res != WAIT_TIMEOUT) qErrnoWarning("QtLockedFile::lock(): WaitForMultipleObjects failed"); m_lock_mode = WriteLock; // trick unlock() to clean up - semiyucky unlock(); return false; } } } m_lock_mode = mode; return true; } bool QtLockedFile::unlock() { if (!isOpen()) { qWarning("QtLockedFile::unlock(): file is not opened"); return false; } if (!isLocked()) return true; if (m_lock_mode == ReadLock) { ReleaseMutex(rmutex); CloseHandle(rmutex); rmutex = 0; } else { foreach(Qt::HANDLE mutex, rmutexes) { ReleaseMutex(mutex); CloseHandle(mutex); } rmutexes.clear(); ReleaseMutex(wmutex); } m_lock_mode = QtLockedFile::NoLock; return true; } QtLockedFile::~QtLockedFile() { if (isOpen()) unlock(); if (wmutex) CloseHandle(wmutex); } flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtsingleapplication.cpp000066400000000000000000000270131452337521700321440ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtsingleapplication.h" #include "qtlocalpeer.h" #include /*! \class QtSingleApplication qtsingleapplication.h \brief The QtSingleApplication class provides an API to detect and communicate with running instances of an application. This class allows you to create applications where only one instance should be running at a time. I.e., if the user tries to launch another instance, the already running instance will be activated instead. Another usecase is a client-server system, where the first started instance will assume the role of server, and the later instances will act as clients of that server. By default, the full path of the executable file is used to determine whether two processes are instances of the same application. You can also provide an explicit identifier string that will be compared instead. The application should create the QtSingleApplication object early in the startup phase, and call isRunning() to find out if another instance of this application is already running. If isRunning() returns false, it means that no other instance is running, and this instance has assumed the role as the running instance. In this case, the application should continue with the initialization of the application user interface before entering the event loop with exec(), as normal. The messageReceived() signal will be emitted when the running application receives messages from another instance of the same application. When a message is received it might be helpful to the user to raise the application so that it becomes visible. To facilitate this, QtSingleApplication provides the setActivationWindow() function and the activateWindow() slot. If isRunning() returns true, another instance is already running. It may be alerted to the fact that another instance has started by using the sendMessage() function. Also data such as startup parameters (e.g. the name of the file the user wanted this new instance to open) can be passed to the running instance with this function. Then, the application should terminate (or enter client mode). If isRunning() returns true, but sendMessage() fails, that is an indication that the running instance is frozen. Here's an example that shows how to convert an existing application to use QtSingleApplication. It is very simple and does not make use of all QtSingleApplication's functionality (see the examples for that). \code // Original int main(int argc, char **argv) { QApplication app(argc, argv); MyMainWidget mmw; mmw.show(); return app.exec(); } // Single instance int main(int argc, char **argv) { QtSingleApplication app(argc, argv); if (app.isRunning()) return !app.sendMessage(someDataString); MyMainWidget mmw; app.setActivationWindow(&mmw); mmw.show(); return app.exec(); } \endcode Once this QtSingleApplication instance is destroyed (normally when the process exits or crashes), when the user next attempts to run the application this instance will not, of course, be encountered. The next instance to call isRunning() or sendMessage() will assume the role as the new running instance. For console (non-GUI) applications, QtSingleCoreApplication may be used instead of this class, to avoid the dependency on the QtGui library. \sa QtSingleCoreApplication */ void QtSingleApplication::sysInit(const QString &appId) { actWin = 0; peer = new QtLocalPeer(this, appId); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Creates a QtSingleApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc, \a argv, and \a GUIenabled are passed on to the QApplication constructor. If you are creating a console application (i.e. setting \a GUIenabled to false), you may consider using QtSingleCoreApplication instead. */ QtSingleApplication::QtSingleApplication(int &argc, char **argv, bool GUIenabled) : QApplication(argc, argv, GUIenabled) { sysInit(); } /*! Creates a QtSingleApplication object with the application identifier \a appId. \a argc and \a argv are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(const QString &appId, int &argc, char **argv) : QApplication(argc, argv) { sysInit(appId); } #if QT_VERSION < 0x050000 /*! Creates a QtSingleApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc, \a argv, and \a type are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(int &argc, char **argv, Type type) : QApplication(argc, argv, type) { sysInit(); } # if defined(Q_WS_X11) /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be QCoreApplication::applicationFilePath(). \a dpy, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display* dpy, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, visual, cmap) { sysInit(); } /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be QCoreApplication::applicationFilePath(). \a dpy, \a argc, \a argv, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, argc, argv, visual, cmap) { sysInit(); } /*! Special constructor for X11, ref. the documentation of QApplication's corresponding constructor. The application identifier will be \a appId. \a dpy, \a argc, \a argv, \a visual, and \a cmap are passed on to the QApplication constructor. */ QtSingleApplication::QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) : QApplication(dpy, argc, argv, visual, cmap) { sysInit(appId); } # endif // Q_WS_X11 #endif // QT_VERSION < 0x050000 /*! Returns true if another instance of this application is running; otherwise false. This function does not find instances of this application that are being run by a different user (on Windows: that are running in another session). \sa sendMessage() */ bool QtSingleApplication::isRunning() { return peer->isClient(); } /*! Tries to send the text \a message to the currently running instance. The QtSingleApplication object in the running instance will emit the messageReceived() signal when it receives the message. This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within \a timeout milliseconds, this function return false. \sa isRunning(), messageReceived() */ bool QtSingleApplication::sendMessage(const QString &message, int timeout) { return peer->sendMessage(message, timeout); } /*! Returns the application identifier. Two processes with the same identifier will be regarded as instances of the same application. */ QString QtSingleApplication::id() const { return peer->applicationId(); } /*! Sets the activation window of this application to \a aw. The activation window is the widget that will be activated by activateWindow(). This is typically the application's main window. If \a activateOnMessage is true (the default), the window will be activated automatically every time a message is received, just prior to the messageReceived() signal being emitted. \sa activateWindow(), messageReceived() */ void QtSingleApplication::setActivationWindow(QWidget* aw, bool activateOnMessage) { actWin = aw; if (activateOnMessage) connect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); else disconnect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); } /*! Returns the applications activation window if one has been set by calling setActivationWindow(), otherwise returns 0. \sa setActivationWindow() */ QWidget* QtSingleApplication::activationWindow() const { return actWin; } /*! De-minimizes, raises, and activates this application's activation window. This function does nothing if no activation window has been set. This is a convenience function to show the user that this application instance has been activated when he has tried to start another instance. This function should typically be called in response to the messageReceived() signal. By default, that will happen automatically, if an activation window has been set. \sa setActivationWindow(), messageReceived(), initialize() */ void QtSingleApplication::activateWindow() { if (actWin) { actWin->setWindowState(actWin->windowState() & ~Qt::WindowMinimized); actWin->raise(); actWin->activateWindow(); } } /*! \fn void QtSingleApplication::messageReceived(const QString& message) This signal is emitted when the current instance receives a \a message from another instance of this application. \sa sendMessage(), setActivationWindow(), activateWindow() */ /*! \fn void QtSingleApplication::initialize(bool dummy = true) \obsolete */ flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtsingleapplication.h000066400000000000000000000076171452337521700316210ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTSINGLEAPPLICATION_H #define QTSINGLEAPPLICATION_H #include class QtLocalPeer; #if defined(Q_OS_WIN) # if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT) # define QT_QTSINGLEAPPLICATION_EXPORT # elif defined(QT_QTSINGLEAPPLICATION_IMPORT) # if defined(QT_QTSINGLEAPPLICATION_EXPORT) # undef QT_QTSINGLEAPPLICATION_EXPORT # endif # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllimport) # elif defined(QT_QTSINGLEAPPLICATION_EXPORT) # undef QT_QTSINGLEAPPLICATION_EXPORT # define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllexport) # endif #else # define QT_QTSINGLEAPPLICATION_EXPORT #endif class QT_QTSINGLEAPPLICATION_EXPORT QtSingleApplication : public QApplication { Q_OBJECT public: QtSingleApplication(int &argc, char **argv, bool GUIenabled = true); QtSingleApplication(const QString &id, int &argc, char **argv); #if QT_VERSION < 0x050000 QtSingleApplication(int &argc, char **argv, Type type); # if defined(Q_WS_X11) QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0); QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); # endif // Q_WS_X11 #endif // QT_VERSION < 0x050000 bool isRunning(); QString id() const; void setActivationWindow(QWidget* aw, bool activateOnMessage = true); QWidget* activationWindow() const; // Obsolete: void initialize(bool dummy = true) { isRunning(); Q_UNUSED(dummy) } public Q_SLOTS: bool sendMessage(const QString &message, int timeout = 5000); void activateWindow(); Q_SIGNALS: void messageReceived(const QString &message); private: void sysInit(const QString &appId = QString()); QtLocalPeer *peer; QWidget *actWin; }; #endif // QTSINGLEAPPLICATION_H flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtsinglecoreapplication.cpp000066400000000000000000000123571452337521700330220ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtsinglecoreapplication.h" #include "qtlocalpeer.h" /*! \class QtSingleCoreApplication qtsinglecoreapplication.h \brief A variant of the QtSingleApplication class for non-GUI applications. This class is a variant of QtSingleApplication suited for use in console (non-GUI) applications. It is an extension of QCoreApplication (instead of QApplication). It does not require the QtGui library. The API and usage is identical to QtSingleApplication, except that functions relating to the "activation window" are not present, for obvious reasons. Please refer to the QtSingleApplication documentation for explanation of the usage. A QtSingleCoreApplication instance can communicate to a QtSingleApplication instance if they share the same application id. Hence, this class can be used to create a light-weight command-line tool that sends commands to a GUI application. \sa QtSingleApplication */ /*! Creates a QtSingleCoreApplication object. The application identifier will be QCoreApplication::applicationFilePath(). \a argc and \a argv are passed on to the QCoreApplication constructor. */ QtSingleCoreApplication::QtSingleCoreApplication(int &argc, char **argv) : QCoreApplication(argc, argv) { peer = new QtLocalPeer(this); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Creates a QtSingleCoreApplication object with the application identifier \a appId. \a argc and \a argv are passed on to the QCoreApplication constructor. */ QtSingleCoreApplication::QtSingleCoreApplication(const QString &appId, int &argc, char **argv) : QCoreApplication(argc, argv) { peer = new QtLocalPeer(this, appId); connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); } /*! Returns true if another instance of this application is running; otherwise false. This function does not find instances of this application that are being run by a different user (on Windows: that are running in another session). \sa sendMessage() */ bool QtSingleCoreApplication::isRunning() { return peer->isClient(); } /*! Tries to send the text \a message to the currently running instance. The QtSingleCoreApplication object in the running instance will emit the messageReceived() signal when it receives the message. This function returns true if the message has been sent to, and processed by, the current instance. If there is no instance currently running, or if the running instance fails to process the message within \a timeout milliseconds, this function return false. \sa isRunning(), messageReceived() */ bool QtSingleCoreApplication::sendMessage(const QString &message, int timeout) { return peer->sendMessage(message, timeout); } /*! Returns the application identifier. Two processes with the same identifier will be regarded as instances of the same application. */ QString QtSingleCoreApplication::id() const { return peer->applicationId(); } /*! \fn void QtSingleCoreApplication::messageReceived(const QString& message) This signal is emitted when the current instance receives a \a message from another instance of this application. \sa sendMessage() */ flipperdevices-qFlipper-bfce851/application/qtsingleapplication/qtsinglecoreapplication.h000066400000000000000000000050251452337521700324610ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the Qt Solutions component. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names ** of its contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTSINGLECOREAPPLICATION_H #define QTSINGLECOREAPPLICATION_H #include class QtLocalPeer; class QtSingleCoreApplication : public QCoreApplication { Q_OBJECT public: QtSingleCoreApplication(int &argc, char **argv); QtSingleCoreApplication(const QString &id, int &argc, char **argv); bool isRunning(); QString id() const; public Q_SLOTS: bool sendMessage(const QString &message, int timeout = 5000); Q_SIGNALS: void messageReceived(const QString &message); private: QtLocalPeer* peer; }; #endif // QTSINGLECOREAPPLICATION_H flipperdevices-qFlipper-bfce851/application/screencanvas.cpp000066400000000000000000000122641452337521700244750ustar00rootroot00000000000000#include "screencanvas.h" #include #include #include #include ScreenCanvas::ScreenCanvas(QQuickItem *parent): QQuickPaintedItem(parent), m_foreground(QColor(0x00, 0x00, 0x00)), m_background(QColor(0xFF, 0xFF, 0xFF)), m_canvas(QImage(1, 1, QImage::Format_RGB32)), m_zoomFactor(1.0), m_orientation(Qt::LandscapeOrientation) { connect(this, &ScreenCanvas::zoomFactorChanged, this, &ScreenCanvas::updateImplicitSize); connect(this, &ScreenCanvas::canvasSizeChanged, this, &ScreenCanvas::updateImplicitSize); } const ScreenFrame &ScreenCanvas::frame() const { static const ScreenFrame dummy {}; return dummy; } void ScreenCanvas::setFrame(const ScreenFrame &frame) { if(frame.pixelData.isEmpty() || frame.size.isEmpty()) { return; } setCanvasSize(frame.size); setCanvasOrientation(frame.orientation); for (auto x = 0; x < m_canvas.width(); x++) { for (auto y = 0; y < m_canvas.height(); y++) { const auto i = y / 8 * m_canvas.width() + x; const auto z = y % 8; const auto color = ((frame.pixelData.at(i) & (1 << z))) ? m_foreground : m_background; m_canvas.setPixelColor(x, y, color); } } update(); } void ScreenCanvas::paint(QPainter *painter) { painter->drawImage(canvasRect(), m_canvas.transformed(canvasTransform())); } qreal ScreenCanvas::zoomFactor() const { return m_zoomFactor; } void ScreenCanvas::setZoomFactor(qreal zoom) { if(qFuzzyCompare(m_zoomFactor, zoom)) { return; } m_zoomFactor = zoom; emit zoomFactorChanged(); } const QColor &ScreenCanvas::foregroundColor() const { return m_foreground; } void ScreenCanvas::setForegroundColor(const QColor &color) { if(color == m_foreground) { return; } m_foreground = color; emit foregroundColorChanged(); } const QColor &ScreenCanvas::backgroundColor() const { return m_background; } void ScreenCanvas::setBackgroundColor(const QColor &color) { if(color == m_background) { return; } m_background = color; emit backgroundColorChanged(); } bool ScreenCanvas::saveImage(const QUrl &url, int scale) { return canvas(scale).save(url.toLocalFile()); } void ScreenCanvas::copyToClipboard(int scale) { qGuiApp->clipboard()->setImage(canvas(scale)); } void ScreenCanvas::updateImplicitSize() { setImplicitSize(m_zoomFactor * m_canvas.width(), m_zoomFactor * m_canvas.height()); } void ScreenCanvas::setCanvasSize(const QSize &size) { if(size == m_canvas.size()) { return; } m_canvas = QImage(size, QImage::Format_RGB32); m_canvas.fill(m_background); emit canvasSizeChanged(); } void ScreenCanvas::setCanvasOrientation(Qt::ScreenOrientation orientation) { m_orientation = orientation; } QTransform ScreenCanvas::canvasTransform() const { switch (m_orientation) { case Qt::InvertedLandscapeOrientation: return QTransform().rotate(180); case Qt::PortraitOrientation: return QTransform().rotate(isLandscapeOnly() ? 0 : 90); case Qt::InvertedPortraitOrientation: return QTransform().rotate(isLandscapeOnly() ? 180 : -90); case Qt::LandscapeOrientation: default: return QTransform(); } } QRectF ScreenCanvas::canvasRect() const { const auto totalWidth = boundingRect().width(); const auto totalHeight = boundingRect().height(); const auto isRegular = isLandscapeOrientation() || isLandscapeOnly(); const auto canvasWidth = isRegular ? m_canvas.width() : m_canvas.height(); const auto canvasHeight = isRegular ? m_canvas.height() : m_canvas.width(); const auto aspectRatio = static_cast(canvasWidth) / canvasHeight; auto drawWidth = totalWidth; auto drawHeight = floor(drawWidth / aspectRatio); if(drawHeight > totalHeight) { drawHeight = totalHeight; drawWidth = totalHeight * aspectRatio; } if(drawWidth > canvasWidth) { drawWidth -= (static_cast(drawWidth) % canvasWidth); } if(drawHeight > canvasHeight) { drawHeight -= (static_cast(drawHeight) % canvasHeight); } const auto offsetX = (totalWidth - drawWidth) / 2; const auto offsetY = (totalHeight - drawHeight) / 2; return QRectF(offsetX, offsetY, drawWidth, drawHeight); } QSize ScreenCanvas::canvasSize() const { return QSize(isLandscapeOrientation() ? m_canvas.width() : m_canvas.height(), isLandscapeOrientation() ? m_canvas.height() : m_canvas.width()); } bool ScreenCanvas::isLandscapeOrientation() const { return m_orientation == Qt::LandscapeOrientation || m_orientation == Qt::InvertedLandscapeOrientation; } bool ScreenCanvas::isLandscapeOnly() const { return (boundingRect().width() < canvasSize().width()) || (boundingRect().height() < canvasSize().height()); } const QImage ScreenCanvas::canvas(int scale) const { if(scale == 0) { return m_canvas.scaled(m_canvas.width() * m_zoomFactor, m_canvas.height() * m_zoomFactor).transformed(canvasTransform()); } else { return m_canvas.scaled(m_canvas.width() * scale, m_canvas.height() * scale).transformed(canvasTransform()); } } flipperdevices-qFlipper-bfce851/application/screencanvas.h000066400000000000000000000034731452337521700241440ustar00rootroot00000000000000#pragma once #include #include #include #include #include "screenframe.h" class ScreenCanvas : public QQuickPaintedItem { Q_OBJECT Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) Q_PROPERTY(QColor foregroundColor READ foregroundColor WRITE setForegroundColor NOTIFY foregroundColorChanged) Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged) Q_PROPERTY(ScreenFrame frame READ frame WRITE setFrame NOTIFY frameChanged) public: ScreenCanvas(QQuickItem *parent = nullptr); const ScreenFrame &frame() const; void setFrame(const ScreenFrame &frame); void paint(QPainter *painter) override; qreal zoomFactor() const; void setZoomFactor(qreal zoom); const QColor &foregroundColor() const; void setForegroundColor(const QColor &color); const QColor &backgroundColor() const; void setBackgroundColor(const QColor &color); Q_INVOKABLE bool saveImage(const QUrl &url, int scale = 0); Q_INVOKABLE void copyToClipboard(int scale = 0); signals: void zoomFactorChanged(); void canvasSizeChanged(); void foregroundColorChanged(); void backgroundColorChanged(); void frameChanged(); private slots: void updateImplicitSize(); private: void setCanvasSize(const QSize &size); void setCanvasOrientation(Qt::ScreenOrientation orientation); QTransform canvasTransform() const; QRectF canvasRect() const; QSize canvasSize() const; bool isLandscapeOrientation() const; bool isLandscapeOnly() const; const QImage canvas(int scale = 0) const; QColor m_foreground; QColor m_background; QImage m_canvas; qreal m_zoomFactor; Qt::ScreenOrientation m_orientation; }; flipperdevices-qFlipper-bfce851/application/styles/000077500000000000000000000000001452337521700226345ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/000077500000000000000000000000001452337521700251675ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/Button.qml000066400000000000000000000106731452337521700271640ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import QtQuick.Templates 2.15 as T import Theme 1.0 import Primitives 1.0 T.Button { id: control property var foregroundColor: ColorSet { normal: Theme.color.lightorange2 hover: Theme.color.lightorange1 down: Theme.color.darkorange1 disabled: Theme.color.mediumorange1 } property var backgroundColor: ColorSet { normal: Theme.color.darkorange1 hover: Theme.color.mediumorange2 down: Theme.color.lightorange2 disabled: Theme.color.darkorange2 } property var strokeColor: ColorSet { normal: Theme.color.lightorange2 hover: Theme.color.lightorange1 down: Theme.color.lightorange2 disabled: Theme.color.mediumorange1 } property alias radius: bg.radius property alias borderWidth: bg.border.width implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) padding: 6 horizontalPadding: padding + 2 spacing: 6 icon.color: !control.enabled ? foregroundColor.disabled : control.down ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal font.pixelSize: 32 font.family: "HaxrCorp 4089" font.capitalization: Font.AllUppercase font.underline: flat contentItem: IconLabelEx { id: content text: control.text font: control.font color: !control.enabled ? foregroundColor.disabled : control.down ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal icon.source: control.icon.source icon.sourceSize.width: control.icon.width icon.sourceSize.height: control.icon.height icon.color: control.icon.color padding: control.padding } background: Rectangle { id: bg implicitWidth: 100 implicitHeight: 42 radius: 5 color: !control.enabled ? backgroundColor.disabled : control.down ? backgroundColor.down : control.hovered ? backgroundColor.hover : backgroundColor.normal border.color: !control.enabled ? strokeColor.disabled : control.down ? strokeColor.down : control.hovered ? strokeColor.hover : strokeColor.normal border.width: control.flat ? 0 : 2 Behavior on color { ColorAnimation { duration: 150 easing.type: Easing.OutQuad } } } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/ComboBox.qml000066400000000000000000000152661452337521700274240ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import QtQuick.Templates 2.15 as T import Theme 1.0 import Primitives 1.0 import Misc 1.0 T.ComboBox { id: control property var foregroundColor: ColorSet { normal: Theme.color.lightorange2 hover: Theme.color.lightorange1 down: Theme.color.darkorange1 disabled: Theme.color.mediumorange1 } property var backgroundColor: ColorSet { normal: Theme.color.darkorange1 hover: Theme.color.mediumorange2 down: Theme.color.lightorange2 disabled: Theme.color.darkorange2 } property var strokeColor: ColorSet { normal: Theme.color.lightorange2 hover: Theme.color.lightorange1 down: Theme.color.lightorange2 disabled: Theme.color.mediumorange1 } property alias radius: bg.radius property alias borderWidth: bg.border.width font.pixelSize: 32 font.family: "HaxrCorp 4089" font.capitalization: Font.AllUppercase implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing) rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing) radius: 5 delegate: ItemDelegate { width: ListView.view.width text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData palette.text: foregroundColor.normal palette.highlightedText: down ? foregroundColor.down : foregroundColor.hover palette.light: backgroundColor.hover palette.midlight: backgroundColor.down font: control.font highlighted: control.highlightedIndex === index hoverEnabled: control.hoverEnabled } indicator: ColorImage { id: icon x: control.mirrored ? control.padding : control.width - width - 13 y: control.topPadding + (control.availableHeight - height) / 2 color: !control.enabled ? foregroundColor.disabled : control.down ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal source: control.down ? "qrc:/assets/gfx/symbolic/arrow-up.svg" : "qrc:/assets/gfx/symbolic/arrow-down.svg" sourceSize: Qt.size(24, 24) } contentItem: Text { id: content antialiasing: Mitigations.fontRenderingFix leftPadding: !control.mirrored ? 12 : control.editable && activeFocus ? 3 : 1 rightPadding: control.mirrored ? 12 : control.editable && activeFocus ? 3 : 1 topPadding: 6 - control.padding bottomPadding: 6 - control.padding text: control.displayText font: control.font color: !control.enabled ? foregroundColor.disabled : control.down ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal verticalAlignment: Text.AlignVCenter } background: AdvancedRectangle { id: bg implicitWidth: 140 implicitHeight: 42 color: !control.enabled ? backgroundColor.disabled : control.down ? backgroundColor.down : control.hovered ? backgroundColor.hover : backgroundColor.normal border.color: !control.enabled ? strokeColor.disabled : control.down ? strokeColor.down : control.hovered ? strokeColor.hover : strokeColor.normal border.width: 2 topRadius: control.popup.visible && control.popup.y < 0 ? 0 : radius bottomRadius: control.popup.visible && control.popup.y >= 0 ? 0 : radius Behavior on color { ColorAnimation { duration: 150 easing.type: Easing.OutQuad } } } popup: T.Popup { y: control.height width: control.width height: Math.min(contentItem.implicitHeight + 2, control.Window.height - topMargin - bottomMargin) topMargin: 6 bottomMargin: 6 contentItem: ListView { clip: true model: control.delegateModel implicitHeight: contentHeight currentIndex: control.highlightedIndex highlightMoveDuration: 0 T.ScrollIndicator.vertical: ScrollIndicator {} } background: AdvancedRectangle { color: backgroundColor.normal border.width: bg.border.width border.color: strokeColor.normal bottomRadius: control.popup.y < 0 ? 0 : 7 topRadius: control.popup.y < 0 ? 7 : 0 } } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/Dialog.qml000066400000000000000000000062501452337521700271040ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.12 import QtQuick.Templates 2.12 as T import QtQuick.Controls 2.12 import QtQuick.Controls.impl 2.12 import Theme 1.0 T.Dialog { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, contentWidth + leftPadding + rightPadding, implicitHeaderWidth, implicitFooterWidth) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, contentHeight + topPadding + bottomPadding + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0) + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0)) padding: 20 modal: true palette.shadow: "black" closePolicy: Popup.NoAutoClose background: Rectangle { radius: 9 color: "black" border.width: 3 border.color: Theme.color.lightorange2 } header: Text { text: control.title visible: control.title padding: control.padding color: Theme.color.lightorange2 horizontalAlignment: Text.AlignHCenter font.pixelSize: 48 } footer: DialogButtonBox { visible: count > 0 } T.Overlay.modal: Rectangle { color: Color.transparent(control.palette.shadow, 0.5) } T.Overlay.modeless: Rectangle { color: Color.transparent(control.palette.shadow, 0.12) } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/DialogButtonBox.qml000066400000000000000000000052011452337521700307440ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Templates 2.15 as T import Theme 1.0 T.DialogButtonBox { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, (control.count === 1 ? implicitContentWidth * 2 : implicitContentWidth) + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) contentWidth: contentItem.contentWidth spacing: 20 padding: 20 alignment: count === 1 ? Qt.AlignRight : undefined delegate: Button { // width: control.count === 1 ? control.availableWidth / 2 : undefined } contentItem: ListView { model: control.contentModel spacing: control.spacing orientation: ListView.Horizontal boundsBehavior: Flickable.StopAtBounds snapMode: ListView.SnapToItem } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/IconLabelEx.qml000066400000000000000000000013141452337521700300260ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import Misc 1.0 RowLayout { id: control property int padding property alias icon: image property alias text: label.text property alias font: label.font property alias color: label.color spacing: 6 IconImage { id: image Layout.leftMargin: control.padding } Text { id: label verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter Layout.fillWidth: true Layout.fillHeight: true Layout.rightMargin: control.padding antialiasing: Mitigations.fontRenderingFix } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/Menu.qml000066400000000000000000000066061452337521700266160ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import QtQuick.Templates 2.15 as T import QtQuick.Window 2.15 import Theme 1.0 T.Menu { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, contentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, contentHeight + topPadding + bottomPadding) margins: 0 overlap: 0 topPadding: 1 bottomPadding: 1 enter: Transition { PropertyAnimation { property: "opacity"; duration: 150; easing.type: Easing.InOutQuad; from: 0; to: 1 } } exit: Transition { PropertyAnimation { property: "opacity"; duration: 150; easing.type: Easing.InOutQuad; from: 1; to: 0 } } delegate: MenuItem {} contentItem: ListView { implicitHeight: contentHeight model: control.contentModel interactive: Window.window ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height : false clip: true currentIndex: control.currentIndex ScrollIndicator.vertical: ScrollIndicator {} } background: Rectangle { implicitWidth: 150 implicitHeight: 25 border.width: 1 color: Theme.color.darkorange1 border.color: Theme.color.lightorange2 } T.Overlay.modal: Rectangle { color: Color.transparent(control.palette.shadow, 0.5) } T.Overlay.modeless: Rectangle { color: Color.transparent(control.palette.shadow, 0.12) } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/MenuItem.qml000066400000000000000000000136561452337521700274400ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import QtQuick.Templates 2.15 as T import QtQml.Models 2.15 import Theme 1.0 import Primitives 1.0 import Misc 1.0 T.MenuItem { id: control readonly property bool destructive : text.startsWith("!") property var foregroundColor: ColorSet { normal: destructive ? Theme.color.lightred4 : Theme.color.lightorange2 hover: destructive ? Theme.color.lightred4 : Theme.color.lightorange1 down: destructive ? Theme.color.darkred1 : Theme.color.darkorange1 disabled: destructive ? Theme.color.mediumred1 : Theme.color.mediumorange1 } property var backgroundColor: ColorSet { normal: Theme.color.darkorange1 hover: destructive ? Theme.color.mediumred2 : Theme.color.mediumorange2 down: destructive ? Theme.color.lightred4 : Theme.color.lightorange2 disabled: Theme.color.transparent } implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) + 5 padding: 0 spacing: 10 horizontalPadding: 8 topInset: 0 bottomInset: 0 icon.width: 16 icon.height: 16 icon.color: !control.enabled ? foregroundColor.disabled : control.down ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal font.pixelSize: 16 font.family: "Share Tech" contentItem: IconLabel { antialiasing: Mitigations.fontRenderingFix readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0 readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0 leftPadding: !control.mirrored ? indicatorPadding : arrowPadding rightPadding: control.mirrored ? indicatorPadding : arrowPadding spacing: control.spacing mirrored: control.mirrored display: control.display alignment: Qt.AlignLeft icon: control.icon text: control.destructive ? control.text.substring(1) : control.text font: control.font color: !control.enabled ? foregroundColor.disabled : control.down ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal } indicator: ColorImage { x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding y: control.topPadding + (control.availableHeight - height) / 2 visible: control.checked source: control.checkable ? "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png" : "" color: !control.enabled ? foregroundColor.disabled : control.down ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal defaultColor: foregroundColor.normal } arrow: ColorImage { x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding y: control.topPadding + (control.availableHeight - height) / 2 visible: control.subMenu mirror: control.mirrored source: control.subMenu ? "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/arrow-indicator.png" : "" color: !control.enabled ? foregroundColor.disabled : control.down ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal defaultColor: foregroundColor.normal } background: Rectangle { x: 1 y: 1 implicitWidth: 150 implicitHeight: 25 width: control.width - 2 color: !control.enabled ? backgroundColor.disabled : control.down ? backgroundColor.down : control.hovered ? backgroundColor.hover : backgroundColor.normal Behavior on color { ColorAnimation { duration: 150 easing.type: Easing.OutQuad } } } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/MenuSeparator.qml000066400000000000000000000045351452337521700304760ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import QtQuick.Templates 2.15 as T import Theme 1.0 T.MenuSeparator { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) padding: 4 verticalPadding: 2 contentItem: Rectangle { implicitWidth: 186 implicitHeight: 2 color: Theme.color.mediumorange3 } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/ProgressBar.qml000066400000000000000000000046211452337521700301360ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Templates 2.15 as T import QtQuick.Controls 2.15 import Theme 1.0 import Misc 1.0 T.ProgressBar { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) contentItem: Item { id: content anchors.fill: parent anchors.margins: bg.border.width Text { id: brightText antialiasing: Mitigations.fontRenderingFix visible: !control.indeterminate color: Theme.color.lightorange2 text: Math.round(control.value) + "%" anchors.centerIn: parent font.pixelSize: 48 font.family: "HaxrCorp 4089" } Text { id: animationText visible: control.indeterminate color: Theme.color.lightorange2 anchors.centerIn: parent font.pixelSize: 48 Timer { repeat: true running: control.indeterminate triggeredOnStart: true interval: 500 onTriggered: { if(animationText.text.length === 4) { animationText.text = "." } else { animationText.text += "." } } } } Rectangle { id: barFill clip: true visible: !control.indeterminate color: Theme.color.lightorange2 width: visualPosition * parent.width height: parent.height Text { id: darkText x: brightText.x y: brightText.y width: brightText.width height: brightText.height color: Theme.color.darkorange1 text: brightText.text font: brightText.font antialiasing: Mitigations.fontRenderingFix } } } background: Rectangle { id: bg anchors.fill: parent color: Theme.color.transparent border.color: Theme.color.lightorange2 border.width: 3 radius: 9 } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/ScrollBar.qml000066400000000000000000000063011452337521700275650ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import QtQuick.Templates 2.15 as T import Theme 1.0 T.ScrollBar { id: control padding: 0 implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) visible: control.policy !== T.ScrollBar.AlwaysOff minimumSize: orientation == Qt.Horizontal ? height / width : width / height contentItem: Rectangle { implicitWidth: control.interactive ? 4 : 2 implicitHeight: control.interactive ? 4 : 2 color: control.pressed ? Theme.color.lightorange1 : Theme.color.lightorange2 opacity: 0.0 states: State { name: "active" when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0) PropertyChanges { target: control.contentItem; opacity: 1 } } transitions: Transition { from: "active" SequentialAnimation { PauseAnimation { duration: 450 } NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 } } } } background: Rectangle { color: Theme.color.darkorange2 opacity: control.contentItem.opacity } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/ScrollView.qml000066400000000000000000000060251452337521700277760ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import QtQuick.Templates 2.15 as T import Theme 1.0 T.ScrollView { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, contentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, contentHeight + topPadding + bottomPadding) padding: 10 background: Rectangle { id: bg radius: 7 color: Theme.color.transparent border.color: Theme.color.mediumorange3 border.width: 2 z: control.children.length //Make the border go over the text } ScrollBar.vertical: ScrollBar { parent: control x: control.mirrored ? control.padding + control.background.border.width : control.width - width - control.padding - bg.border.width y: control.topPadding height: control.availableHeight active: control.ScrollBar.horizontal.active } ScrollBar.horizontal: ScrollBar { parent: control x: control.leftPadding y: control.height - height - control.padding - bg.border.width width: control.availableWidth active: control.ScrollBar.vertical.active } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/Switch.qml000066400000000000000000000071021452337521700271430ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Templates 2.15 as T import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import Theme 1.0 T.Switch { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) spacing: 6 font.pixelSize: 14 font.family: "Share Tech" indicator: Rectangle { implicitWidth: 32 implicitHeight: 18 x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 radius: 9 color: control.checked ? Theme.color.mediumorange5 : Theme.color.darkorange1 Rectangle { x: Math.max(2, Math.min(parent.width - width - 2, control.visualPosition * parent.width - (width / 2))) y: (parent.height - height) / 2 width: 14 height: 14 radius: 7 color: control.checked ? Theme.color.lightorange2 : Theme.color.mediumorange5 Behavior on x { SmoothedAnimation { velocity: 200 } } } } contentItem: CheckLabel { leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font color: control.checked ? Theme.color.lightorange2 : Theme.color.mediumorange5 } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/TabBar.qml000066400000000000000000000053341452337521700270420ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Templates 2.15 as T import Theme 1.0 T.TabBar { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, contentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, contentHeight + topPadding + bottomPadding) spacing: -2 background: Rectangle { radius: 4 color: enabled ? Theme.color.lightorange2 : Theme.color.mediumorange1 } contentItem: ListView { model: control.contentModel currentIndex: control.currentIndex spacing: control.spacing orientation: ListView.Horizontal boundsBehavior: Flickable.StopAtBounds flickableDirection: Flickable.AutoFlickIfNeeded snapMode: ListView.SnapToItem highlightMoveDuration: 0 highlightRangeMode: ListView.ApplyRange preferredHighlightBegin: 40 preferredHighlightEnd: width - 40 } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/TabButton.qml000066400000000000000000000113761452337521700276140ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import QtQuick.Templates 2.15 as T import Theme 1.0 import Primitives 1.0 T.TabButton { id: control property var foregroundColor: ColorSet { normal: Theme.color.lightorange2 hover: Theme.color.lightorange1 down: Theme.color.darkorange1 disabled: Theme.color.mediumorange1 } property var backgroundColor: ColorSet { normal: Theme.color.darkorange1 hover: Theme.color.mediumorange2 down: Theme.color.lightorange2 disabled: Theme.color.darkorange2 } property var strokeColor: ColorSet { normal: Theme.color.lightorange2 hover: Theme.color.lightorange1 down: Theme.color.lightorange2 disabled: Theme.color.mediumorange1 } property alias radius: bg.radius property alias borderWidth: bg.border.width radius: 4 borderWidth: 2 implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) padding: 6 spacing: 6 icon.color: !control.enabled ? foregroundColor.disabled : control.down || control.checked ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal contentItem: IconLabel { spacing: control.spacing mirrored: control.mirrored display: control.display icon: control.icon text: control.text font: control.font color: !control.enabled ? foregroundColor.disabled : control.down || control.checked ? foregroundColor.down : control.hovered ? foregroundColor.hover : foregroundColor.normal } background: Rectangle { id: bg implicitWidth: 47 implicitHeight: 41 color: !control.enabled ? backgroundColor.disabled : control.down || control.checked ? backgroundColor.down : control.hovered ? backgroundColor.hover : backgroundColor.normal border.color: !control.enabled ? strokeColor.disabled : control.down || control.checked ? strokeColor.down : control.hovered ? strokeColor.hover : strokeColor.normal Item { clip: true height: control.radius anchors.bottom: bg.bottom anchors.right: bg.right anchors.left: bg.left Rectangle { height: parent.height + bg.border.width color: bg.color border.color: bg.border.color border.width: bg.border.width anchors.bottom: parent.bottom anchors.right: parent.right anchors.left: parent.left } } Behavior on color { ColorAnimation { duration: 150 easing.type: Easing.OutQuad } } } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/ToolTip.qml000066400000000000000000000064571452337521700273100ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Controls.impl 2.12 import QtQuick.Templates 2.12 as T import Theme 1.0 T.ToolTip { id: control x: mouseArea.mouseX + 10 y: mouseArea.mouseY + 20 implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, contentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, contentHeight + topPadding + bottomPadding) margins: 6 padding: 8 font.pixelSize: 16 font.letterSpacing: -1 font.family: "Share Tech Mono" delay: 1000 timeout: Math.log(text.length) * 1800 closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent enter: Transition { PropertyAnimation { property: "opacity"; duration: 150; easing.type: Easing.InOutQuad; from: 0; to: 1 } } exit: Transition { PropertyAnimation { property: "opacity"; duration: 150; easing.type: Easing.InOutQuad; from: 1; to: 0 } } contentItem: Text { text: control.text font: control.font wrapMode: Text.Wrap color: Theme.color.lightorange2 } background: Rectangle { anchors.fill: parent border.width: 1 border.color: Theme.color.mediumorange3 color: "black" } MouseArea { id: mouseArea parent: control.parent anchors.fill: parent hoverEnabled: !control.visible acceptedButtons: Qt.NoButton } } flipperdevices-qFlipper-bfce851/application/styles/DefaultAmber/qmldir000066400000000000000000000007331452337521700264050ustar00rootroot00000000000000module DefaultAmber Button 2.15 Button.qml ColorGroup 2.15 ColorGroup.qml ComboBox 2.15 ComboBox.qml Dialog 2.15 Dialog.qml DialogButtonBox 2.15 DialogButtonBox.qml IconLabelEx 2.15 IconLabelEx.qml Menu 2.15 Menu.qml MenuItem 2.15 MenuItem.qml MenuSeparator 2.15 MenuSeparator.qml ProgressBar 2.15 ProgressBar.qml ScrollBar 2.15 ScrollBar.qml ScrollView 2.15 ScrollView.qml Switch 2.15 Switch.qml TabBar 2.15 TabBar.qml TabButton 2.15 TabButton.qml ToolTip 2.15 ToolTip.qml flipperdevices-qFlipper-bfce851/application/systemfiledialog.cpp000066400000000000000000000102021452337521700253540ustar00rootroot00000000000000#include "systemfiledialog.h" #include #include #include #include "preferences.h" SystemFileDialog::SystemFileDialog(): QObject(), m_dialog(nullptr) {} SystemFileDialog::~SystemFileDialog() { if(m_dialog) { m_dialog->deleteLater(); } } void SystemFileDialog::beginOpenFiles(StandardLocation openLocation, const QStringList &nameFilters) { beginOpen(openLocation, QFileDialog::AcceptOpen, QFileDialog::ExistingFiles, nameFilters); } void SystemFileDialog::beginOpenFile(StandardLocation openLocation, const QStringList &nameFilters) { beginOpen(openLocation, QFileDialog::AcceptOpen, QFileDialog::ExistingFile, nameFilters); } void SystemFileDialog::beginOpenDir(StandardLocation openLocation) { beginOpen(openLocation, QFileDialog::AcceptOpen, QFileDialog::Directory); } void SystemFileDialog::beginSaveFile(StandardLocation openLocation, const QStringList &nameFilters, const QString &defaultFileName) { beginOpen(openLocation, QFileDialog::AcceptSave, QFileDialog::AnyFile, nameFilters, defaultFileName); } void SystemFileDialog::beginSaveDir(StandardLocation openLocation) { beginOpen(openLocation, QFileDialog::AcceptOpen, QFileDialog::Directory); } void SystemFileDialog::close() { if(m_dialog && m_dialog->isVisible()) { m_dialog->reject(); } } bool SystemFileDialog::isOpen() const { return m_dialog; } QUrl SystemFileDialog::fileUrl() const { return fileUrls().isEmpty() ? QUrl() : fileUrls().at(0); } QList SystemFileDialog::fileUrls() const { return m_dialog ? m_dialog->selectedUrls() : QList(); } QString SystemFileDialog::selectedNameFilter() const { return m_dialog ? m_dialog->selectedNameFilter() : QString(); } void SystemFileDialog::onFileDialogAccepted() { emit accepted(); } void SystemFileDialog::onFileDialogFinished() { const auto lastFolderPath = m_dialog->directory().absolutePath(); globalPrefs->setLastFolderUrl(QUrl::fromLocalFile(lastFolderPath)); emit finished(); } QUrl SystemFileDialog::standardLocationPath(StandardLocation location) { if(location == LastLocation) { const auto lastFolderUrl = globalPrefs->lastFolderUrl(); if(!QFileInfo::exists(lastFolderUrl.toLocalFile())) { return QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); } else { return lastFolderUrl; } } else if(location == HomeLocation) { return QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); } else if(location == DownloadsLocation) { return QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)); } else if(location == PicturesLocation) { return QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation)); } else if(location == DocumentsLocation) { return QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)); } else { return QUrl(); } } void SystemFileDialog::beginOpen(StandardLocation openLocation, int acceptMode, int fileMode, const QStringList &nameFilters, const QString &defaultFileName) { if(m_dialog) { m_dialog->deleteLater(); } m_dialog = new QFileDialog(); connect(m_dialog, &QFileDialog::accepted, this, &SystemFileDialog::onFileDialogAccepted); connect(m_dialog, &QFileDialog::finished, this, &SystemFileDialog::onFileDialogFinished); connect(this, &SystemFileDialog::finished, this, [=]() { disconnect(); }); m_dialog->setFileMode(static_cast(fileMode)); m_dialog->setAcceptMode(static_cast(acceptMode)); m_dialog->setDirectoryUrl(standardLocationPath(openLocation)); #ifndef Q_OS_WINDOWS // This code crashes on Windows for some reason m_dialog->setOption(QFileDialog::ShowDirsOnly, fileMode == QFileDialog::Directory); #endif if(!defaultFileName.isEmpty()) { m_dialog->selectFile(defaultFileName); } if(!nameFilters.isEmpty()) { m_dialog->setNameFilters(nameFilters); } m_dialog->exec(); } flipperdevices-qFlipper-bfce851/application/systemfiledialog.h000066400000000000000000000032551452337521700250330ustar00rootroot00000000000000#pragma once #include #include class QFileDialog; class SystemFileDialog: public QObject { Q_OBJECT Q_PROPERTY(QString selectedNameFilter READ selectedNameFilter CONSTANT) Q_PROPERTY(QUrl fileUrl READ fileUrl CONSTANT) Q_PROPERTY(QList fileUrls READ fileUrls CONSTANT) public: enum StandardLocation { LastLocation, HomeLocation, DownloadsLocation, PicturesLocation, DocumentsLocation, DefaultLocation }; Q_ENUM(StandardLocation) SystemFileDialog(); ~SystemFileDialog(); Q_INVOKABLE void beginOpenFiles(SystemFileDialog::StandardLocation openLocation, const QStringList &nameFilters); Q_INVOKABLE void beginOpenFile(SystemFileDialog::StandardLocation openLocation, const QStringList &nameFilters); Q_INVOKABLE void beginOpenDir(SystemFileDialog::StandardLocation openLocation); Q_INVOKABLE void beginSaveFile(SystemFileDialog::StandardLocation openLocation, const QStringList &nameFilters, const QString &defaultFileName); Q_INVOKABLE void beginSaveDir(SystemFileDialog::StandardLocation openLocation); Q_INVOKABLE void close(); bool isOpen() const; QUrl fileUrl() const; QList fileUrls() const; QString selectedNameFilter() const; signals: void finished(); void accepted(); private slots: void onFileDialogAccepted(); void onFileDialogFinished(); private: static QUrl standardLocationPath(StandardLocation location); void beginOpen(StandardLocation openLocation, int acceptMode, int fileMode, const QStringList &nameFilters = QStringList(), const QString &defaultFileName = QString()); QFileDialog *m_dialog; }; flipperdevices-qFlipper-bfce851/application/translations/000077500000000000000000000000001452337521700240325ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/translations/en_US.ts000066400000000000000000000001361452337521700254130ustar00rootroot00000000000000 flipperdevices-qFlipper-bfce851/backend/000077500000000000000000000000001452337521700203755ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/backend/abstractoperation.cpp000066400000000000000000000027421452337521700246320ustar00rootroot00000000000000#include "abstractoperation.h" #include AbstractOperation::AbstractOperation(QObject *parent): QObject(parent), m_timeoutTimer(new QTimer(this)), m_operationState(BasicOperationState::Ready), m_progress(0.0) { connect(m_timeoutTimer, &QTimer::timeout, this, &AbstractOperation::onOperationTimeout); m_timeoutTimer->setSingleShot(true); m_timeoutTimer->setInterval(30000); } void AbstractOperation::finish() { stopTimeout(); setOperationState(AbstractOperation::Finished); emit finished(); } int AbstractOperation::operationState() const { return m_operationState; } void AbstractOperation::setTimeout(int msec) { m_timeoutTimer->setInterval(msec); } double AbstractOperation::progress() const { return m_progress; } void AbstractOperation::onOperationTimeout() { finishWithError(BackendError::TimeoutError, QStringLiteral("Operation timeout (generic)")); } void AbstractOperation::setOperationState(int state) { m_operationState = state; } void AbstractOperation::finishWithError(BackendError::ErrorType error, const QString &errorString) { setError(error, errorString); finish(); } void AbstractOperation::setProgress(double newProgress) { if(qFuzzyCompare(m_progress, newProgress)) { return; } m_progress = newProgress; emit progressChanged(); } void AbstractOperation::startTimeout() { m_timeoutTimer->start(); } void AbstractOperation::stopTimeout() { m_timeoutTimer->stop(); } flipperdevices-qFlipper-bfce851/backend/abstractoperation.h000066400000000000000000000017421452337521700242760ustar00rootroot00000000000000#pragma once #include #include "failable.h" class QTimer; class AbstractOperation: public QObject, public Failable { Q_OBJECT public: enum BasicOperationState { Ready = 0, Finished, User }; explicit AbstractOperation(QObject *parent = nullptr); virtual ~AbstractOperation() {} virtual const QString description() const = 0; virtual void start() = 0; virtual void finish(); int operationState() const; void setTimeout(int msec); double progress() const; signals: void started(); void finished(); void progressChanged(); protected slots: virtual void onOperationTimeout(); void startTimeout(); void stopTimeout(); protected: void setOperationState(int state); void finishWithError(BackendError::ErrorType error, const QString &errorString); void setProgress(double newProgress); private: QTimer *m_timeoutTimer; int m_operationState; double m_progress; }; flipperdevices-qFlipper-bfce851/backend/abstractoperationhelper.cpp000066400000000000000000000013241452337521700260250ustar00rootroot00000000000000#include "abstractoperationhelper.h" #include AbstractOperationHelper::AbstractOperationHelper(QObject *parent): QObject(parent), m_state(State::Ready) { advanceState(); } void AbstractOperationHelper::finish() { setState(State::Finished); emit finished(); } void AbstractOperationHelper::finishWithError(BackendError::ErrorType error, const QString &errorString) { setError(error, errorString); finish(); } void AbstractOperationHelper::advanceState() { QTimer::singleShot(0, this, &AbstractOperationHelper::nextStateLogic); } int AbstractOperationHelper::state() const { return m_state; } void AbstractOperationHelper::setState(int newState) { m_state = newState; } flipperdevices-qFlipper-bfce851/backend/abstractoperationhelper.h000066400000000000000000000011731452337521700254740ustar00rootroot00000000000000#pragma once #include #include "failable.h" class AbstractOperationHelper : public QObject, public Failable { Q_OBJECT public: enum State { Ready = 0, Finished, User }; AbstractOperationHelper(QObject *parent = nullptr); virtual ~AbstractOperationHelper() {} signals: void finished(); protected slots: void finish(); void finishWithError(BackendError::ErrorType error, const QString &errorString); void advanceState(); protected: int state() const; void setState(int newState); private: virtual void nextStateLogic() = 0; int m_state; }; flipperdevices-qFlipper-bfce851/backend/abstractoperationrunner.cpp000066400000000000000000000030651452337521700260630ustar00rootroot00000000000000#include "abstractoperationrunner.h" #include #include #include #include "abstractoperation.h" Q_LOGGING_CATEGORY(CATEGORY_DEFAULT, "DEF") AbstractOperationRunner::AbstractOperationRunner(QObject *parent): QObject(parent), m_state(Idle) {} const QLoggingCategory &AbstractOperationRunner::loggingCategory() const { return CATEGORY_DEFAULT(); } void AbstractOperationRunner::enqueueOperation(AbstractOperation *operation) { if(m_state == Idle) { m_state = Running; QTimer::singleShot(0, this, &AbstractOperationRunner::processQueue); } connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { qCCritical(loggingCategory()).noquote() << operation->description() << "ERROR:" << operation->errorString(); clearQueue(); processQueue(); } else { qCInfo(loggingCategory()).noquote() << operation->description() << "SUCCESS"; QTimer::singleShot(0, this, &AbstractOperationRunner::processQueue); } operation->deleteLater(); }); m_queue.enqueue(operation); } void AbstractOperationRunner::processQueue() { if(m_queue.isEmpty()) { m_state = Idle; return; } auto *operation = m_queue.dequeue(); qCInfo(loggingCategory()).noquote() << operation->description() << "START"; operation->start(); } void AbstractOperationRunner::clearQueue() { while(!m_queue.isEmpty()) { m_queue.dequeue()->deleteLater(); } m_state = Idle; } flipperdevices-qFlipper-bfce851/backend/abstractoperationrunner.h000066400000000000000000000014051452337521700255240ustar00rootroot00000000000000#pragma once #include #include class AbstractOperation; class AbstractOperationRunner : public QObject { Q_OBJECT enum State { Idle, Running }; using OperationQueue = QQueue; public: AbstractOperationRunner(QObject *parent = nullptr); protected: template T* registerOperation(T* operation); virtual const QLoggingCategory &loggingCategory() const; void enqueueOperation(AbstractOperation *operation); private slots: void processQueue(); void clearQueue(); private: State m_state; OperationQueue m_queue; }; template T *AbstractOperationRunner::registerOperation(T *operation) { enqueueOperation(operation); return operation; } flipperdevices-qFlipper-bfce851/backend/abstractprotobufmessage.h000066400000000000000000000111161452337521700254770ustar00rootroot00000000000000#pragma once #include #include #include #include template class AbstractProtobufMessage { public: AbstractProtobufMessage(QSerialPort *serialPort); virtual ~AbstractProtobufMessage() {} protected: QSerialPort *serialPort() const; Msg *pbMessage(); const Msg *pbMessage() const; private: QSerialPort *m_serialPort; Msg m_message; }; template class AbstractProtobufRequest : public AbstractProtobufMessage { public: AbstractProtobufRequest(QSerialPort *serialPort); virtual ~AbstractProtobufRequest() {} bool send(); qint64 bytesWritten() const; private: static bool outputCallback(pb_ostream_t *stream, const pb_byte_t *buf, size_t count); qint64 m_bytesWritten; }; template class AbstractProtobufResponse : public AbstractProtobufMessage { public: AbstractProtobufResponse(QSerialPort *serialPort); virtual ~AbstractProtobufResponse(); bool receive(); bool isComplete() const; void release(); private: static bool inputCallback(pb_istream_t *stream, pb_byte_t *buf, size_t count); bool m_isComplete; }; template AbstractProtobufMessage::AbstractProtobufMessage(QSerialPort *serialPort): m_serialPort(serialPort) { memset(&m_message, 0, sizeof(Msg)); } template QSerialPort *AbstractProtobufMessage::serialPort() const { return m_serialPort; } template Msg *AbstractProtobufMessage::pbMessage() { return &m_message; } template const Msg *AbstractProtobufMessage::pbMessage() const { return &m_message; } template AbstractProtobufRequest::AbstractProtobufRequest(QSerialPort *serialPort): AbstractProtobufMessage(serialPort), m_bytesWritten(0) {} template bool AbstractProtobufRequest::send() { auto *serialPort = AbstractProtobufMessage::serialPort(); pb_ostream_t ostream { outputCallback, serialPort, SIZE_MAX, 0, nullptr }; const auto success = pb_encode_ex(&ostream, MsgDesc, AbstractProtobufMessage::pbMessage(), PB_ENCODE_DELIMITED) && serialPort->flush(); m_bytesWritten = success ? ostream.bytes_written : -1; return success; } template qint64 AbstractProtobufRequest::bytesWritten() const { return m_bytesWritten; } template bool AbstractProtobufRequest::outputCallback(pb_ostream_t *stream, const pb_byte_t *buf, size_t count) { auto *serialPort = (QSerialPort*)stream->state; return serialPort->write((const char*)buf, count) == (qint64)count; } template AbstractProtobufResponse::AbstractProtobufResponse(QSerialPort *serialPort): AbstractProtobufMessage (serialPort), m_isComplete(false) {} template AbstractProtobufResponse::~AbstractProtobufResponse() { release(); } template bool AbstractProtobufResponse::receive() { // Allow for re-use: release any previously allocated data release(); auto *serialPort = AbstractProtobufMessage::serialPort(); pb_istream_t istream { inputCallback, serialPort, (size_t)serialPort->bytesAvailable(), nullptr }; serialPort->startTransaction(); m_isComplete = pb_decode_ex(&istream, MsgDesc, AbstractProtobufMessage::pbMessage(), PB_DECODE_DELIMITED); if(m_isComplete) { serialPort->commitTransaction(); } else { serialPort->rollbackTransaction(); } return m_isComplete; } template bool AbstractProtobufResponse::isComplete() const { return m_isComplete; } template void AbstractProtobufResponse::release() { if(m_isComplete) { pb_release(MsgDesc, AbstractProtobufMessage::pbMessage()); } } template bool AbstractProtobufResponse::inputCallback(pb_istream_t *stream, pb_byte_t *buf, size_t count) { auto *serialPort = (QSerialPort*)stream->state; return serialPort->read((char*)buf, count) == (qint64)count; } flipperdevices-qFlipper-bfce851/backend/abstractserialoperation.cpp000066400000000000000000000046361452337521700260360ustar00rootroot00000000000000#include "abstractserialoperation.h" #include #include AbstractSerialOperation::AbstractSerialOperation(QSerialPort *serialPort, QObject *parent): AbstractOperation(parent), m_serialPort(serialPort), m_totalBytesWritten(0) {} void AbstractSerialOperation::start() { connect(m_serialPort, &QSerialPort::readyRead, this, &AbstractSerialOperation::startTimeout); connect(m_serialPort, &QSerialPort::bytesWritten, this, &AbstractSerialOperation::startTimeout); connect(m_serialPort, &QSerialPort::readyRead, this, &AbstractSerialOperation::onSerialPortReadyRead); connect(m_serialPort, &QSerialPort::errorOccurred, this, &AbstractSerialOperation::onSerialPortError); connect(m_serialPort, &QSerialPort::bytesWritten, this, &AbstractSerialOperation::onSerialPortBytesWritten); QTimer::singleShot(0, this, [=]() { if(!begin()) { finishWithError(BackendError::SerialError, QStringLiteral("Failed to begin operation: %1").arg(m_serialPort->errorString())); } else { startTimeout(); } }); } void AbstractSerialOperation::finish() { disconnect(m_serialPort, &QSerialPort::readyRead, this, &AbstractSerialOperation::startTimeout); disconnect(m_serialPort, &QSerialPort::bytesWritten, this, &AbstractSerialOperation::startTimeout); disconnect(m_serialPort, &QSerialPort::readyRead, this, &AbstractSerialOperation::onSerialPortReadyRead); disconnect(m_serialPort, &QSerialPort::errorOccurred, this, &AbstractSerialOperation::onSerialPortError); disconnect(m_serialPort, &QSerialPort::bytesWritten, this, &AbstractSerialOperation::onSerialPortBytesWritten); AbstractOperation::finish(); } QSerialPort *AbstractSerialOperation::serialPort() const { return m_serialPort; } qint64 AbstractSerialOperation::totalBytesWritten() const { return m_totalBytesWritten; } void AbstractSerialOperation::resetTotalBytesWritten() { m_totalBytesWritten = 0; } void AbstractSerialOperation::onSerialPortReadyRead() { // Empty default implementation } void AbstractSerialOperation::onTotalBytesWrittenChanged() { // Empty default implementation } void AbstractSerialOperation::onSerialPortBytesWritten(qint64 numBytes) { m_totalBytesWritten += numBytes; onTotalBytesWrittenChanged(); } void AbstractSerialOperation::onSerialPortError() { finishWithError(BackendError::SerialError, m_serialPort->errorString()); } flipperdevices-qFlipper-bfce851/backend/abstractserialoperation.h000066400000000000000000000013501452337521700254710ustar00rootroot00000000000000#pragma once #include "abstractoperation.h" class QSerialPort; class AbstractSerialOperation : public AbstractOperation { Q_OBJECT public: AbstractSerialOperation(QSerialPort *serialPort, QObject *parent = nullptr); virtual ~AbstractSerialOperation() {} void start() override; void finish() override; protected: QSerialPort *serialPort() const; qint64 totalBytesWritten() const; void resetTotalBytesWritten(); private slots: virtual void onSerialPortReadyRead(); virtual void onTotalBytesWrittenChanged(); void onSerialPortBytesWritten(qint64 numBytes); void onSerialPortError(); private: virtual bool begin() = 0; QSerialPort *m_serialPort; qint64 m_totalBytesWritten; }; flipperdevices-qFlipper-bfce851/backend/applicationbackend.cpp000066400000000000000000000321431452337521700247170ustar00rootroot00000000000000#include "applicationbackend.h" #include #include #include #include "logger.h" #include "deviceregistry.h" #include "firmwareupdateregistry.h" #include "preferences.h" #include "flipperupdates.h" #include "flipperzero/screenstreamer.h" #include "flipperzero/virtualdisplay.h" #include "flipperzero/filemanager.h" #include "flipperzero/flipperzero.h" #include "flipperzero/devicestate.h" #include "flipperzero/assetmanifest.h" #include "flipperzero/screenstreamer.h" #include "flipperzero/helper/toplevelhelper.h" #include "flipperzero/pixmaps/updateok.h" #include "flipperzero/pixmaps/updating.h" Q_LOGGING_CATEGORY(LOG_BACKEND, "BKD") Q_DECLARE_METATYPE(QAbstractListModel*) using namespace Flipper; using namespace Zero; ApplicationBackend::ApplicationBackend(QObject *parent): QObject(parent), m_deviceRegistry(new DeviceRegistry(this)), m_firmwareUpdateRegistry(new FirmwareUpdateRegistry("https://update.flipperzero.one/firmware/directory.json", this)), m_screenStreamer(new ScreenStreamer(this)), m_virtualDisplay(new VirtualDisplay(this)), m_fileManager(new FileManager(this)), m_backendState(BackendState::WaitingForDevices), m_errorType(BackendError::UnknownError) { registerMetaTypes(); #if QT_VERSION < 0x060000 registerComparators(); #endif initLibraryPaths(); initConnections(); } ApplicationBackend::BackendState ApplicationBackend::backendState() const { return m_backendState; } BackendError::ErrorType ApplicationBackend::errorType() const { return m_errorType; } ApplicationBackend::FirmwareUpdateState ApplicationBackend::firmwareUpdateState() const { if(!device() || (m_firmwareUpdateRegistry->state() == UpdateRegistry::State::Unknown)) { return FirmwareUpdateState::Unknown; } else if(m_firmwareUpdateRegistry->state() == UpdateRegistry::State::Checking) { return FirmwareUpdateState::Checking; } else if(m_firmwareUpdateRegistry->state() == UpdateRegistry::State::ErrorOccured) { return FirmwareUpdateState::ErrorOccured; } const auto &latestVersion = m_firmwareUpdateRegistry->latestVersion(); if (device()->canRepair(latestVersion)) { return FirmwareUpdateState::CanRepair; } else if(device()->canUpdate(latestVersion)) { return FirmwareUpdateState::CanUpdate; } else if(device()->canInstall(latestVersion)) { return FirmwareUpdateState::CanInstall; } else{ return FirmwareUpdateState::NoUpdates; } } QAbstractListModel *ApplicationBackend::firmwareUpdateModel() const { return m_firmwareUpdateRegistry; } FlipperZero *ApplicationBackend::device() const { return m_deviceRegistry->currentDevice(); } DeviceState *ApplicationBackend::deviceState() const { if(device()) { return device()->deviceState(); } else { return nullptr; } } DeviceRegistry *ApplicationBackend::deviceRegistry() const { return m_deviceRegistry; } ScreenStreamer *ApplicationBackend::screenStreamer() const { return m_screenStreamer; } VirtualDisplay *ApplicationBackend::virtualDisplay() const { return m_virtualDisplay; } FileManager *ApplicationBackend::fileManager() const { return m_fileManager; } const Updates::VersionInfo ApplicationBackend::latestFirmwareVersion() const { return m_firmwareUpdateRegistry->latestVersion(); } bool ApplicationBackend::isQueryInProgress() const { return m_deviceRegistry->isQueryInProgress(); } void ApplicationBackend::mainAction() { AbstractOperationHelper *helper; if(device()->deviceState()->isRecoveryMode()) { setBackendState(BackendState::RepairingDevice); helper = new RepairTopLevelHelper(m_firmwareUpdateRegistry, device(), this); } else { setBackendState(BackendState::UpdatingDevice); helper = new UpdateTopLevelHelper(m_firmwareUpdateRegistry, device(), this); } connect(helper, &AbstractOperationHelper::finished, helper, &QObject::deleteLater); } void ApplicationBackend::createBackup(const QUrl &backupUrl) { setBackendState(BackendState::CreatingBackup); device()->createBackup(backupUrl); } void ApplicationBackend::restoreBackup(const QUrl &backupUrl) { setBackendState(BackendState::RestoringBackup); device()->restoreBackup(backupUrl); } void ApplicationBackend::factoryReset() { setBackendState(BackendState::FactoryResetting); device()->factoryReset(); } void ApplicationBackend::installFirmware(const QUrl &fileUrl) { setBackendState(BackendState::InstallingFirmware); device()->installFirmware(fileUrl); } void ApplicationBackend::installWirelessStack(const QUrl &fileUrl) { setBackendState(BackendState::InstallingWirelessStack); device()->installWirelessStack(fileUrl); } void ApplicationBackend::installFUS(const QUrl &fileUrl, uint32_t address) { setBackendState(BackendState::InstallingFUS); device()->installFUS(fileUrl, address); } void ApplicationBackend::startFullScreenStreaming() { setBackendState(BackendState::ScreenStreaming); } void ApplicationBackend::stopFullScreenStreaming() { setBackendState(BackendState::Ready); } void ApplicationBackend::refreshStorageInfo() { device()->refreshStorageInfo(); } void ApplicationBackend::checkFirmwareUpdates() { m_firmwareUpdateRegistry->check(); } void ApplicationBackend::finalizeOperation() { qCDebug(LOG_BACKEND) << "Finalized current operation"; globalLogger->setErrorCount(0); m_deviceRegistry->removeOfflineDevices(); m_deviceRegistry->clearError(); if(!device()) { setBackendState(BackendState::WaitingForDevices); } else { device()->finalizeOperation(); if(!deviceState()->isRecoveryMode()) { if(deviceState()->isAllowVirtualDisplay()) { m_virtualDisplay->stop(); } m_screenStreamer->start(); m_fileManager->reset(); m_fileManager->refresh(); } setBackendState(BackendState::Ready); } } void ApplicationBackend::onCurrentDeviceChanged() { // Should not happen during an ongoing operation if(m_backendState > BackendState::ScreenStreaming && m_backendState < BackendState::Finished) { setBackendState(BackendState::ErrorOccured); qCDebug(LOG_BACKEND) << "Current operation was interrupted"; } else if(device()) { qCDebug(LOG_BACKEND) << "Current device changed to" << device()->deviceState()->deviceInfo().name; // No need to disconnect the old device, as it has been destroyed at this point connect(device(), &FlipperZero::operationFinished, this, &ApplicationBackend::onDeviceOperationFinished); connect(device(), &FlipperZero::deviceStateChanged, this, &ApplicationBackend::firmwareUpdateStateChanged); connect(deviceState(), &DeviceState::deviceInfoChanged, this, &ApplicationBackend::onDeviceInfoChanged); connect(deviceState(), &DeviceState::isPersistentChanged, this, &ApplicationBackend::onDeviceInfoChanged); onDeviceInfoChanged(); if(!deviceState()->isRecoveryMode()) { connect(m_screenStreamer, &ScreenStreamer::streamStateChanged, this, &ApplicationBackend::onScreenStreamerStateChanged); m_screenStreamer->start(); } else { setBackendState(BackendState::Ready); } } else { qCDebug(LOG_BACKEND) << "Last device was disconnected"; setBackendState(BackendState::WaitingForDevices); } } void ApplicationBackend::onDeviceInfoChanged() { if(deviceState()->isRecoveryMode()) { return; } m_fileManager->setDevice(device()); m_screenStreamer->setDevice(device()); m_virtualDisplay->setDevice(device()); if(deviceState()->isPersistent() && deviceState()->isAllowVirtualDisplay()) { m_virtualDisplay->start(QByteArray((char*)updating_bits, sizeof(updating_bits))); } } void ApplicationBackend::onDeviceOperationFinished() { if(!device()) { qCDebug(LOG_BACKEND) << "Lost all connected devices"; setErrorType(BackendError::UnknownError); setBackendState(BackendState::ErrorOccured); } else if(device()->deviceState()->isError()) { qCDebug(LOG_BACKEND) << "Current operation finished with error:" << device()->deviceState()->errorString(); setErrorType(device()->deviceState()->error()); setBackendState(BackendState::ErrorOccured); } else { // TODO: Replace with state check if(deviceState()->isAllowVirtualDisplay()) { m_virtualDisplay->sendFrame(QByteArray((char*)update_ok_bits, sizeof(update_ok_bits))); } setBackendState(BackendState::Finished); } } void ApplicationBackend::onDeviceRegistryErrorOccured() { if(m_backendState != BackendState::WaitingForDevices) { return; } const auto err = m_deviceRegistry->error(); if(err != BackendError::NoError) { setErrorType(err); setBackendState(BackendState::ErrorOccured); } } void ApplicationBackend::onFileManagerErrorOccured() { const auto err = m_fileManager->error(); if(err != BackendError::NoError) { setErrorType(m_fileManager->error()); setBackendState(BackendState::ErrorOccured); } } void ApplicationBackend::onScreenStreamerStateChanged() { if(m_screenStreamer->isEnabled()) { disconnect(m_screenStreamer, &ScreenStreamer::streamStateChanged, this, &ApplicationBackend::onScreenStreamerStateChanged); setBackendState(BackendState::Ready); } // TODO: check for ScreenStreamer errors } void ApplicationBackend::initLibraryPaths() { const auto appPath = qApp->applicationDirPath(); qApp->addLibraryPath(QStringLiteral("%1/plugins").arg(appPath)); #if defined Q_OS_LINUX qApp->addLibraryPath(QStringLiteral("%1/../lib/%2/plugins").arg(appPath, APP_NAME)); #elif defined Q_OS_MAC #endif } void ApplicationBackend::initConnections() { connect(m_deviceRegistry, &DeviceRegistry::currentDeviceChanged, this, &ApplicationBackend::onCurrentDeviceChanged); connect(m_deviceRegistry, &DeviceRegistry::currentDeviceChanged, this, &ApplicationBackend::currentDeviceChanged); connect(m_deviceRegistry, &DeviceRegistry::currentDeviceChanged, this, &ApplicationBackend::firmwareUpdateStateChanged); connect(m_deviceRegistry, &DeviceRegistry::isQueryInProgressChanged, this, &ApplicationBackend::isQueryInProgressChanged); connect(m_firmwareUpdateRegistry, &UpdateRegistry::latestVersionChanged, this, &ApplicationBackend::firmwareUpdateStateChanged); connect(m_deviceRegistry, &DeviceRegistry::errorOccured, this, &ApplicationBackend::onDeviceRegistryErrorOccured); connect(m_fileManager, &FileManager::errorOccured, this, &ApplicationBackend::onFileManagerErrorOccured); } void ApplicationBackend::beginUpdate() { setBackendState(BackendState::UpdatingDevice); auto *helper = new UpdateTopLevelHelper(m_firmwareUpdateRegistry, device(), this); connect(helper, &AbstractOperationHelper::finished, helper, &QObject::deleteLater); } void ApplicationBackend::beginRepair() { setBackendState(BackendState::RepairingDevice); auto *helper = new RepairTopLevelHelper(m_firmwareUpdateRegistry, device(), this); connect(helper, &AbstractOperationHelper::finished, helper, &QObject::deleteLater); } void ApplicationBackend::setBackendState(BackendState newState) { if(m_backendState == newState) { return; } m_backendState = newState; emit backendStateChanged(); } void ApplicationBackend::setErrorType(BackendError::ErrorType newErrorType) { if(m_errorType == newErrorType) { return; } m_errorType = newErrorType; emit errorTypeChanged(); } void ApplicationBackend::registerMetaTypes() { qRegisterMetaType("Preferences*"); qRegisterMetaType("Flipper::Updates::FileInfo"); qRegisterMetaType("Flipper::Updates::VersionInfo"); qRegisterMetaType("Flipper::Updates::ChannelInfo"); qRegisterMetaType("Flipper::Zero::DeviceInfo"); qRegisterMetaType("Flipper::Zero::HardwareInfo"); qRegisterMetaType("Flipper::Zero::SoftwareInfo"); qRegisterMetaType("Flipper::Zero::StorageInfo"); qRegisterMetaType("Flipper::FlipperZero*"); qRegisterMetaType("Flipper::Zero::DeviceState*"); qRegisterMetaType("Flipper::Zero::ScreenStreamer*"); qRegisterMetaType("Flipper::Zero::VirtualDisplay*"); qRegisterMetaType("Flipper::Zero::FileManager*"); qRegisterMetaType("Flipper::Zero::ScreenStreamer*"); qRegisterMetaType(); qRegisterMetaType(); qRegisterMetaType(); qRegisterMetaType(); } #if QT_VERSION < 0x060000 void ApplicationBackend::registerComparators() { QMetaType::registerComparators(); } #endif flipperdevices-qFlipper-bfce851/backend/applicationbackend.h000066400000000000000000000111021452337521700243540ustar00rootroot00000000000000#pragma once #include #include #include "backenderror.h" #include "flipperupdates.h" namespace Flipper { class FlipperZero; class DeviceRegistry; class UpdateRegistry; namespace Zero { class DeviceState; class FileManager; class ScreenStreamer; class VirtualDisplay; }} #if QT_VERSION >= 0x060000 Q_MOC_INCLUDE("flipperzero/devicestate.h") Q_MOC_INCLUDE("flipperzero/screenstreamer.h") Q_MOC_INCLUDE("flipperzero/virtualdisplay.h") Q_MOC_INCLUDE("flipperzero/filemanager.h") #endif class ApplicationBackend : public QObject { Q_OBJECT Q_PROPERTY(BackendState backendState READ backendState NOTIFY backendStateChanged) Q_PROPERTY(Flipper::Zero::DeviceState* deviceState READ deviceState NOTIFY currentDeviceChanged) Q_PROPERTY(Flipper::Zero::ScreenStreamer* screenStreamer READ screenStreamer CONSTANT) Q_PROPERTY(Flipper::Zero::VirtualDisplay* virtualDisplay READ virtualDisplay CONSTANT) Q_PROPERTY(Flipper::Zero::FileManager* fileManager READ fileManager CONSTANT) Q_PROPERTY(FirmwareUpdateState firmwareUpdateState READ firmwareUpdateState NOTIFY firmwareUpdateStateChanged) Q_PROPERTY(QAbstractListModel* firmwareUpdateModel READ firmwareUpdateModel CONSTANT) Q_PROPERTY(Flipper::Updates::VersionInfo latestFirmwareVersion READ latestFirmwareVersion NOTIFY firmwareUpdateStateChanged) Q_PROPERTY(BackendError::ErrorType errorType READ errorType NOTIFY errorTypeChanged) Q_PROPERTY(bool isQueryInProgress READ isQueryInProgress NOTIFY isQueryInProgressChanged) public: enum class BackendState { WaitingForDevices, Ready, ScreenStreaming, UpdatingDevice, RepairingDevice, CreatingBackup, RestoringBackup, FactoryResetting, InstallingFirmware, InstallingWirelessStack, InstallingFUS, Finished, ErrorOccured = 0xff }; Q_ENUM(BackendState) enum class FirmwareUpdateState { Unknown, Checking, CanUpdate, CanInstall, CanRepair, NoUpdates, ErrorOccured = 0xff }; Q_ENUM(FirmwareUpdateState) ApplicationBackend(QObject *parent = nullptr); BackendState backendState() const; BackendError::ErrorType errorType() const; Flipper::FlipperZero *device() const; Flipper::Zero::DeviceState *deviceState() const; Flipper::DeviceRegistry *deviceRegistry() const; Flipper::Zero::ScreenStreamer *screenStreamer() const; Flipper::Zero::VirtualDisplay *virtualDisplay() const; Flipper::Zero::FileManager *fileManager() const; FirmwareUpdateState firmwareUpdateState() const; QAbstractListModel *firmwareUpdateModel() const; const Flipper::Updates::VersionInfo latestFirmwareVersion() const; // TODO: Replace it with a state bool isQueryInProgress() const; /* Actions available from the GUI. * Applies to the currently active device. */ Q_INVOKABLE void mainAction(); Q_INVOKABLE void createBackup(const QUrl &backupUrl); Q_INVOKABLE void restoreBackup(const QUrl &backupUrl); Q_INVOKABLE void factoryReset(); Q_INVOKABLE void installFirmware(const QUrl &fileUrl); Q_INVOKABLE void installWirelessStack(const QUrl &fileUrl); Q_INVOKABLE void installFUS(const QUrl &fileUrl, uint32_t address); Q_INVOKABLE void startFullScreenStreaming(); Q_INVOKABLE void stopFullScreenStreaming(); Q_INVOKABLE void refreshStorageInfo(); Q_INVOKABLE void checkFirmwareUpdates(); Q_INVOKABLE void finalizeOperation(); signals: void errorTypeChanged(); void currentDeviceChanged(); void backendStateChanged(); void firmwareUpdateStateChanged(); void isQueryInProgressChanged(); private slots: void onCurrentDeviceChanged(); void onDeviceInfoChanged(); void onDeviceOperationFinished(); void onDeviceRegistryErrorOccured(); void onFileManagerErrorOccured(); void onScreenStreamerStateChanged(); private: static void initLibraryPaths(); static void registerMetaTypes(); #if QT_VERSION < 0x060000 static void registerComparators(); #endif void initConnections(); void beginUpdate(); void beginRepair(); void setBackendState(BackendState newState); void setErrorType(BackendError::ErrorType newErrorType); Flipper::DeviceRegistry *m_deviceRegistry; Flipper::UpdateRegistry *m_firmwareUpdateRegistry; Flipper::Zero::ScreenStreamer *m_screenStreamer; Flipper::Zero::VirtualDisplay *m_virtualDisplay; Flipper::Zero::FileManager *m_fileManager; BackendState m_backendState; BackendError::ErrorType m_errorType; }; flipperdevices-qFlipper-bfce851/backend/backend.pro000066400000000000000000000216151452337521700225130ustar00rootroot00000000000000QT -= gui QT += serialport network TEMPLATE = lib CONFIG += staticlib CONFIG += c++11 include(../qflipper_common.pri) SOURCES += \ abstractoperation.cpp \ abstractoperationhelper.cpp \ abstractoperationrunner.cpp \ abstractserialoperation.cpp \ applicationbackend.cpp \ deviceregistry.cpp \ failable.cpp \ filenode.cpp \ firmwareupdateregistry.cpp \ flipperupdates.cpp \ flipperzero/assetmanifest.cpp \ flipperzero/filemanager.cpp \ flipperzero/protobufsession.cpp \ flipperzero/rpc/abstractprotobufoperation.cpp \ flipperzero/rpc/abstractstorageoperation.cpp \ flipperzero/rpc/guiscreenframeoperation.cpp \ flipperzero/rpc/guisendinputoperation.cpp \ flipperzero/rpc/guistartscreenstreamoperation.cpp \ flipperzero/rpc/guistartvirtualdisplayoperation.cpp \ flipperzero/rpc/guistopscreenstreamoperation.cpp \ flipperzero/rpc/guistopvirtualdisplayoperation.cpp \ flipperzero/rpc/propertygetoperation.cpp \ flipperzero/rpc/startrpcoperation.cpp \ flipperzero/rpc/stoprpcoperation.cpp \ flipperzero/rpc/storageinfooperation.cpp \ flipperzero/rpc/storagelistoperation.cpp \ flipperzero/rpc/storagemd5sumoperation.cpp \ flipperzero/rpc/storagemkdiroperation.cpp \ flipperzero/rpc/storagereadoperation.cpp \ flipperzero/rpc/storageremoveoperation.cpp \ flipperzero/rpc/storagerenameoperation.cpp \ flipperzero/rpc/storagestatoperation.cpp \ flipperzero/rpc/storagewriteoperation.cpp \ flipperzero/rpc/systemdeviceinfooperation.cpp \ flipperzero/rpc/systemfactoryresetoperation.cpp \ flipperzero/rpc/systemgetdatetimeoperation.cpp \ flipperzero/rpc/systemprotobufversionoperation.cpp \ flipperzero/rpc/systemrebootoperation.cpp \ flipperzero/rpc/systemsetdatetimeoperation.cpp \ flipperzero/rpc/skipmotdoperation.cpp \ flipperzero/devicestate.cpp \ flipperzero/factoryinfo.cpp \ flipperzero/flipperzero.cpp \ flipperzero/helper/deviceinfohelper.cpp \ flipperzero/helper/firmwarehelper.cpp \ flipperzero/helper/radiomanifesthelper.cpp \ flipperzero/helper/scriptshelper.cpp \ flipperzero/helper/serialinithelper.cpp \ flipperzero/helper/toplevelhelper.cpp \ flipperzero/radiomanifest.cpp \ flipperzero/recovery.cpp \ flipperzero/recovery/abstractrecoveryoperation.cpp \ flipperzero/recovery/correctoptionbytesoperation.cpp \ flipperzero/recovery/exitrecoveryoperation.cpp \ flipperzero/recovery/firmwaredownloadoperation.cpp \ flipperzero/recovery/setbootmodeoperation.cpp \ flipperzero/recovery/wirelessstackdownloadoperation.cpp \ flipperzero/recoveryinterface.cpp \ flipperzero/rpc/systemupdateoperation.cpp \ flipperzero/screenstreamer.cpp \ flipperzero/toplevel/abstracttopleveloperation.cpp \ flipperzero/toplevel/factoryresetoperation.cpp \ flipperzero/toplevel/firmwareinstalloperation.cpp \ flipperzero/toplevel/fullrepairoperation.cpp \ flipperzero/toplevel/fullupdateoperation.cpp \ flipperzero/toplevel/legacyupdateoperation.cpp \ flipperzero/toplevel/settingsbackupoperation.cpp \ flipperzero/toplevel/settingsrestoreoperation.cpp \ flipperzero/toplevel/wirelessstackupdateoperation.cpp \ flipperzero/utility/abstractutilityoperation.cpp \ flipperzero/utility/assetsdownloadoperation.cpp \ flipperzero/utility/checksumverifyoperation.cpp \ flipperzero/utility/directorydownloadoperation.cpp \ flipperzero/utility/factoryresetutiloperation.cpp \ flipperzero/utility/filesuploadoperation.cpp \ flipperzero/utility/getfiletreeoperation.cpp \ flipperzero/utility/pathcreateoperation.cpp \ flipperzero/utility/regionprovisioningoperation.cpp \ flipperzero/utility/restartoperation.cpp \ flipperzero/utility/startrecoveryoperation.cpp \ flipperzero/utility/startupdateroperation.cpp \ flipperzero/utility/storageinforefreshoperation.cpp \ flipperzero/utility/userbackupoperation.cpp \ flipperzero/utility/userrestoreoperation.cpp \ flipperzero/utilityinterface.cpp \ flipperzero/virtualdisplay.cpp \ gzipcompressor.cpp \ gzipuncompressor.cpp \ logger.cpp \ preferences.cpp \ regioninfo.cpp \ remotefilefetcher.cpp \ serialfinder.cpp \ simpleserialoperation.cpp \ tararchive.cpp \ tarziparchive.cpp \ tarzipcompressor.cpp \ tarzipuncompressor.cpp \ tempdirectories.cpp \ updateregistry.cpp \ versioninfo.cpp HEADERS += \ abstractoperation.h \ abstractoperationhelper.h \ abstractoperationrunner.h \ abstractprotobufmessage.h \ abstractserialoperation.h \ applicationbackend.h \ backenderror.h \ deviceregistry.h \ failable.h \ fileinfo.h \ filenode.h \ firmwareupdateregistry.h \ flipperupdates.h \ flipperzero/assetmanifest.h \ flipperzero/devicecolor.h \ flipperzero/deviceregion.h \ flipperzero/filemanager.h \ flipperzero/pixmaps/default.h \ flipperzero/pixmaps/updateok.h \ flipperzero/pixmaps/updating.h \ flipperzero/protobufsession.h \ flipperzero/rpc/abstractprotobufoperation.h \ flipperzero/rpc/abstractstorageoperation.h \ flipperzero/rpc/guiscreenframeoperation.h \ flipperzero/rpc/guisendinputoperation.h \ flipperzero/rpc/guistartscreenstreamoperation.h \ flipperzero/rpc/guistartvirtualdisplayoperation.h \ flipperzero/rpc/guistopscreenstreamoperation.h \ flipperzero/rpc/guistopvirtualdisplayoperation.h \ flipperzero/rpc/propertygetoperation.h \ flipperzero/rpc/startrpcoperation.h \ flipperzero/rpc/stoprpcoperation.h \ flipperzero/rpc/storageinfooperation.h \ flipperzero/rpc/storagelistoperation.h \ flipperzero/rpc/storagemd5sumoperation.h \ flipperzero/rpc/storagemkdiroperation.h \ flipperzero/rpc/storagereadoperation.h \ flipperzero/rpc/storageremoveoperation.h \ flipperzero/rpc/storagerenameoperation.h \ flipperzero/rpc/storagestatoperation.h \ flipperzero/rpc/storagewriteoperation.h \ flipperzero/rpc/systemdeviceinfooperation.h \ flipperzero/rpc/systemfactoryresetoperation.h \ flipperzero/rpc/systemgetdatetimeoperation.h \ flipperzero/rpc/systemprotobufversionoperation.h \ flipperzero/rpc/systemrebootoperation.h \ flipperzero/rpc/systemsetdatetimeoperation.h \ flipperzero/rpc/skipmotdoperation.h \ flipperzero/deviceinfo.h \ flipperzero/devicestate.h \ flipperzero/factoryinfo.h \ flipperzero/flipperzero.h \ flipperzero/helper/deviceinfohelper.h \ flipperzero/helper/firmwarehelper.h \ flipperzero/helper/radiomanifesthelper.h \ flipperzero/helper/scriptshelper.h \ flipperzero/helper/serialinithelper.h \ flipperzero/helper/toplevelhelper.h \ flipperzero/radiomanifest.h \ flipperzero/recovery.h \ flipperzero/recovery/abstractrecoveryoperation.h \ flipperzero/recovery/correctoptionbytesoperation.h \ flipperzero/recovery/exitrecoveryoperation.h \ flipperzero/recovery/firmwaredownloadoperation.h \ flipperzero/recovery/setbootmodeoperation.h \ flipperzero/recovery/wirelessstackdownloadoperation.h \ flipperzero/recoveryinterface.h \ flipperzero/rpc/systemupdateoperation.h \ flipperzero/screenstreamer.h \ flipperzero/toplevel/abstracttopleveloperation.h \ flipperzero/toplevel/factoryresetoperation.h \ flipperzero/toplevel/firmwareinstalloperation.h \ flipperzero/toplevel/fullrepairoperation.h \ flipperzero/toplevel/fullupdateoperation.h \ flipperzero/toplevel/legacyupdateoperation.h \ flipperzero/toplevel/settingsbackupoperation.h \ flipperzero/toplevel/settingsrestoreoperation.h \ flipperzero/toplevel/wirelessstackupdateoperation.h \ flipperzero/utility/abstractutilityoperation.h \ flipperzero/utility/assetsdownloadoperation.h \ flipperzero/utility/checksumverifyoperation.h \ flipperzero/utility/directorydownloadoperation.h \ flipperzero/utility/factoryresetutiloperation.h \ flipperzero/utility/filesuploadoperation.h \ flipperzero/utility/getfiletreeoperation.h \ flipperzero/utility/pathcreateoperation.h \ flipperzero/utility/regionprovisioningoperation.h \ flipperzero/utility/restartoperation.h \ flipperzero/utility/startrecoveryoperation.h \ flipperzero/utility/startupdateroperation.h \ flipperzero/utility/storageinforefreshoperation.h \ flipperzero/utility/userbackupoperation.h \ flipperzero/utility/userrestoreoperation.h \ flipperzero/utilityinterface.h \ flipperzero/virtualdisplay.h \ gzipcompressor.h \ gzipuncompressor.h \ inputevent.h \ logger.h \ preferences.h \ regioninfo.h \ remotefilefetcher.h \ screenframe.h \ serialfinder.h \ simpleserialoperation.h \ tararchive.h \ tarziparchive.h \ tarzipcompressor.h \ tarzipuncompressor.h \ tempdirectories.h \ updateregistry.h \ versioninfo.h INCLUDEPATH += $$PWD/../dfu \ $$PWD/../plugins/protobufinterface flipperdevices-qFlipper-bfce851/backend/backenderror.h000066400000000000000000000022321452337521700232060ustar00rootroot00000000000000#pragma once #include class BackendError : public QObject { Q_OBJECT public: enum ErrorType { // General errors NoError, // No error obviously UnknownError, // ¯\_(ツ)_/¯ // Top-level errors InvalidDevice, // Cannot determine device type InternetError, // Cannot connect to update server or the server replied with error BackupError, // Cannot perform backup DiskError, // Cannot read/write to the disk DataError, // Necessary files are corrupted SerialAccessError, // Cannot access device in Serial mode RecoveryAccessError, // Cannot access device in DFU mode OperationError, // Current operation was interrupted UpdaterError, // Updater returned an error code // Low-level errors SerialError, // Cannot open/read/write to/from serial port RecoveryError, // Cannot open/read/write to/from DFU device ProtocolError, // Received an error, unexpected or not implemented RPC response TimeoutError // The operation took too long to execute }; Q_ENUM(ErrorType) }; flipperdevices-qFlipper-bfce851/backend/deviceregistry.cpp000066400000000000000000000130341452337521700241320ustar00rootroot00000000000000#include "deviceregistry.h" #include #include #include #include "flipperzero/helper/deviceinfohelper.h" #include "flipperzero/flipperzero.h" #include "flipperzero/devicestate.h" #include "usbdevice.h" #define FLIPPER_ZERO_VID 0x0483 #define FLIPPER_ZERO_PID_VCP 0x5740 #define FLIPPER_ZERO_PID_DFU 0xdf11 Q_LOGGING_CATEGORY(LOG_DEVREG, "REG"); using namespace Flipper; DeviceRegistry::DeviceRegistry(QObject *parent): QObject(parent), m_detector(new USBDeviceDetector(this)), m_error(BackendError::UnknownError), m_isQueryInProgress(false) { connect(m_detector, &USBDeviceDetector::devicePluggedIn, this, &DeviceRegistry::insertDevice); connect(m_detector, &USBDeviceDetector::deviceUnplugged, this, &DeviceRegistry::removeDevice); m_detector->setWantedDevices({ USBDeviceInfo(FLIPPER_ZERO_VID, FLIPPER_ZERO_PID_DFU), USBDeviceInfo(FLIPPER_ZERO_VID, FLIPPER_ZERO_PID_VCP) .withManufacturer("Flipper Devices Inc.") .withProductDescription("Flipper Control Virtual ComPort") }); } void DeviceRegistry::setBackendLogLevel(int logLevel) { m_detector->setLogLevel(logLevel); } FlipperZero *DeviceRegistry::currentDevice() const { return m_devices.isEmpty() ? nullptr : m_devices.first(); } int DeviceRegistry::deviceCount() const { return m_devices.size(); } BackendError::ErrorType DeviceRegistry::error() const { return m_error; } void DeviceRegistry::clearError() { setError(BackendError::UnknownError); } bool DeviceRegistry::isQueryInProgress() const { return m_isQueryInProgress; } void DeviceRegistry::insertDevice(const USBDeviceInfo &info) { if(!info.isComplete()) { qCDebug(LOG_DEVREG).noquote().nospace() << "Incomplete device info: VID_0x" << QString::number(info.vendorID(), 16) << ":PID_0x" << QString::number(info.productID(), 16); setError(BackendError::InvalidDevice); } else if(info.vendorID() != FLIPPER_ZERO_VID) { qCDebug(LOG_DEVREG) << "Unexpected device VID and PID"; setError(BackendError::InvalidDevice); } else { setQueryInProgress(true); qCDebug(LOG_DEVREG).noquote().nospace() << "Detected new device: VID_0x" << QString::number(info.vendorID(), 16) << ":PID_0x" << QString::number(info.productID(), 16); auto *fetcher = Zero::AbstractDeviceInfoHelper::create(info, this); connect(fetcher, &Zero::AbstractDeviceInfoHelper::finished, this, &DeviceRegistry::processDevice); connect(fetcher, &Zero::AbstractDeviceInfoHelper::finished, fetcher, &QObject::deleteLater); } } void DeviceRegistry::removeDevice(const USBDeviceInfo &info) { const auto it = std::find_if(m_devices.begin(), m_devices.end(), [&](Flipper::FlipperZero *dev) { const auto &deviceInfo = dev->deviceState()->deviceInfo().usbInfo; return deviceInfo.backendData() == info.backendData(); }); if(it != m_devices.end()) { const auto idx = std::distance(m_devices.begin(), it); auto *device = m_devices.at(idx); if(!device->deviceState()->isPersistent()) { qCDebug(LOG_DEVREG).noquote().nospace() << "Device disconnected: VID_0x" << QString::number(info.vendorID(), 16) << ":PID_0x" << QString::number(info.productID(), 16); m_devices.takeAt(idx)->deleteLater(); emit deviceCountChanged(); emit currentDeviceChanged(); } else { qCDebug(LOG_DEVREG).noquote().nospace() << "Device went offline: VID_0x" << QString::number(info.vendorID(), 16) << ":PID_0x" << QString::number(info.productID(), 16); device->deviceState()->setOnline(false); } } } void DeviceRegistry::removeOfflineDevices() { auto it = std::remove_if(m_devices.begin(), m_devices.end(), [](Flipper::FlipperZero *arg) { return !arg->deviceState()->isOnline(); }); for(const auto end = m_devices.end(); it != end; ++it) { qCDebug(LOG_DEVREG).noquote() << "Removed offline device:" << (*it)->deviceState()->name(); m_devices.erase(it); emit deviceCountChanged(); (*it)->deleteLater(); } } void DeviceRegistry::processDevice() { setQueryInProgress(false); auto *fetcher = qobject_cast(sender()); const auto &info = fetcher->result(); if(fetcher->isError()) { qCDebug(LOG_DEVREG).noquote() << "Device initialization failed:" << fetcher->errorString(); setError(fetcher->error()); return; } const auto it = std::find_if(m_devices.begin(), m_devices.end(), [&info](Flipper::FlipperZero *arg) { return info.name == arg->deviceState()->name(); }); if(it != m_devices.end()) { // Preserving the old instance qCDebug(LOG_DEVREG) << "Device went back online"; (*it)->deviceState()->setDeviceInfo(info); } else { qCDebug(LOG_DEVREG) << "Registering the device"; auto *device = new FlipperZero(info, this); m_devices.append(device); emit deviceCountChanged(); if(m_devices.size() == 1) { emit currentDeviceChanged(); } } } void DeviceRegistry::setError(BackendError::ErrorType newError) { if(m_error == newError) { return; } m_error = newError; emit errorOccured(); } void DeviceRegistry::setQueryInProgress(bool set) { if(m_isQueryInProgress == set) { return; } m_isQueryInProgress = set; emit isQueryInProgressChanged(); } flipperdevices-qFlipper-bfce851/backend/deviceregistry.h000066400000000000000000000021271452337521700236000ustar00rootroot00000000000000#pragma once #include #include #include "backenderror.h" #include "usbdeviceinfo.h" class USBDeviceDetector; namespace Flipper { class FlipperZero; class DeviceRegistry : public QObject { Q_OBJECT using DeviceList = QVector; public: DeviceRegistry(QObject *parent = nullptr); void setBackendLogLevel(int logLevel); FlipperZero *currentDevice() const; int deviceCount() const; BackendError::ErrorType error() const; void clearError(); bool isQueryInProgress() const; signals: void isQueryInProgressChanged(); void currentDeviceChanged(); void deviceCountChanged(); void errorOccured(); public slots: void insertDevice(const USBDeviceInfo &info); void removeDevice(const USBDeviceInfo &info); void removeOfflineDevices(); private slots: void processDevice(); private: void setError(BackendError::ErrorType newError); void setQueryInProgress(bool set); USBDeviceDetector *m_detector; DeviceList m_devices; BackendError::ErrorType m_error; bool m_isQueryInProgress; }; } flipperdevices-qFlipper-bfce851/backend/failable.cpp000066400000000000000000000014111452337521700226350ustar00rootroot00000000000000#include "failable.h" Failable::Failable() { clearError(); } bool Failable::isError() const { return m_error != BackendError::NoError; } BackendError::ErrorType Failable::error() const { return m_error; } void Failable::setError(BackendError::ErrorType error) { m_error = error; } void Failable::setError(BackendError::ErrorType error, const QString &errorString) { m_error = error; m_errorString = errorString; } const QString &Failable::errorString() const { return m_errorString; } void Failable::setErrorString(const QString &errorMessage) { m_error = BackendError::UnknownError; m_errorString = errorMessage; } void Failable::clearError() { m_error = BackendError::NoError; m_errorString = QStringLiteral("No Error"); } flipperdevices-qFlipper-bfce851/backend/failable.h000066400000000000000000000007631452337521700223130ustar00rootroot00000000000000#pragma once #include #include "backenderror.h" class Failable { public: Failable(); bool isError() const; BackendError::ErrorType error() const; void setError(BackendError::ErrorType error); void setError(BackendError::ErrorType error, const QString &errorString); const QString &errorString() const; void setErrorString(const QString &errorMessage); void clearError(); private: BackendError::ErrorType m_error; QString m_errorString; }; flipperdevices-qFlipper-bfce851/backend/fileinfo.h000066400000000000000000000004331452337521700223410ustar00rootroot00000000000000#pragma once #include #include enum class FileType { Directory, RegularFile, Storage, Unknown }; struct FileInfo { QByteArray name; QByteArray absolutePath; FileType type; qint64 size; }; using FileInfoList = QList; flipperdevices-qFlipper-bfce851/backend/filenode.cpp000066400000000000000000000107661452337521700227000ustar00rootroot00000000000000#include "filenode.h" #include #include "debug.h" FileNode::FileNode(): m_parent(nullptr) {} FileNode::FileNode(const QString &name, Type type, const QVariant &data): m_parent(nullptr), m_info({name, QString(), type, data}) {} bool FileNode::operator ==(const FileNode &other) const { return (m_info.type == other.m_info.type) && (m_info.absolutePath == other.m_info.absolutePath) && (m_info.userData == other.m_info.userData); } bool FileNode::operator !=(const FileNode &other) const { return !(*this == other); } const QString &FileNode::name() const { return m_info.name; } const QString &FileNode::absolutePath() const { return m_info.absolutePath; } FileNode::Type FileNode::type() const { return m_info.type; } const QVariant &FileNode::userData() const { return m_info.userData; } const FileNode::FileInfo &FileNode::fileInfo() const { return m_info; } void FileNode::addChild(const QSharedPointer &nodePtr) { nodePtr->setParent(this); m_children.insert(nodePtr->name(), nodePtr); } bool FileNode::addDirectory(const QString &path) { auto fragments = path.split('/'); QSharedPointer node(new FileNode(fragments.takeLast(), Type::Directory)); auto *parent = traverse(fragments); check_return_bool(parent, QStringLiteral("No parent node found for %1.").arg(path)); parent->addChild(node); return true; } bool FileNode::addFile(const QString &path, const QVariant &data) { auto fragments = path.split('/'); QSharedPointer node(new FileNode(fragments.takeLast(), Type::RegularFile, data)); auto *parent = traverse(fragments); check_return_bool(parent, QStringLiteral("No parent node found for %1.").arg(path)); parent->addChild(node); return true; } FileNode *FileNode::traverse(const QStringList &fragments) { if(fragments == QStringList({QString()})) { return this; } auto *current = this; for(const auto &fragment: fragments) { current = current->child(fragment); if(!current) { break; } } return current; } FileNode *FileNode::child(const QString &name) const { if(!m_children.contains(name)) { return nullptr; } return m_children.value(name).get(); } FileNode *FileNode::find(const QString &path) { const auto fragments = path.split('/'); return traverse(fragments); } FileNode *FileNode::parent() const { return m_parent; } FileNode::FileInfoList FileNode::toPreOrderList() const { FileInfoList ret; QQueue queue; queue.enqueue(this); while(!queue.isEmpty()) { const auto *current = queue.dequeue(); for(const auto &childPtr: current->m_children) { queue.enqueue(childPtr.get()); } ret.append(current->m_info); } return ret; } FileNode::FileInfoList FileNode::difference(FileNode *other) { FileInfoList ret; QQueue queue; queue.enqueue(other); while(!queue.isEmpty()) { auto *current = queue.dequeue(); auto *counterpart = find(current->absolutePath()); if(!counterpart || (counterpart->type() != current->type())) { ret.append(current->toPreOrderList()); continue; } for(const auto &childPtr: qAsConst(current->m_children)) { queue.enqueue(childPtr.get()); } } return ret; } FileNode::FileInfoList FileNode::changed(FileNode *other) { FileInfoList ret; QQueue queue; queue.enqueue(other); while(!queue.isEmpty()) { auto *current = queue.dequeue(); auto *counterpart = find(current->absolutePath()); if(!counterpart || (counterpart->type() != current->type())) { continue; } else if (*current != *counterpart) { ret.append(current->m_info); continue; } for(const auto &childPtr: qAsConst(current->m_children)) { queue.enqueue(childPtr.get()); } } return ret; } void FileNode::setParent(FileNode *node) { m_parent = node; QStringList fragments; auto *current = this; while(current->parent()) { fragments.append(current->name()); current = current->parent(); } std::reverse(fragments.begin(), fragments.end()); m_info.absolutePath = fragments.join('/'); } bool FileNode::FileInfo::operator <(const FileInfo &other) const { return (type < other.type) || (absolutePath < other.absolutePath); } flipperdevices-qFlipper-bfce851/backend/filenode.h000066400000000000000000000027141452337521700223370ustar00rootroot00000000000000#pragma once #include #include #include #include #include class FileNode { public: enum class Type { Directory, RegularFile, Unknown }; struct FileInfo { QString name; QString absolutePath; Type type; QVariant userData; bool operator <(const FileInfo &other) const; }; using FileNodeMap = QMap>; using FileInfoList = QList; FileNode(); FileNode(const QString &name, Type type, const QVariant &data = QVariant()); bool operator ==(const FileNode &other) const; bool operator !=(const FileNode &other) const; const QString &name() const; const QString &absolutePath() const; Type type() const; const QVariant &userData() const; const FileInfo &fileInfo() const; bool addDirectory(const QString &path); bool addFile(const QString &path, const QVariant &data); FileNode *parent() const; FileNode *child(const QString &name) const; FileNode *find(const QString &path); FileInfoList toPreOrderList() const; FileInfoList difference(FileNode *other); FileInfoList changed(FileNode *other); private: void setParent(FileNode *node); void addChild(const QSharedPointer &nodePtr); FileNode *traverse(const QStringList &fragments); FileNode *m_parent; FileNodeMap m_children; FileInfo m_info; }; flipperdevices-qFlipper-bfce851/backend/firmwareupdateregistry.cpp000066400000000000000000000007111452337521700257100ustar00rootroot00000000000000#include "firmwareupdateregistry.h" #include "preferences.h" using namespace Flipper; FirmwareUpdateRegistry::FirmwareUpdateRegistry(const QString &directoryUrl, QObject *parent): UpdateRegistry(directoryUrl, parent) { connect(globalPrefs, &Preferences::firmwareUpdateChannelChanged, this, &UpdateRegistry::latestVersionChanged); } const QString FirmwareUpdateRegistry::updateChannel() const { return globalPrefs->firmwareUpdateChannel(); } flipperdevices-qFlipper-bfce851/backend/firmwareupdateregistry.h000066400000000000000000000004441452337521700253600ustar00rootroot00000000000000#pragma once #include "updateregistry.h" namespace Flipper { class FirmwareUpdateRegistry : public UpdateRegistry { Q_OBJECT public: FirmwareUpdateRegistry(const QString &directoryUrl, QObject *parent = nullptr); private: const QString updateChannel() const override; }; } flipperdevices-qFlipper-bfce851/backend/flipperupdates.cpp000066400000000000000000000112771452337521700241400ustar00rootroot00000000000000#include "flipperupdates.h" #include #include #include #include using namespace Flipper::Updates; FileInfo::FileInfo(): m_isValid(false) {} FileInfo::FileInfo(const QJsonValue &val): FileInfo() { if(!val.isObject()) { throw std::runtime_error("Expected FileInfo to be an object"); } const auto &json = val.toObject(); m_isValid = json.contains("target") && json.contains("type") && json.contains("url") && json.contains("sha256"); if(!m_isValid) { throw std::runtime_error("Malformed FileInfo"); } m_target = json["target"].toString(); m_type = json["type"].toString(); m_url = json["url"].toString(); m_sha256 = json["sha256"].toString().toLocal8Bit(); } const QString &FileInfo::target() const { return m_target; } const QString &FileInfo::type() const { return m_type; } const QString &FileInfo::url() const { return m_url; } const QByteArray &FileInfo::sha256() const { return m_sha256; } bool FileInfo::isValid() const { return m_isValid; } VersionInfo::VersionInfo(const QJsonValue &val) { if(!val.isObject()) { throw std::runtime_error("Expected VersionInfo to be an object"); } const auto &json = val.toObject(); const auto canConstruct = json.contains("version") && json.contains("changelog") && json.contains("timestamp") && json.contains("files"); if(!canConstruct) { throw std::runtime_error("Malformed VersionInfo"); } else if(!json["files"].isArray()) { throw std::runtime_error("VersionInfo: Expected an array of files"); } else {} m_number = json["version"].toString(); m_changelog = json["changelog"].toString(); m_date = QDateTime::fromSecsSinceEpoch(json["timestamp"].toVariant().toULongLong()).date(); const auto &filesArray = json["files"].toArray(); for(const auto &file : filesArray) { m_files.append(FileInfo(file)); } } const QString &VersionInfo::number() const { return m_number; } const QString &VersionInfo::changelog() const { return m_changelog; } const QDate &VersionInfo::date() const { return m_date; } const QVector &VersionInfo::files() const { return m_files; } const FileInfo VersionInfo::fileInfo(const QString &type, const QString &target) const { const auto it = std::find_if(m_files.cbegin(), m_files.cend(), [&](const Updates::FileInfo &arg) { return (arg.type() == type) && (target == arg.target()); }); return (it != m_files.cend()) ? *it : FileInfo(); } qint64 VersionInfo::compare(const VersionInfo &other) const { return compare(m_number, other.m_number); } qint64 VersionInfo::toNumericValue(const QString &version) { int ret = 0; // Get rid of the possible -rcxx suffix const auto tokens = version.split('-').first().split('.'); for(const auto &token : tokens) { bool ok; const auto val = token.toInt(&ok); if(!ok) return std::numeric_limits::min(); ret *= 1000; ret += val; } return ret; } // TODO: Handle -rcxx suffixes correctly qint64 VersionInfo::compare(const QString &v1, const QString &v2) { return toNumericValue(v1) - toNumericValue(v2); } ChannelInfo::ChannelInfo(const QJsonValue &val) { if(!val.isObject()) { throw std::runtime_error("Expected ChannelInfo to be an object"); } const auto &json = val.toObject(); const auto canConstruct = json.contains("id") && json.contains("title") && json.contains("description") && json.contains("versions"); if(!canConstruct) { throw std::runtime_error("Malformed ChannelInfo"); } else if(!json["versions"].isArray()) { throw std::runtime_error("ChannelInfo: Expected an array of versions"); } else {} m_id = json["id"].toString(); m_title = json["title"].toString(); m_description = json["description"].toString(); const auto &versionArray = json["versions"].toArray(); for(const auto &version : versionArray) { m_versions.append(VersionInfo(version)); } // Json data is not guaranteed to be sorted? std::sort(m_versions.begin(), m_versions.end(), [](const VersionInfo &a, const VersionInfo &b) { return a.compare(b) > 0; }); } const QString &ChannelInfo::name() const { return m_id; } const QString &ChannelInfo::title() const { return m_title; } const QString &ChannelInfo::description() const { return m_description; } const QVector &ChannelInfo::versions() const { return m_versions; } const VersionInfo &ChannelInfo::latestVersion() const { return m_versions.first(); } flipperdevices-qFlipper-bfce851/backend/flipperupdates.h000066400000000000000000000045461452337521700236060ustar00rootroot00000000000000#pragma once #include #include #include #include #include #include namespace Flipper { namespace Updates { class FileInfo { Q_GADGET public: FileInfo(); FileInfo(const QJsonValue &val); const QString &target() const; const QString &type() const; const QString &url() const; const QByteArray &sha256() const; bool isValid() const; private: QString m_target; QString m_type; QString m_url; QByteArray m_sha256; bool m_isValid; }; class VersionInfo { Q_GADGET Q_PROPERTY(QString number READ number CONSTANT) Q_PROPERTY(QString changelog READ changelog CONSTANT) Q_PROPERTY(QDate date READ date CONSTANT) Q_PROPERTY(QVector files READ files CONSTANT) public: VersionInfo() = default; VersionInfo(const QJsonValue &val); const QString &number() const; const QString &changelog() const; const QDate &date() const; const QVector &files() const; const Flipper::Updates::FileInfo fileInfo(const QString &type, const QString &target) const; qint64 compare(const VersionInfo &other) const; static qint64 toNumericValue(const QString &version); static qint64 compare(const QString &v1, const QString &v2); private: QString m_number; QString m_changelog; QDate m_date; QVector m_files; }; class ChannelInfo { Q_GADGET Q_PROPERTY(QString name READ name CONSTANT) Q_PROPERTY(QString title READ title CONSTANT) Q_PROPERTY(QString description READ description CONSTANT) Q_PROPERTY(QVector versions READ versions CONSTANT) Q_PROPERTY(Flipper::Updates::VersionInfo latestVersion READ latestVersion CONSTANT) public: ChannelInfo() = default; ChannelInfo(const QJsonValue &val); const QString &name() const; const QString &title() const; const QString &description() const; const QVector &versions() const; const Flipper::Updates::VersionInfo &latestVersion() const; private: QString m_id; QString m_title; QString m_description; QVector m_versions; }; } } Q_DECLARE_METATYPE(Flipper::Updates::FileInfo) Q_DECLARE_METATYPE(Flipper::Updates::VersionInfo) Q_DECLARE_METATYPE(Flipper::Updates::ChannelInfo) flipperdevices-qFlipper-bfce851/backend/flipperzero/000077500000000000000000000000001452337521700227365ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/backend/flipperzero/assetmanifest.cpp000066400000000000000000000050461452337521700263150ustar00rootroot00000000000000#include "assetmanifest.h" #include #include "debug.h" using namespace Flipper; using namespace Zero; AssetManifest::AssetManifest(): m_version(-1), m_timestamp(0), m_root(new FileNode("", FileNode::Type::Directory)) {} AssetManifest::AssetManifest(const QByteArray &text): AssetManifest() { QTextStream s(text); auto n = 1; while(!s.atEnd()) { if(!parseLine(s.readLine())) { setError(BackendError::DataError, QStringLiteral("Syntax error on line %1").arg(n++)); return; } } if((m_version == -1) || (m_timestamp == 0)) { setError(BackendError::DataError, QStringLiteral("Incomplete manifest file")); } } int AssetManifest::version() const { return m_version; } qint64 AssetManifest::timestamp() const { return m_timestamp; } FileNode *AssetManifest::tree() const { return m_root.get(); } bool AssetManifest::parseLine(const QString &line) { const auto tokens = line.trimmed().split(':'); return parseFile(tokens) || parseDirectory(tokens) || parseVersion(tokens) || parseTime(tokens); } bool AssetManifest::parseVersion(const QStringList &tokens) { if((tokens.first() != "V") || (tokens.size() < 2)) { return false; } bool success; const auto version = tokens[1].toInt(&success); if(success) { m_version = version; } return success; } bool AssetManifest::parseTime(const QStringList &tokens) { if((tokens.first() != "T") || (tokens.size() < 2)) { return false; } bool success; const auto time = tokens[1].toLongLong(&success, 10); if(success) { m_timestamp = time; } return success; } bool AssetManifest::parseFile(const QStringList &tokens) { if((tokens.first() != "F") || (tokens.size() < 4)) { return false; } bool success; FileInfo info; info.md5 = tokens[1].toLocal8Bit(); info.size = tokens[2].toLongLong(&success, 10); return success && m_root->addFile(tokens[3], QVariant::fromValue(info)); } bool AssetManifest::parseDirectory(const QStringList &tokens) { if((tokens.first() != "D") || (tokens.size() < 2)) { return false; } const auto dirName = tokens[1].endsWith('/') ? tokens[1].chopped(1) : tokens[1]; return m_root->addDirectory(dirName); } bool AssetManifest::FileInfo::operator ==(const FileInfo &other) const { return (size == other.size) && (md5 == other.md5); } bool AssetManifest::FileInfo::operator <(const FileInfo &other) const { return size < other.size; } flipperdevices-qFlipper-bfce851/backend/flipperzero/assetmanifest.h000066400000000000000000000016621452337521700257620ustar00rootroot00000000000000#pragma once #include #include #include #include "filenode.h" #include "failable.h" namespace Flipper { namespace Zero { class AssetManifest : public Failable { public: struct FileInfo { qint64 size; QByteArray md5; bool operator ==(const FileInfo &other) const; bool operator <(const FileInfo &other) const; }; AssetManifest(); AssetManifest(const QByteArray &text); int version() const; qint64 timestamp() const; FileNode *tree() const; private: bool parseLine(const QString &line); bool parseVersion(const QStringList &tokens); bool parseTime(const QStringList &tokens); bool parseFile(const QStringList &tokens); bool parseDirectory(const QStringList &tokens); int m_version; qint64 m_timestamp; QSharedPointer m_root; }; } } Q_DECLARE_METATYPE(Flipper::Zero::AssetManifest::FileInfo) flipperdevices-qFlipper-bfce851/backend/flipperzero/devicecolor.h000066400000000000000000000001661452337521700254100ustar00rootroot00000000000000#pragma once namespace Flipper { namespace Zero { enum class Color { Unknown = 0, Black, White }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/deviceinfo.h000066400000000000000000000054411452337521700252260ustar00rootroot00000000000000#pragma once #include #include #include #include "deviceregion.h" #include "devicecolor.h" #include "usbdeviceinfo.h" class QSerialPort; namespace Flipper { namespace Zero { struct HardwareInfo { Q_GADGET Q_PROPERTY(QString version MEMBER version) Q_PROPERTY(QString target MEMBER target) Q_PROPERTY(QString body MEMBER body) Q_PROPERTY(QString connect MEMBER connect) public: QString version; QString target; QString body; QString connect; Color color; Region region; // Needed in order to work with QVariant bool operator !=(const HardwareInfo &other) const { Q_UNUSED(other) return true; } }; struct SoftwareInfo { Q_GADGET Q_PROPERTY(QString version MEMBER version) Q_PROPERTY(QString commit MEMBER commit) Q_PROPERTY(QString branch MEMBER branch) Q_PROPERTY(QString channel MEMBER channel) Q_PROPERTY(QDate date MEMBER date) public: QString version; QString commit; QString branch; QString channel; QDate date; // Needed in order to work with QVariant bool operator !=(const SoftwareInfo &other) const { Q_UNUSED(other) return true; } }; struct StorageInfo { Q_GADGET Q_PROPERTY(int internalFree MEMBER internalFree) Q_PROPERTY(int externalFree MEMBER externalFree) Q_PROPERTY(bool isExternalPresent MEMBER isExternalPresent) Q_PROPERTY(bool isAssetsInstalled MEMBER isAssetsInstalled) public: int internalFree; int externalFree; bool isExternalPresent; bool isAssetsInstalled; // Needed in order to work with QVariant bool operator !=(const StorageInfo &other) const { Q_UNUSED(other) return true; } }; struct ProtobufInfo { public: uint32_t versionMajor; uint32_t versionMinor; }; struct DeviceInfo { Q_GADGET Q_PROPERTY(QString name MEMBER name) Q_PROPERTY(QString model MEMBER model) Q_PROPERTY(QString fusVersion MEMBER fusVersion) Q_PROPERTY(QString radioVersion MEMBER radioVersion) Q_PROPERTY(QString systemLocation MEMBER systemLocation) Q_PROPERTY(Flipper::Zero::HardwareInfo hardware MEMBER hardware) Q_PROPERTY(Flipper::Zero::SoftwareInfo firmware MEMBER firmware) Q_PROPERTY(Flipper::Zero::StorageInfo storage MEMBER storage) Q_PROPERTY(int stackType MEMBER stackType) public: QString name; QString model; QString fusVersion; QString radioVersion; int stackType; HardwareInfo hardware; SoftwareInfo firmware; ProtobufInfo protobuf; StorageInfo storage; QString systemLocation; USBDeviceInfo usbInfo; QSerialPortInfo portInfo; }; } } Q_DECLARE_METATYPE(Flipper::Zero::HardwareInfo) Q_DECLARE_METATYPE(Flipper::Zero::SoftwareInfo) Q_DECLARE_METATYPE(Flipper::Zero::DeviceInfo) Q_DECLARE_METATYPE(Flipper::Zero::StorageInfo) flipperdevices-qFlipper-bfce851/backend/flipperzero/deviceregion.h000066400000000000000000000002201452337521700255440ustar00rootroot00000000000000#pragma once namespace Flipper { namespace Zero { enum class Region { Dev = 0x00, EuRu, USCaAu, JpPlus, Worldwide }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/devicestate.cpp000066400000000000000000000072361452337521700257520ustar00rootroot00000000000000#include "devicestate.h" #include #include Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEBUG) using namespace Flipper; using namespace Zero; DeviceState::DeviceState(const DeviceInfo &deviceInfo, QObject *parent): QObject(parent), m_deviceInfo(deviceInfo), m_isPersistent(false), m_isOnline(false), m_isAllowVirtualDisplay(true), m_error(BackendError::NoError), m_progress(-1.0) { connect(this, &DeviceState::deviceInfoChanged, this, &DeviceState::onDeviceInfoChanged); connect(this, &DeviceState::isOnlineChanged, this, &DeviceState::onIsOnlineChanged); onDeviceInfoChanged(); } const DeviceInfo &DeviceState::deviceInfo() const { return m_deviceInfo; } void DeviceState::setDeviceInfo(const DeviceInfo &newDeviceInfo) { if(m_isOnline) { qCDebug(CATEGORY_DEBUG) << "Received a DeviceInfo too early, queueing it..."; m_queue.enqueue(newDeviceInfo); return; } if(newDeviceInfo.usbInfo.productID() == 0xdf11) { // Keep most of the data from previous session m_deviceInfo.usbInfo = newDeviceInfo.usbInfo; m_deviceInfo.portInfo = newDeviceInfo.portInfo; } else { m_deviceInfo = newDeviceInfo; } emit deviceInfoChanged(); } void DeviceState::setStorageInfo(const StorageInfo &newStorageInfo) { m_deviceInfo.storage = newStorageInfo; emit deviceInfoChanged(); } bool DeviceState::isPersistent() const { return m_isPersistent; } void DeviceState::setPersistent(bool set) { if(m_isPersistent == set) { return; } m_isPersistent = set; emit isPersistentChanged(); } bool DeviceState::isOnline() const { return m_isOnline; } void DeviceState::setOnline(bool set) { if(m_isOnline == set) { return; } m_isOnline = set; emit isOnlineChanged(); } bool DeviceState::isError() const { return m_error != BackendError::NoError; } bool DeviceState::isRecoveryMode() const { return m_deviceInfo.usbInfo.productID() == 0xdf11; } bool DeviceState::isAllowVirtualDisplay() const { return m_isAllowVirtualDisplay; } void DeviceState::setAllowVirtualDisplay(bool set) { if(m_isAllowVirtualDisplay == set) { return; } m_isAllowVirtualDisplay = set; } double DeviceState::progress() const { return m_progress; } void DeviceState::setProgress(double newProgress) { if(qFuzzyCompare(m_progress, newProgress)) { return; } m_progress = newProgress; emit progressChanged(); } const QString &DeviceState::statusString() const { return m_statusString; } void DeviceState::setStatusString(const QString &newStatusString) { if(m_statusString == newStatusString) { return; } m_statusString = newStatusString; emit statusStringChanged(); } const QString &DeviceState::errorString() const { return m_errorString; } BackendError::ErrorType DeviceState::error() const { return m_error; } void DeviceState::setError(BackendError::ErrorType error, const QString &errorString) { m_error = error; m_errorString = errorString; emit isErrorChanged(); } void DeviceState::clearError() { m_error = BackendError::NoError; m_errorString.clear(); emit isErrorChanged(); } const QString &DeviceState::name() const { return m_deviceInfo.name; } void DeviceState::onDeviceInfoChanged() { clearError(); setProgress(-1.0); } void DeviceState::onIsOnlineChanged() { processQueue(); } void DeviceState::processQueue() { if(!m_isOnline && !m_queue.isEmpty()) { qCDebug(CATEGORY_DEBUG) << "Took the latest DeviceInfo from the queue"; setDeviceInfo(m_queue.takeLast()); m_queue.clear(); } } flipperdevices-qFlipper-bfce851/backend/flipperzero/devicestate.h000066400000000000000000000044121452337521700254100ustar00rootroot00000000000000#pragma once #include #include #include "deviceinfo.h" #include "backenderror.h" namespace Flipper { namespace Zero { class DeviceState : public QObject { Q_OBJECT Q_PROPERTY(Flipper::Zero::DeviceInfo info READ deviceInfo NOTIFY deviceInfoChanged) Q_PROPERTY(bool isPersistent READ isPersistent NOTIFY isPersistentChanged) Q_PROPERTY(bool isOnline READ isOnline NOTIFY isOnlineChanged) Q_PROPERTY(bool isError READ isError NOTIFY isErrorChanged) Q_PROPERTY(bool isRecoveryMode READ isRecoveryMode NOTIFY deviceInfoChanged) Q_PROPERTY(QString statusString READ statusString NOTIFY statusStringChanged) Q_PROPERTY(QString errorString READ errorString NOTIFY isErrorChanged) Q_PROPERTY(double progress READ progress NOTIFY progressChanged) public: DeviceState(const DeviceInfo &deviceInfo, QObject *parent = nullptr); const DeviceInfo &deviceInfo() const; void setDeviceInfo(const DeviceInfo &newDeviceInfo); void setStorageInfo(const StorageInfo &newStorageInfo); bool isPersistent() const; void setPersistent(bool set); bool isOnline() const; void setOnline(bool set); bool isAllowVirtualDisplay() const; void setAllowVirtualDisplay(bool set); bool isError() const; bool isRecoveryMode() const; double progress() const; void setProgress(double newProgress); const QString &statusString() const; void setStatusString(const QString &newStatusString); const QString &errorString() const; BackendError::ErrorType error() const; void setError(BackendError::ErrorType error, const QString &errorString); void clearError(); //TODO: Replace with deviceInfo().name const QString &name() const; signals: void deviceInfoChanged(); void isPersistentChanged(); void isOnlineChanged(); void statusStringChanged(); void isErrorChanged(); void progressChanged(); private slots: void onDeviceInfoChanged(); void onIsOnlineChanged(); private: void processQueue(); DeviceInfo m_deviceInfo; QQueue m_queue; bool m_isPersistent; bool m_isOnline; bool m_isAllowVirtualDisplay; BackendError::ErrorType m_error; QString m_statusString; QString m_errorString; double m_progress; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/factoryinfo.cpp000066400000000000000000000104301452337521700257630ustar00rootroot00000000000000#include "factoryinfo.h" #include #include "debug.h" #define FACTORYINFO_NAME_SIZE 8 #define FACTORYINFO_V1_MAGIC 0xbabe namespace Flipper { namespace Zero { #pragma pack(push,1) struct OTPV0 { const uint8_t version; const uint8_t target; const uint8_t body; const uint8_t connect; const uint32_t timestamp; const char name[FACTORYINFO_NAME_SIZE]; }; struct OTPHeader { const uint16_t magic; const uint8_t format; const uint8_t reserved; const uint32_t timestamp; }; struct OTPV1 { const OTPHeader header; const uint8_t version; const uint8_t target; const uint8_t body; const uint8_t connect; const uint8_t color; const uint8_t region; const uint16_t reserved; const char name[FACTORYINFO_NAME_SIZE]; }; struct OTPV2 { const OTPHeader header; const uint8_t version; const uint8_t target; const uint8_t body; const uint8_t connect; const uint8_t display; const uint8_t reserved1; const uint16_t reserved2; const uint8_t color; const uint8_t region; const uint16_t reserved3; const uint32_t reserved4; const char name[FACTORYINFO_NAME_SIZE]; }; #pragma pack(pop) static_assert(sizeof(OTPV0) == 16, "Check struct packing for OTPv0"); static_assert(sizeof(OTPV1) == 24, "Check struct packing for OTPv1"); static_assert(sizeof(OTPV2) == 32, "Check struct packing for OTPv2"); #define FACTORYINFO_SIZE (sizeof(OTPV2)) FactoryInfo::FactoryInfo(const QByteArray &data): m_isValid(false), m_format(0), m_color(Color::Unknown), m_region(Region::Dev) { check_return_void(data.size() == FACTORYINFO_SIZE, "Bad data size"); check_return_void(data != QByteArray(FACTORYINFO_SIZE, '\xff'), "Data seems to be unprogrammed"); auto *header = (OTPHeader*)(data.data()); if(header->magic == FACTORYINFO_V1_MAGIC) { if(header->format == 1) { parseV1(data); } else if(header->format == 2) { parseV2(data); } else { error_msg("Unsupported OTP version"); return; } } else { parseV0(data); } QRegExp ascii("[^A-Za-z0-9.]"); check_return_void(ascii.indexIn(m_name) < 0, "Illegal character in the device name"); m_isValid = true; } qint64 FactoryInfo::size() { return FACTORYINFO_SIZE; } bool FactoryInfo::isValid() const { return m_isValid; } uint8_t FactoryInfo::format() const { return m_format; } uint8_t FactoryInfo::version() const { return m_version; } uint8_t FactoryInfo::target() const { return m_target; } uint8_t FactoryInfo::body() const { return m_body; } uint8_t FactoryInfo::connect() const { return m_connect; } const QString &FactoryInfo::name() const { return m_name; } Color FactoryInfo::color() const { return m_color; } Region FactoryInfo::region() const { return m_region; } size_t FactoryInfo::strnLen(const char *str, size_t maxlen) { for(size_t i = 0; i < maxlen; ++i) { if(!str[i]) return i; } return maxlen; } void FactoryInfo::parseV0(const QByteArray &data) { const auto *otp = (OTPV0*)(data.data()); m_version = otp->version; m_target = otp->target; m_body = otp->body; m_connect = otp->connect; m_date = otp->timestamp; m_name = QString::fromLatin1(otp->name, (int)strnLen(otp->name, FACTORYINFO_NAME_SIZE)); } void FactoryInfo::parseV1(const QByteArray &data) { const auto *otp = (OTPV1*)(data.data()); m_version = otp->version; m_target = otp->target; m_body = otp->body; m_connect = otp->connect; m_date = otp->header.timestamp; m_name = QString::fromLatin1(otp->name, (int)strnLen(otp->name, FACTORYINFO_NAME_SIZE)); m_format = otp->header.format; m_color = (Color)otp->color; m_region = (Region)otp->region; } void FactoryInfo::parseV2(const QByteArray &data) { const auto *otp = (OTPV2*)(data.data()); m_version = otp->version; m_target = otp->target; m_body = otp->body; m_connect = otp->connect; m_date = otp->header.timestamp; m_name = QString::fromLatin1(otp->name, (int)strnLen(otp->name, FACTORYINFO_NAME_SIZE)); m_format = otp->header.format; m_color = (Color)otp->color; m_region = (Region)otp->region; } qint64 FactoryInfo::date() const { return m_date; } }} flipperdevices-qFlipper-bfce851/backend/flipperzero/factoryinfo.h000066400000000000000000000016521452337521700254360ustar00rootroot00000000000000#pragma once #include #include #include "devicecolor.h" #include "deviceregion.h" namespace Flipper { namespace Zero { class FactoryInfo { public: FactoryInfo(const QByteArray &data); static qint64 size(); bool isValid() const; uint8_t format() const; uint8_t version() const; uint8_t target() const; uint8_t body() const; uint8_t connect() const; qint64 date() const; const QString &name() const; Color color() const; Region region() const; private: static size_t strnLen(const char *str, size_t maxlen); void parseV0(const QByteArray &data); void parseV1(const QByteArray &data); void parseV2(const QByteArray &data); bool m_isValid; uint8_t m_format; uint8_t m_version; uint8_t m_target; uint8_t m_body; uint8_t m_connect; qint64 m_date; QString m_name; Color m_color; Region m_region; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/filemanager.cpp000066400000000000000000000252751452337521700257270ustar00rootroot00000000000000#include "filemanager.h" #include #include #include #include #include #include #include #include "flipperzero.h" #include "protobufsession.h" #include "utilityinterface.h" #include "flipperzero/devicestate.h" #include "rpc/storageinfooperation.h" #include "rpc/storagelistoperation.h" #include "rpc/storagereadoperation.h" #include "rpc/storagemkdiroperation.h" #include "rpc/storageremoveoperation.h" #include "rpc/storagerenameoperation.h" #include "utility/filesuploadoperation.h" #include "utility/directorydownloadoperation.h" #include "preferences.h" #define MAX_UPLOAD_SIZE_BYTES (2000000) #define NEW_DIRECTORY_INDEX_INVALID -10 //IMPORTANT! Should not be -1! Q_LOGGING_CATEGORY(LOG_FILEMGR, "FMG") using namespace Flipper; using namespace Zero; FileManager::FileManager(QObject *parent): QAbstractListModel(parent), // m_device(nullptr), m_busyTimer(new QTimer(this)), m_isBusy(false), m_hasSDCard(false), m_newDirectoryIndex(NEW_DIRECTORY_INDEX_INVALID) { m_busyTimer->setSingleShot(true); connect(m_busyTimer, &QTimer::timeout, this, &FileManager::onBusyTimerTimeout); } void FileManager::setDevice(FlipperZero *device) { if(device == m_device) { return; } m_device = device; reset(); } void FileManager::reset() { m_forwardHistory.clear(); m_history = QStringList{QString()}; setModelData(FileInfoList()); } void FileManager::refresh() { listCurrentPath(); } void FileManager::cd(const QString &dirName) { pushd(dirName); listCurrentPath(); } void FileManager::pushd(const QString &dirName) { if(!m_forwardHistory.isEmpty()) { if(m_forwardHistory.last() != dirName) { m_forwardHistory.clear(); } else { m_forwardHistory.removeLast(); } } m_history.append(dirName); } void FileManager::popd() { if(m_history.size() == 1) { return; } m_forwardHistory.append(m_history.takeLast()); } void FileManager::historyForward() { if(m_forwardHistory.isEmpty()) { return; } const auto dirName = m_forwardHistory.last(); pushd(dirName); listCurrentPath(); } void FileManager::historyBack() { popd(); listCurrentPath(); } void FileManager::rename(const QString &oldName, const QString &newName) { if(!checkDevice()) { return; } registerOperation(m_device->rpc()->storageRename(remoteFilePath(oldName), remoteFilePath(newName))); } void FileManager::remove(const QString &fileName, bool recursive) { if(!checkDevice()) { return; } registerOperation(m_device->rpc()->storageRemove(remoteFilePath(fileName), recursive)); } void FileManager::beginMkDir() { beginInsertRows(QModelIndex(), m_modelData.size(), m_modelData.size()); FileInfo newDir; newDir.type = FileType::Directory; newDir.name = QByteArrayLiteral("New Folder"); m_modelData.append(newDir); endInsertRows(); setNewDirectoryIndex(m_modelData.size() - 1); } void FileManager::commitMkDir(const QString &dirName) { if(!checkDevice()) { return; } setNewDirectoryIndex(NEW_DIRECTORY_INDEX_INVALID); registerOperation(m_device->rpc()->storageMkdir(remoteFilePath(dirName))); } void FileManager::upload(const QList &urlList) { if(!checkDevice()) { return; } registerOperation(m_device->utility()->uploadFiles(urlList, currentPath().toLocal8Bit())); } void FileManager::uploadTo(const QString &remoteDirName, const QList &urlList) { pushd(remoteDirName); upload(urlList); } void FileManager::download(const QString &remoteFileName, const QUrl &localUrl, bool recursive) { const auto remote = remoteFileName.toLocal8Bit(); const auto local = localUrl.toLocalFile(); if(recursive) { downloadDirectory(remote, local); } else { downloadFile(remote, local); } } bool FileManager::isTooLarge(const QList &urlList) const { qint64 totalSize = 0; for(const auto &url : urlList) { totalSize += localFileSize(url); } return totalSize > MAX_UPLOAD_SIZE_BYTES; } bool FileManager::isBusy() const { return m_isBusy; } bool FileManager::isRoot() const { return currentPath() == QStringLiteral("/"); } bool FileManager::canGoBack() const { return m_history.size() > 1; } bool FileManager::canGoForward() const { return !m_forwardHistory.isEmpty(); } QString FileManager::currentPath() const { if(m_history.size() == 1) { return QStringLiteral("/"); } else { return m_history.join('/'); } } int FileManager::newDirectoryIndex() const { return m_newDirectoryIndex; } int FileManager::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent) return m_modelData.size(); } QVariant FileManager::data(const QModelIndex &index, int role) const { const auto &item = m_modelData[index.row()]; switch(role) { case FileName: return item.name; case FilePath: return item.absolutePath; case FileType: return (int)item.type; case FileSize: return item.size; default: return QVariant(); } } QHash FileManager::roleNames() const { static const QHash roles = { { FileName, QByteArrayLiteral("fileName") }, { FilePath, QByteArrayLiteral("filePath") }, { FileType, QByteArrayLiteral("fileType") }, { FileSize, QByteArrayLiteral("fileSize") }, }; return roles; } void FileManager::onBusyTimerTimeout() { m_isBusy = true; emit isBusyChanged(); } bool FileManager::checkDevice() { bool ret = !m_device.isNull(); if(!ret) { setError(BackendError::OperationError, QStringLiteral("Current device has been destroyed")); emit errorOccured(); } return ret; } void FileManager::setBusy(bool busy) { // Do not mark short operations as busy to avoid visual noise if(busy) { if(!m_busyTimer->isActive()) { m_busyTimer->start(500); } } else { m_busyTimer->stop(); if(m_isBusy) { m_isBusy = false; emit isBusyChanged(); } } } void FileManager::setNewDirectoryIndex(int newIndex) { if(newIndex == m_newDirectoryIndex) { return; } m_newDirectoryIndex = newIndex; emit newDirectoryIndexChanged(); } void FileManager::listCurrentPath() { if(m_device.isNull()) { return; } else if(isRoot()) { auto *operation = m_device->rpc()->storageInfo(QByteArrayLiteral("/ext")); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { setError(BackendError::OperationError, operation->errorString()); emit errorOccured(); } else { m_hasSDCard = operation->isPresent(); setModelDataRoot(); emit currentPathChanged(); } }); } else { auto *operation = m_device->rpc()->storageList(currentPath().toLocal8Bit()); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { setError(BackendError::OperationError, operation->errorString()); emit errorOccured(); } else if(!operation->hasPath()) { reset(); listCurrentPath(); } else { setModelData(operation->files()); emit currentPathChanged(); } }); } } void FileManager::downloadFile(const QByteArray &remoteFileName, const QString &localFileName) { if(!checkDevice()) { return; } auto *file = new QFile(localFileName, this); auto *operation = m_device->rpc()->storageRead(remoteFilePath(remoteFileName), file); connect(operation, &AbstractOperation::finished, file, &QObject::deleteLater); registerOperation(operation); } void FileManager::downloadDirectory(const QByteArray &remoteDirName, const QString &localDirName) { if(!checkDevice()) { return; } registerOperation(m_device->utility()->downloadDirectory(localDirName, remoteFilePath(remoteDirName))); } void FileManager::setModelDataRoot() { beginResetModel(); m_modelData.clear(); m_modelData.append({ QByteArrayLiteral("int"), QByteArrayLiteral("/int"), FileType::Directory, 0 }); if(m_hasSDCard) { m_modelData.append({ QByteArrayLiteral("ext"), QByteArrayLiteral("/ext"), FileType::Directory, 0 }); } endResetModel(); } void FileManager::setModelData(const FileInfoList &newData) { beginResetModel(); m_modelData = newData; if(!globalPrefs->showHiddenFiles()) { m_modelData.erase(std::remove_if(m_modelData.begin(), m_modelData.end(), [](const FileInfo &arg) { return arg.name.startsWith('.'); }), m_modelData.end()); } std::sort(m_modelData.begin(), m_modelData.end(), [](const FileInfo &a, const FileInfo &b) { if(a.type != b.type) { return a.type < b.type; } else { return a.name.toLower() < b.name.toLower(); } }); endResetModel(); } void FileManager::registerOperation(AbstractOperation *operation) { setBusy(true); m_device->deviceState()->setProgress(-1.0); connect(operation, &AbstractOperation::progressChanged, m_device, [=]() { m_device->deviceState()->setProgress(operation->progress()); }); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { setError(BackendError::OperationError, operation->errorString()); emit errorOccured(); } else { listCurrentPath(); } setBusy(false); }); } const QByteArray FileManager::remoteFilePath(const QString &fileName) const { const auto isRoot = currentPath() == QStringLiteral("/"); return QStringLiteral("%1/%2").arg(currentPath(), fileName).mid(isRoot ? 1 : 0).toLocal8Bit(); } qint64 FileManager::localFileSize(const QUrl &localUrl) { const QFileInfo info(localUrl.toLocalFile()); if(info.isFile()) { return info.size(); } else if(info.isDir()) { qint64 totalSize = 0; QDirIterator it(localUrl.toLocalFile(), QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); while(it.hasNext()) { const QFileInfo info(it.next()); if(info.isFile()) { // Not counting the directories, because directories are not actually transmitted totalSize += info.size(); } } return totalSize; } else { return 0; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/filemanager.h000066400000000000000000000064031452337521700253640ustar00rootroot00000000000000#pragma once #include #include #include #include #include #include "failable.h" #include "fileinfo.h" class QTimer; class QFileInfo; class AbstractOperation; namespace Flipper { class FlipperZero; namespace Zero { class FileManager : public QAbstractListModel, public Failable { Q_OBJECT Q_PROPERTY(bool isBusy READ isBusy NOTIFY isBusyChanged) Q_PROPERTY(bool isRoot READ isRoot NOTIFY currentPathChanged) Q_PROPERTY(bool canGoBack READ canGoBack NOTIFY currentPathChanged) Q_PROPERTY(bool canGoForward READ canGoForward NOTIFY currentPathChanged) Q_PROPERTY(QString currentPath READ currentPath NOTIFY currentPathChanged) Q_PROPERTY(int newDirectoryIndex READ newDirectoryIndex NOTIFY newDirectoryIndexChanged) public: enum FieldRole { FileName = Qt::UserRole, FilePath, FileType, FileSize }; Q_ENUM(FieldRole) FileManager(QObject *parent = nullptr); void setDevice(FlipperZero *device); // Methods to call from Qml Q_INVOKABLE void reset(); Q_INVOKABLE void refresh(); Q_INVOKABLE void cd(const QString &dirName); Q_INVOKABLE void historyForward(); Q_INVOKABLE void historyBack(); Q_INVOKABLE void rename(const QString &oldName, const QString &newName); Q_INVOKABLE void remove(const QString &fileName, bool recursive = false); Q_INVOKABLE void beginMkDir(); Q_INVOKABLE void commitMkDir(const QString &dirName); Q_INVOKABLE void upload(const QList &urlList); Q_INVOKABLE void uploadTo(const QString &remoteDirName, const QList &urlList); Q_INVOKABLE void download(const QString &remoteFileName, const QUrl &localUrl, bool recursive = false); Q_INVOKABLE bool isTooLarge(const QList &urlList) const; // Properties bool isBusy() const; bool isRoot() const; bool canGoBack() const; bool canGoForward() const; QString currentPath() const; int newDirectoryIndex() const; // QAbstractListModel API int rowCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QHash roleNames() const override; signals: void isBusyChanged(); void currentPathChanged(); void newDirectoryIndexChanged(); void errorOccured(); private slots: void onBusyTimerTimeout(); private: bool checkDevice(); void setBusy(bool busy); void setNewDirectoryIndex(int newIndex); void pushd(const QString &dirName); void popd(); void listCurrentPath(); void downloadFile(const QByteArray &remoteFileName, const QString &localFileName); void downloadDirectory(const QByteArray &remoteDirName, const QString &localDirName); void setModelDataRoot(); void setModelData(const FileInfoList &newData); void registerOperation(AbstractOperation *operation); const QByteArray remoteFilePath(const QString &fileName) const; static qint64 localFileSize(const QUrl &localUrl); QPointer m_device; FileInfoList m_modelData; QStringList m_history; QStringList m_forwardHistory; QTimer *m_busyTimer; bool m_isBusy; bool m_hasSDCard; int m_newDirectoryIndex; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/flipperzero.cpp000066400000000000000000000207201452337521700260040ustar00rootroot00000000000000#include "flipperzero.h" #include #include #include #include #include "preferences.h" #include "flipperupdates.h" #include "devicestate.h" #include "protobufsession.h" #include "utilityinterface.h" #include "recoveryinterface.h" #include "toplevel/wirelessstackupdateoperation.h" #include "toplevel/firmwareinstalloperation.h" #include "toplevel/settingsrestoreoperation.h" #include "toplevel/settingsbackupoperation.h" #include "toplevel/fullupdateoperation.h" #include "toplevel/factoryresetoperation.h" #include "toplevel/fullrepairoperation.h" #include "toplevel/legacyupdateoperation.h" #include "utility/storageinforefreshoperation.h" Q_LOGGING_CATEGORY(CAT_DEVICE, "DEV") #define CHANNEL_DEVELOPMENT "development" #define CHANNEL_RELEASE_CANDIDATE "release-candidate" #define CHANNEL_RELEASE "release" using namespace Flipper; using namespace Updates; using namespace Zero; FlipperZero::FlipperZero(const Zero::DeviceInfo &info, QObject *parent): QObject(parent), m_state(new DeviceState(info, this)), m_rpc(new ProtobufSession(info.portInfo, this)), m_recovery(new RecoveryInterface(m_state, this)), m_utility(new UtilityInterface(m_state, m_rpc, this)) { connect(m_state, &DeviceState::deviceInfoChanged, this, &FlipperZero::onDeviceInfoChanged); connect(m_state, &DeviceState::deviceInfoChanged, this, &FlipperZero::deviceStateChanged); connect(m_rpc, &ProtobufSession::sessionStateChanged, this, &FlipperZero::onSessionStatusChanged); onDeviceInfoChanged(); } DeviceState *FlipperZero::deviceState() const { return m_state; } ProtobufSession *FlipperZero::rpc() const { return m_rpc; } UtilityInterface *FlipperZero::utility() const { return m_utility; } // TODO: Handle -rcxx suffixes correctly bool FlipperZero::canUpdate(const Updates::VersionInfo &versionInfo) const { const auto &storageInfo = m_state->deviceInfo().storage; const auto &radioStackVersion = m_state->deviceInfo().radioVersion; const auto noAssets = storageInfo.isExternalPresent && !storageInfo.isAssetsInstalled; const auto noRadioStack = radioStackVersion.isEmpty(); if(noAssets || noRadioStack) { return true; } static const auto DEVELOPMENT = QStringLiteral("development"); static const auto RELEASE_CANDIDATE = QStringLiteral("release-candidate"); static const auto RELEASE = QStringLiteral("release"); const auto &firmwareInfo = m_state->deviceInfo().firmware; const auto &deviceChannel = firmwareInfo.channel; const auto &deviceVersion = (deviceChannel == QStringLiteral("development")) ? firmwareInfo.commit : firmwareInfo.version; const auto &deviceDate = firmwareInfo.date; const auto &serverChannel = globalPrefs->firmwareUpdateChannel(); const auto &serverVersion = versionInfo.number(); const auto &serverDate = versionInfo.date(); if(deviceChannel == RELEASE) { if(serverChannel == RELEASE) { return VersionInfo::compare(deviceVersion, serverVersion) < 0; } else if(serverChannel == RELEASE_CANDIDATE) { return VersionInfo::compare(deviceVersion, serverVersion) < 0; } else if(serverChannel == DEVELOPMENT) { return deviceDate <= serverDate; } } else if(deviceChannel == RELEASE_CANDIDATE) { if(serverChannel == RELEASE) { return VersionInfo::compare(deviceVersion, serverVersion) <= 0; } else if(serverChannel == RELEASE_CANDIDATE) { return VersionInfo::compare(deviceVersion, serverVersion) < 0; } else if(serverChannel == DEVELOPMENT) { return deviceDate <= serverDate; } } else if(deviceChannel == DEVELOPMENT) { if(serverChannel == RELEASE) { return deviceDate <= serverDate; } else if(serverChannel == RELEASE_CANDIDATE) { return deviceDate <= serverDate; } else if(serverChannel == DEVELOPMENT) { return (deviceVersion != serverVersion) && (deviceDate <= serverDate); } } return false; } bool FlipperZero::canInstall(const Updates::VersionInfo &versionInfo) const { Q_UNUSED(versionInfo) const auto &deviceChannel = m_state->deviceInfo().firmware.channel; const auto &serverChannel = globalPrefs->firmwareUpdateChannel(); return deviceChannel != serverChannel; } bool FlipperZero::canRepair(const Updates::VersionInfo &versionInfo) const { Q_UNUSED(versionInfo) return m_state->isRecoveryMode(); } void FlipperZero::fullUpdate(const Updates::VersionInfo &versionInfo) { const auto &storageInfo = m_state->deviceInfo().storage; const auto &protobufInfo = m_state->deviceInfo().protobuf; const auto isLegacyUpdate = !storageInfo.isExternalPresent || ((protobufInfo.versionMajor == 0) && (protobufInfo.versionMinor < 7)); if(isLegacyUpdate) { registerOperation(new LegacyUpdateOperation(m_recovery, m_utility, m_state, versionInfo, this)); } else { registerOperation(new FullUpdateOperation(m_utility, m_state, versionInfo, this)); } } void FlipperZero::fullRepair(const Updates::VersionInfo &versionInfo) { registerOperation(new FullRepairOperation(m_recovery, m_utility, m_state, versionInfo, this)); } void FlipperZero::createBackup(const QUrl &backupUrl) { registerOperation(new SettingsBackupOperation(m_utility, m_state, backupUrl, this)); } void FlipperZero::restoreBackup(const QUrl &backupUrl) { registerOperation(new SettingsRestoreOperation(m_utility, m_state, backupUrl, this)); } void FlipperZero::factoryReset() { registerOperation(new FactoryResetOperation(m_utility, m_state, this)); } void FlipperZero::installFirmware(const QUrl &fileUrl) { if(fileUrl.fileName().endsWith(QStringLiteral(".tgz"))) { registerOperation(new FullUpdateOperation(m_utility, m_state, fileUrl, this)); } else { registerOperation(new FirmwareInstallOperation(m_recovery, m_utility, m_state, fileUrl.toLocalFile(), this)); } } void FlipperZero::installWirelessStack(const QUrl &fileUrl) { registerOperation(new WirelessStackUpdateOperation(m_recovery, m_utility, m_state, fileUrl.toLocalFile(), this)); } void FlipperZero::installFUS(const QUrl &fileUrl, uint32_t address) { registerOperation(new FUSUpdateOperation(m_recovery, m_utility, m_state, fileUrl.toLocalFile(), address, this)); } void FlipperZero::refreshStorageInfo() { m_utility->refreshStorageInfo(); } void FlipperZero::finalizeOperation() { // TODO: write a better implementation that would: // 1. Check if the port is open and functional // 2. Test if the RPC session is up an running // 3. Open RPC session if necessary if(m_state->isError()) { m_state->clearError(); } } void FlipperZero::onDeviceInfoChanged() { if(m_state->isOnline()) { // Most likely Storage info update return; } else if(m_state->isRecoveryMode()) { // Recovery mode, not using Protobuf m_state->setOnline(true); return; } // Perform Protobuf session initialisation const auto &deviceInfo = m_state->deviceInfo(); qCDebug(CAT_DEVICE).noquote() << "Version:" << deviceInfo.firmware.version << "commit:" << deviceInfo.firmware.commit << "radio:" << deviceInfo.radioVersion; const auto &pb = deviceInfo.protobuf; const auto &pi = deviceInfo.portInfo; m_rpc->setMajorVersion(pb.versionMajor); m_rpc->setMinorVersion(pb.versionMinor); m_rpc->setSerialPort(pi); // 100 ms delay to prevent race condition in Flipper QTimer::singleShot(100, m_rpc, &ProtobufSession::startSession); } void FlipperZero::onSessionStatusChanged() { if(m_rpc->isError()) { m_state->setError(m_rpc->error(), m_rpc->errorString()); emit operationFinished(); } else if(m_rpc->isSessionUp()) { m_state->setOnline(true); } } void FlipperZero::registerOperation(AbstractOperation *operation) { connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { qCCritical(CAT_DEVICE).noquote() << operation->description() << "ERROR:" << operation->errorString(); m_state->setError(operation->error(), operation->errorString()); } else { qCInfo(CAT_DEVICE).noquote() << operation->description() << "SUCCESS"; } operation->deleteLater(); emit operationFinished(); }); qCInfo(CAT_DEVICE).noquote() << operation->description() << "START"; operation->start(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/flipperzero.h000066400000000000000000000031761452337521700254570ustar00rootroot00000000000000#pragma once #include #include class USBDeviceInfo; class AbstractOperation; namespace Flipper { namespace Updates { class VersionInfo; } namespace Zero { struct DeviceInfo; class DeviceState; class ProtobufSession; class RecoveryInterface; class UtilityInterface; } class FlipperZero : public QObject { Q_OBJECT public: FlipperZero(const Zero::DeviceInfo &info, QObject *parent = nullptr); Zero::DeviceState *deviceState() const; Zero::ProtobufSession *rpc() const; Zero::UtilityInterface *utility() const; bool canUpdate(const Flipper::Updates::VersionInfo &versionInfo) const; bool canInstall(const Flipper::Updates::VersionInfo &versionInfo) const; bool canRepair(const Flipper::Updates::VersionInfo &versionInfo) const; void fullUpdate(const Flipper::Updates::VersionInfo &versionInfo); void fullRepair(const Flipper::Updates::VersionInfo &versionInfo); void createBackup(const QUrl &backupUrl); void restoreBackup(const QUrl &backupUrl); void factoryReset(); void installFirmware(const QUrl &fileUrl); void installWirelessStack(const QUrl &fileUrl); void installFUS(const QUrl &fileUrl, uint32_t address); void refreshStorageInfo(); void finalizeOperation(); signals: void deviceStateChanged(); void operationFinished(); private slots: void onDeviceInfoChanged(); void onSessionStatusChanged(); private: void registerOperation(AbstractOperation *operation); Zero::DeviceState *m_state; Zero::ProtobufSession *m_rpc; Zero::RecoveryInterface *m_recovery; Zero::UtilityInterface *m_utility; }; } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/000077500000000000000000000000001452337521700242155ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/deviceinfohelper.cpp000066400000000000000000000356741452337521700302530ustar00rootroot00000000000000#include "deviceinfohelper.h" #include #include #include #include #include #include #include "flipperzero/factoryinfo.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/stoprpcoperation.h" #include "flipperzero/rpc/storageinfooperation.h" #include "flipperzero/rpc/storagestatoperation.h" #include "flipperzero/rpc/propertygetoperation.h" #include "flipperzero/rpc/systemdeviceinfooperation.h" #include "flipperzero/rpc/systemgetdatetimeoperation.h" #include "flipperzero/rpc/systemsetdatetimeoperation.h" #include "flipperzero/rpc/systemprotobufversionoperation.h" #include "device/stm32wb55.h" #include "serialfinder.h" Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEBUG) using namespace Flipper; using namespace Zero; AbstractDeviceInfoHelper::AbstractDeviceInfoHelper(QObject *parent): AbstractOperationHelper(parent), m_deviceInfo({}) {} AbstractDeviceInfoHelper::~AbstractDeviceInfoHelper() {} AbstractDeviceInfoHelper *AbstractDeviceInfoHelper::create(const USBDeviceInfo &info, QObject *parent) { const auto pid = info.productID(); if(pid == 0x5740) { return new VCPDeviceInfoHelper(info, parent); } else if(pid == 0xdf11) { return new DFUDeviceInfoHelper(info, parent); } else { qCDebug(CATEGORY_DEBUG) << "Not a Flipper Zero device"; return nullptr; } } const DeviceInfo &AbstractDeviceInfoHelper::result() const { return m_deviceInfo; } VCPDeviceInfoHelper::VCPDeviceInfoHelper(const USBDeviceInfo &info, QObject *parent): AbstractDeviceInfoHelper(parent) { m_deviceInfo.usbInfo = info; } void VCPDeviceInfoHelper::nextStateLogic() { if(state() == AbstractDeviceInfoHelper::Ready) { setState(VCPDeviceInfoHelper::FindingSerialPort); findSerialPort(); } else if(state() == VCPDeviceInfoHelper::FindingSerialPort) { setState(VCPDeviceInfoHelper::StartingRPCSession); startRPCSession(); } else if(state() == VCPDeviceInfoHelper::StartingRPCSession) { setState(VCPDeviceInfoHelper::FetchingProtobufVersion); fetchProtobufVersion(); } else if(state() == VCPDeviceInfoHelper::FetchingProtobufVersion) { setState(VCPDeviceInfoHelper::FetchingDeviceInfo); fetchDeviceInfo(); } else if(state() == VCPDeviceInfoHelper::FetchingDeviceInfo) { setState(VCPDeviceInfoHelper::CheckingSDCard); checkSDCard(); } else if(state() == VCPDeviceInfoHelper::CheckingSDCard) { setState(VCPDeviceInfoHelper::CheckingManifest); checkManifest(); } else if(state() == VCPDeviceInfoHelper::CheckingManifest) { setState(VCPDeviceInfoHelper::GettingTimeSkew); getTimeSkew(); } else if(state() == VCPDeviceInfoHelper::GettingTimeSkew) { setState(VCPDeviceInfoHelper::SyncingTime); syncTime(); } else if(state() == VCPDeviceInfoHelper::SyncingTime) { setState(VCPDeviceInfoHelper::StoppingRPCSession); stopRPCSession(); } } void VCPDeviceInfoHelper::findSerialPort() { auto *finder = new SerialFinder(m_deviceInfo.usbInfo.serialNumber(), this); connect(finder, &SerialFinder::finished, this, [=](const QSerialPortInfo &portInfo) { if(portInfo.isNull()) { finishWithError(BackendError::SerialAccessError, QStringLiteral("Failed to find a suitable serial port")); } else { qCDebug(CATEGORY_DEBUG).noquote() << "Using serial port" << portInfo.serialNumber() << "at" << portInfo.systemLocation(); m_deviceInfo.portInfo = portInfo; m_deviceInfo.systemLocation = portInfo.systemLocation(); advanceState(); } }); } void VCPDeviceInfoHelper::startRPCSession() { m_rpc = new ProtobufSession(m_deviceInfo.portInfo, this); connect(m_rpc, &ProtobufSession::sessionStateChanged, this, &VCPDeviceInfoHelper::onSessionStatusChanged); m_rpc->startSession(); } void VCPDeviceInfoHelper::fetchProtobufVersion() { auto *operation = m_rpc->systemProtobufVersion(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to get protobuf version: %1").arg(operation->errorString())); return; } m_deviceInfo.protobuf = { operation->versionMajor(), operation->versionMinor() }; qCDebug(CATEGORY_DEBUG).noquote() << QStringLiteral("Detected protobuf version: %1.%2").arg(operation->versionMajor()).arg(operation->versionMinor()); advanceState(); }); } void VCPDeviceInfoHelper::fetchDeviceInfo() { const auto &protobuf = m_deviceInfo.protobuf; if((protobuf.versionMajor > 0) || (protobuf.versionMinor >= 14)) { fetchDeviceInfoProperty(); } else { fetchDeviceInfoLegacy(); } } void VCPDeviceInfoHelper::fetchDeviceInfoLegacy() { auto *operation = m_rpc->systemDeviceInfo(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to get device information: %1").arg(operation->errorString())); return; } m_deviceInfo.name = operation->value(QByteArrayLiteral("hardware_name")); m_deviceInfo.firmware = { operation->value(QByteArrayLiteral("firmware_version")), operation->value(QByteArrayLiteral("firmware_commit")), operation->value(QByteArrayLiteral("firmware_branch")), branchToChannelName(operation->value(QByteArrayLiteral("firmware_branch"))), QDateTime::fromString(operation->value(QByteArrayLiteral("firmware_build_date")), "dd-MM-yyyy").date() }; m_deviceInfo.hardware = { operation->value(QByteArrayLiteral("hardware_ver")), QByteArrayLiteral("f") + operation->value(QByteArrayLiteral("hardware_target")), QByteArrayLiteral("b") + operation->value(QByteArrayLiteral("hardware_body")), QByteArrayLiteral("c") + operation->value(QByteArrayLiteral("hardware_connect")), (Color)operation->value(QByteArrayLiteral("hardware_color")).toInt(), (Region)operation->value(QByteArrayLiteral("hardware_region")).toInt(), }; if(operation->value(QByteArrayLiteral("radio_alive")) == QByteArrayLiteral("true")) { m_deviceInfo.fusVersion = QStringLiteral("%1.%2.%3").arg( operation->value(QByteArrayLiteral("radio_fus_major")), operation->value(QByteArrayLiteral("radio_fus_minor")), operation->value(QByteArrayLiteral("radio_fus_sub"))); m_deviceInfo.radioVersion = QStringLiteral("%1.%2.%3").arg( operation->value(QByteArrayLiteral("radio_stack_major")), operation->value(QByteArrayLiteral("radio_stack_minor")), operation->value(QByteArrayLiteral("radio_stack_sub"))); m_deviceInfo.stackType = operation->value(QByteArrayLiteral("radio_stack_type")).toInt(); } if(m_deviceInfo.name.isEmpty()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to read device information: required fields are not present")); } else { advanceState(); } }); } void VCPDeviceInfoHelper::fetchDeviceInfoProperty() { auto *operation = m_rpc->propertyGet(QByteArrayLiteral("devinfo")); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to get device information: %1").arg(operation->errorString())); return; } m_deviceInfo.name = operation->value(QByteArrayLiteral("hardware.name")); m_deviceInfo.firmware = { operation->value(QByteArrayLiteral("firmware.version")), operation->value(QByteArrayLiteral("firmware.commit.hash")), operation->value(QByteArrayLiteral("firmware.branch.name")), branchToChannelName(operation->value(QByteArrayLiteral("firmware.branch.name"))), QDateTime::fromString(operation->value(QByteArrayLiteral("firmware.build.date")), "dd-MM-yyyy").date() }; m_deviceInfo.hardware = { operation->value(QByteArrayLiteral("hardware.ver")), QByteArrayLiteral("f") + operation->value(QByteArrayLiteral("hardware.target")), QByteArrayLiteral("b") + operation->value(QByteArrayLiteral("hardware.body")), QByteArrayLiteral("c") + operation->value(QByteArrayLiteral("hardware.connect")), (Color)operation->value(QByteArrayLiteral("hardware.color")).toInt(), (Region)operation->value(QByteArrayLiteral("hardware.region.builtin")).toInt(), }; if(operation->value(QByteArrayLiteral("radio.alive")) == QByteArrayLiteral("true")) { m_deviceInfo.fusVersion = QStringLiteral("%1.%2.%3").arg( operation->value(QByteArrayLiteral("radio.fus.major")), operation->value(QByteArrayLiteral("radio.fus.minor")), operation->value(QByteArrayLiteral("radio.fus.sub"))); m_deviceInfo.radioVersion = QStringLiteral("%1.%2.%3").arg( operation->value(QByteArrayLiteral("radio.stack.major")), operation->value(QByteArrayLiteral("radio.stack.minor")), operation->value(QByteArrayLiteral("radio.stack.sub"))); m_deviceInfo.stackType = operation->value(QByteArrayLiteral("radio.stack.type")).toInt(); } if(m_deviceInfo.name.isEmpty()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to read device information: required fields are not present")); } else { advanceState(); } }); } void VCPDeviceInfoHelper::checkSDCard() { auto *operation = m_rpc->storageInfo(QByteArrayLiteral("/ext")); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to check SD card: %1").arg(operation->errorString())); } else if(!operation->isPresent()) { m_deviceInfo.storage.isExternalPresent = false; m_deviceInfo.storage.isAssetsInstalled = false; setState(VCPDeviceInfoHelper::CheckingManifest); advanceState(); } else { m_deviceInfo.storage.isExternalPresent = true; m_deviceInfo.storage.externalFree = floor((double)operation->sizeFree() * 100.0 / (double)operation->sizeTotal()); advanceState(); } }); } void VCPDeviceInfoHelper::checkManifest() { auto *operation = m_rpc->storageStat(QByteArrayLiteral("/ext/Manifest")); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to check resource manifest: %1").arg(operation->errorString())); } else { m_deviceInfo.storage.isAssetsInstalled = operation->hasFile() && (operation->type() == StorageStatOperation::RegularFile); advanceState(); } }); } void VCPDeviceInfoHelper::getTimeSkew() { auto *operation = m_rpc->getDateTime(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to check device time: %1").arg(operation->errorString())); } else { const auto timeSkew = QDateTime::currentDateTime().msecsTo(operation->dateTime()); qCDebug(CATEGORY_DEBUG) << "Flipper time skew is" << timeSkew << "milliseconds"; advanceState(); } }); } void VCPDeviceInfoHelper::syncTime() { auto *operation = m_rpc->setDateTime(QDateTime::currentDateTime()); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to set device time: %1").arg(operation->errorString())); } else { advanceState(); } }); } void VCPDeviceInfoHelper::stopRPCSession() { m_rpc->stopSession(); } void VCPDeviceInfoHelper::onSessionStatusChanged() { if(m_rpc->isError()) { finishWithError(m_rpc->error(), QStringLiteral("Protobuf session error: %1").arg(m_rpc->errorString())); } else if(state() == VCPDeviceInfoHelper::StartingRPCSession && m_rpc->isSessionUp()) { advanceState(); } else if(state() == VCPDeviceInfoHelper::StoppingRPCSession && !m_rpc->isSessionUp()) { finish(); } } const QString &VCPDeviceInfoHelper::branchToChannelName(const QByteArray &branchName) { static const auto DEVELOPMENT = QStringLiteral("development"); static const auto RELEASE_CANDIDATE = QStringLiteral("release-candidate"); static const auto RELEASE = QStringLiteral("release"); static const auto CUSTOM = QStringLiteral("custom"); const QRegExp validVersion(QStringLiteral("^\\d+\\.\\d+\\.\\d+(-rc)?$")); if(validVersion.exactMatch(branchName)) { if(validVersion.cap(1).isEmpty()) { return RELEASE; } else { return RELEASE_CANDIDATE; } } else if(branchName == QByteArrayLiteral("dev")) { return DEVELOPMENT; } else { return CUSTOM; } } using namespace STM32; DFUDeviceInfoHelper::DFUDeviceInfoHelper(const USBDeviceInfo &info, QObject *parent): AbstractDeviceInfoHelper(parent) { m_deviceInfo.usbInfo = info; m_deviceInfo.systemLocation = QStringLiteral("S/N:%1").arg(info.serialNumber()); m_deviceInfo.storage.isExternalPresent = false; m_deviceInfo.storage.isAssetsInstalled = false; } void DFUDeviceInfoHelper::nextStateLogic() { STM32WB55 device(m_deviceInfo.usbInfo); if(!device.beginTransaction()) { finishWithError(BackendError::RecoveryAccessError, QStringLiteral("Failed to initiate transaction")); return; } const FactoryInfo factoryInfo(device.OTPData(FactoryInfo::size())); if(!device.endTransaction()) { finishWithError(BackendError::RecoveryAccessError, QStringLiteral("Failed to end transaction")); return; } if(!factoryInfo.isValid()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to read device factory information")); return; } m_deviceInfo.name = factoryInfo.name(); m_deviceInfo.hardware.version = QString::number(factoryInfo.version()); m_deviceInfo.hardware.target = QStringLiteral("f%1").arg(factoryInfo.target()); m_deviceInfo.hardware.body = QStringLiteral("b%1").arg(factoryInfo.body()); m_deviceInfo.hardware.connect = QStringLiteral("c%1").arg(factoryInfo.connect()); m_deviceInfo.hardware.color = factoryInfo.color(); m_deviceInfo.hardware.region = factoryInfo.region(); finish(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/deviceinfohelper.h000066400000000000000000000034151452337521700277040ustar00rootroot00000000000000#pragma once #include #include #include "abstractoperationhelper.h" #include "flipperzero/deviceinfo.h" class QTimer; class QSerialPort; namespace Flipper { namespace Zero { class ProtobufSession; class AbstractDeviceInfoHelper : public AbstractOperationHelper { Q_OBJECT public: AbstractDeviceInfoHelper(QObject *parent = nullptr); virtual ~AbstractDeviceInfoHelper(); static AbstractDeviceInfoHelper *create(const USBDeviceInfo &info, QObject *parent = nullptr); const DeviceInfo &result() const; protected: DeviceInfo m_deviceInfo; }; class VCPDeviceInfoHelper : public AbstractDeviceInfoHelper { Q_OBJECT enum OperationState { FindingSerialPort = AbstractOperationHelper::User, StartingRPCSession, FetchingProtobufVersion, FetchingDeviceInfo, CheckingSDCard, CheckingManifest, GettingTimeSkew, SyncingTime, StoppingRPCSession }; public: VCPDeviceInfoHelper(const USBDeviceInfo &info, QObject *parent = nullptr); private: void nextStateLogic() override; void findSerialPort(); void startRPCSession(); void fetchProtobufVersion(); void fetchDeviceInfo(); void fetchDeviceInfoLegacy(); void fetchDeviceInfoProperty(); void checkSDCard(); void checkManifest(); void getTimeSkew(); void syncTime(); void stopRPCSession(); private slots: void onSessionStatusChanged(); private: static const QString &branchToChannelName(const QByteArray &branchName); ProtobufSession *m_rpc; }; class DFUDeviceInfoHelper : public AbstractDeviceInfoHelper { Q_OBJECT public: DFUDeviceInfoHelper(const USBDeviceInfo &info, QObject *parent = nullptr); private: void nextStateLogic() override; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/firmwarehelper.cpp000066400000000000000000000146571452337521700277520ustar00rootroot00000000000000#include "firmwarehelper.h" #include #include #include #include "flipperzero/devicestate.h" #include "flipperzero/helper/scriptshelper.h" #include "flipperzero/helper/radiomanifesthelper.h" #include "remotefilefetcher.h" #include "tempdirectories.h" using namespace Flipper; using namespace Zero; FirmwareHelper::FirmwareHelper(DeviceState *deviceState, const Updates::VersionInfo &versionInfo, QObject *parent): AbstractOperationHelper(parent), m_deviceState(deviceState), m_versionInfo(versionInfo) {} FirmwareHelper::~FirmwareHelper() { for(const auto &file : qAsConst(m_files)) { file->remove(); } m_files.clear(); } QFile *FirmwareHelper::file(FileIndex index) const { return m_files.value(index, nullptr); } bool FirmwareHelper::hasRadioUpdate() const { return m_hasRadioUpdate; } void FirmwareHelper::nextStateLogic() { if(state() == AbstractOperationHelper::Ready) { setState(FirmwareHelper::FetchingFirmware); fetchFirmware(); } else if(state() == FirmwareHelper::FetchingFirmware) { setState(FirmwareHelper::FetchingCore2Firmware); fetchCore2Firmware(); } else if(state() == FirmwareHelper::FetchingCore2Firmware) { setState(FirmwareHelper::PreparingRadioFirmware); prepareRadioFirmware(); } else if(state() == FirmwareHelper::PreparingRadioFirmware) { setState(FirmwareHelper::FetchingScripts); fetchScripts(); } else if(state() == FirmwareHelper::FetchingScripts) { setState(FirmwareHelper::PreparingOptionBytes); prepareOptionBytes(); } else if(state() == FirmwareHelper::PreparingOptionBytes) { setState(FirmwareHelper::FetchingAssets); fetchAssets(); } else if(state() == FirmwareHelper::FetchingAssets) { finish(); } } void FirmwareHelper::fetchFirmware() { m_deviceState->setStatusString(QStringLiteral("Fetching application firmware...")); const auto &fileInfo = m_versionInfo.fileInfo(QStringLiteral("full_dfu"), m_deviceState->deviceInfo().hardware.target); fetchFile(FileIndex::Firmware, fileInfo); } void FirmwareHelper::fetchCore2Firmware() { m_deviceState->setStatusString(QStringLiteral("Fetching radio firmware...")); const auto &fileInfo = m_versionInfo.fileInfo(QStringLiteral("core2_firmware_tgz"), QStringLiteral("any")); fetchFile(FileIndex::Core2Tgz, fileInfo); } void FirmwareHelper::prepareRadioFirmware() { m_deviceState->setStatusString(QStringLiteral("Preparing radio firmware...")); auto *helper = new RadioManifestHelper(m_files[FileIndex::Core2Tgz], this); connect(helper, &AbstractOperationHelper::finished, this, [=]() { helper->deleteLater(); if(helper->isError()) { finishWithError(helper->error(), helper->errorString()); return; } const auto &newRadioVersion = helper->radioVersion(); const auto &newStackType = helper->stackType(); const auto ¤tRadioVersion = m_deviceState->deviceInfo().radioVersion; const auto ¤tStackType = m_deviceState->deviceInfo().stackType; m_hasRadioUpdate = currentRadioVersion.isEmpty() || (currentStackType != newStackType) || (currentRadioVersion < newRadioVersion); auto *file = globalTempDirs->createTempFile(this); m_files.insert(FileIndex::RadioFirmware, file); if(!file->open(QIODevice::WriteOnly)) { finishWithError(BackendError::DiskError, QStringLiteral("Failed to open temporary file: %1").arg(file->errorString())); return; } else if(file->write(helper->radioFirmwareData()) <= 0) { finishWithError(BackendError::DiskError, QStringLiteral("Failed to write to temporary file: %1").arg(file->errorString())); return; } else { file->close(); } advanceState(); }); } void FirmwareHelper::fetchScripts() { m_deviceState->setStatusString(QStringLiteral("Fetching scripts...")); const auto &fileInfo = m_versionInfo.fileInfo(QStringLiteral("scripts_tgz"), QStringLiteral("any")); fetchFile(FileIndex::ScriptsTgz, fileInfo); } void FirmwareHelper::prepareOptionBytes() { m_deviceState->setStatusString(QStringLiteral("Preparing scripts...")); auto *helper = new ScriptsHelper(m_files[FileIndex::ScriptsTgz], this); connect(helper, &AbstractOperationHelper::finished, this, [=]() { helper->deleteLater(); if(helper->isError()) { finishWithError(helper->error(), helper->errorString()); return; } auto *file = globalTempDirs->createTempFile(this); m_files.insert(FileIndex::OptionBytes, file); if(!file->open(QIODevice::WriteOnly)) { finishWithError(BackendError::DiskError, QStringLiteral("Failed to open temporary file: %1").arg(file->errorString())); } else if(file->write(helper->optionBytesData()) <= 0) { finishWithError(BackendError::DiskError, QStringLiteral("Failed to write to temporary file: %1").arg(file->errorString())); } else { file->close(); advanceState(); } }); } void FirmwareHelper::fetchAssets() { m_deviceState->setStatusString(QStringLiteral("Fetching databases...")); const auto type = QStringLiteral("resources_tgz"); auto fileInfo = m_versionInfo.fileInfo(type, m_deviceState->deviceInfo().hardware.target); if(!fileInfo.isValid()) { fileInfo = m_versionInfo.fileInfo(type, QStringLiteral("any")); } fetchFile(FileIndex::AssetsTgz, fileInfo); } void FirmwareHelper::fetchFile(FileIndex index, const Updates::FileInfo &fileInfo) { if(!fileInfo.isValid()) { finishWithError(BackendError::DataError, QStringLiteral("File info invalid (missing target?)")); return; } const auto fileName = QUrl(fileInfo.url()).fileName(); auto *file = globalTempDirs->createFile(fileName, this); auto *fetcher = new RemoteFileFetcher(fileInfo, file, this); if(fetcher->isError()) { finishWithError(fetcher->error(), QStringLiteral("Failed to fetch file: %1").arg(fetcher->errorString())); return; } connect(fetcher, &RemoteFileFetcher::finished, this, [=]() { m_files.insert(index, file); if(fetcher->isError()) { finishWithError(fetcher->error(), QStringLiteral("Failed to fetch file: %1").arg(fetcher->errorString())); } else { advanceState(); } }); } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/firmwarehelper.h000066400000000000000000000023711452337521700274050ustar00rootroot00000000000000#pragma once #include "abstractoperationhelper.h" #include #include "flipperupdates.h" class QFile; namespace Flipper { namespace Zero { class DeviceState; class FirmwareHelper : public AbstractOperationHelper { Q_OBJECT enum State { FetchingFirmware = AbstractOperationHelper::User, FetchingCore2Firmware, PreparingRadioFirmware, FetchingScripts, PreparingOptionBytes, FetchingAssets }; public: enum class FileIndex { Firmware, Core2Tgz, ScriptsTgz, AssetsTgz, RadioFirmware, OptionBytes }; FirmwareHelper(DeviceState *deviceState, const Updates::VersionInfo &versionInfo, QObject *parent = nullptr); ~FirmwareHelper(); QFile *file(FileIndex index) const; bool hasRadioUpdate() const; private: void nextStateLogic() override; void fetchFirmware(); void fetchCore2Firmware(); void prepareRadioFirmware(); void fetchScripts(); void prepareOptionBytes(); void fetchAssets(); void fetchFile(FileIndex index, const Updates::FileInfo &fileInfo); DeviceState *m_deviceState; Updates::VersionInfo m_versionInfo; QMap m_files; bool m_hasRadioUpdate; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/radiomanifesthelper.cpp000066400000000000000000000044451452337521700307550ustar00rootroot00000000000000#include "radiomanifesthelper.h" #include #include "tararchive.h" #include "tarziparchive.h" #include "flipperzero/radiomanifest.h" using namespace Flipper; using namespace Zero; RadioManifestHelper::RadioManifestHelper(QFile *radioArchive, QObject *parent): AbstractOperationHelper(parent), m_compressedFile(radioArchive) {} int RadioManifestHelper::stackType() const { return m_manifest.firmware().radio().type(); } const QString &RadioManifestHelper::radioVersion() const { return m_manifest.firmware().radio().version(); } const QString &RadioManifestHelper::fusVersion() const { return m_manifest.firmware().fus().version(); } const QByteArray RadioManifestHelper::radioFirmwareData() const { const auto &fileName = m_manifest.firmware().radio().files().first().name(); return m_archive->archiveIndex()->fileData(QStringLiteral("core2_firmware/%1").arg(fileName)); } void RadioManifestHelper::nextStateLogic() { if(state() == AbstractOperationHelper::Ready) { setState(RadioManifestHelper::UncompressingArchive); uncompressArchive(); } else if(state() == RadioManifestHelper::UncompressingArchive) { setState(RadioManifestHelper::ReadingManifest); readManifest(); } else if(state() == RadioManifestHelper::ReadingManifest) { finish(); } } void RadioManifestHelper::uncompressArchive() { m_archive = new TarZipArchive(m_compressedFile, this); if(m_archive->isError()) { finishWithError(m_archive->error(), QStringLiteral("Failed to uncompress archive file: %1").arg(m_archive->errorString())); return; } connect(m_archive, &TarZipArchive::ready, this, [=]() { if(m_archive->isError()) { finishWithError(m_archive->error(), QStringLiteral("Failed to uncompress archive file: %1").arg(m_archive->errorString())); } else { advanceState(); } }); } void RadioManifestHelper::readManifest() { const auto manifext = m_archive->archiveIndex()->fileData(QStringLiteral("core2_firmware/Manifest.json")); m_manifest = RadioManifest(manifext); if(m_manifest.isError()) { finishWithError(m_manifest.error(), QStringLiteral("Failed to read radio manifest: %1").arg(m_manifest.errorString())); } else { advanceState(); } } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/radiomanifesthelper.h000066400000000000000000000015421452337521700304150ustar00rootroot00000000000000#pragma once #include "abstractoperationhelper.h" #include "flipperzero/radiomanifest.h" class QFile; class TarZipArchive; namespace Flipper { namespace Zero { class RadioManifestHelper : public AbstractOperationHelper { Q_OBJECT enum State { UncompressingArchive = AbstractOperationHelper::User, ReadingManifest }; public: RadioManifestHelper(QFile *radioArchive, QObject *parent = nullptr); int stackType() const; const QString &radioVersion() const; const QString &fusVersion() const; const QByteArray radioFirmwareData() const; const QByteArray fusFirmwareData(const QString &deviceFusVersion) const; private: void nextStateLogic() override; void uncompressArchive(); void readManifest(); QFile *m_compressedFile; TarZipArchive *m_archive; RadioManifest m_manifest; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/scriptshelper.cpp000066400000000000000000000024111452337521700276060ustar00rootroot00000000000000#include "scriptshelper.h" #include #include "tararchive.h" #include "tarziparchive.h" using namespace Flipper; using namespace Zero; ScriptsHelper::ScriptsHelper(QFile *scriptsArchive, QObject *parent): AbstractOperationHelper(parent), m_compressedFile(scriptsArchive) {} const QByteArray ScriptsHelper::optionBytesData() const { return m_archive->archiveIndex()->fileData(QStringLiteral("scripts/ob.data")); } void ScriptsHelper::nextStateLogic() { if(state() == AbstractOperationHelper::Ready) { setState(ScriptsHelper::UncompressingArchive); uncompressArchive(); } else if(state() == ScriptsHelper::UncompressingArchive) { finish(); } } void ScriptsHelper::uncompressArchive() { m_archive = new TarZipArchive(m_compressedFile, this); if(m_archive->isError()) { finishWithError(m_archive->error(), QStringLiteral("Failed to uncompress archive file: %1").arg(m_archive->errorString())); return; } connect(m_archive, &TarZipArchive::ready, this, [=]() { if(m_archive->isError()) { finishWithError(m_archive->error(), QStringLiteral("Failed to uncompress archive file: %1").arg(m_archive->errorString())); } else { advanceState(); } }); } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/scriptshelper.h000066400000000000000000000010741452337521700272570ustar00rootroot00000000000000#pragma once #include "abstractoperationhelper.h" #include class QFile; class TarZipArchive; namespace Flipper { namespace Zero { class ScriptsHelper : public AbstractOperationHelper { Q_OBJECT enum State { UncompressingArchive = AbstractOperationHelper::User }; public: ScriptsHelper(QFile *scriptsArchive, QObject *parent = nullptr); const QByteArray optionBytesData() const; private: void nextStateLogic() override; void uncompressArchive(); QFile *m_compressedFile; TarZipArchive *m_archive; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/serialinithelper.cpp000066400000000000000000000053711452337521700302720ustar00rootroot00000000000000#include "serialinithelper.h" #include #include #include "flipperzero/rpc/skipmotdoperation.h" #include "flipperzero/rpc/startrpcoperation.h" using namespace Flipper; using namespace Zero; SerialInitHelper::SerialInitHelper(const QSerialPortInfo &portInfo, QObject *parent): AbstractOperationHelper(parent), m_serialPort(new QSerialPort(portInfo, parent)), m_retryTimer(new QTimer(this)), m_retryCount(20) { m_retryTimer->setSingleShot(true); connect(m_retryTimer, &QTimer::timeout, this, &SerialInitHelper::openPort); } QSerialPort *SerialInitHelper::serialPort() const { return m_serialPort; } void SerialInitHelper::nextStateLogic() { if(state() == AbstractOperationHelper::Ready) { setState(SerialInitHelper::OpeningPort); openPort(); } else if(state() == SerialInitHelper::OpeningPort) { setState(SerialInitHelper::SkippingMOTD); skipMOTD(); } else if(state() == SerialInitHelper::SkippingMOTD) { setState(SerialInitHelper::StartingRPCSession); startRPCSession(); } else if(state() == SerialInitHelper::StartingRPCSession) { finish(); } } void SerialInitHelper::openPort() { if(!(m_retryCount--)) { finishWithError(BackendError::SerialAccessError, QStringLiteral("Failed to open serial port: %1").arg(m_serialPort->errorString())); } else if(!m_serialPort->open(QIODevice::ReadWrite)) { m_retryTimer->start(std::chrono::milliseconds(50)); } else { advanceState(); } } void SerialInitHelper::skipMOTD() { auto *operation = new SkipMOTDOperation(m_serialPort, this); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::SerialAccessError, QStringLiteral("Failed to begin CLI session: %1").arg(operation->errorString())); } else { advanceState(); } operation->deleteLater(); }); if(m_serialPort->isDataTerminalReady()) { // Serial port was not reset correctly (e.g. by minicom) m_serialPort->setDataTerminalReady(false); // Wait a bit before setting DTR high again QTimer::singleShot(50, operation, &AbstractOperation::start); } else { operation->start(); } } void SerialInitHelper::startRPCSession() { auto *operation = new StartRPCOperation(m_serialPort, this); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::SerialAccessError, QStringLiteral("Failed to start RPC session: %1").arg(operation->errorString())); } else { advanceState(); } operation->deleteLater(); }); operation->start(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/serialinithelper.h000066400000000000000000000012311452337521700277260ustar00rootroot00000000000000#pragma once #include "abstractoperationhelper.h" #include class QTimer; namespace Flipper { namespace Zero { class SerialInitHelper : public AbstractOperationHelper { Q_OBJECT enum State { OpeningPort = AbstractOperationHelper::User, SkippingMOTD, StartingRPCSession }; public: SerialInitHelper(const QSerialPortInfo &portInfo, QObject *parent = nullptr); QSerialPort *serialPort() const; private: void nextStateLogic() override; void openPort(); void skipMOTD(); void startRPCSession(); QSerialPort *m_serialPort; QTimer *m_retryTimer; int m_retryCount; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/toplevelhelper.cpp000066400000000000000000000060341452337521700277560ustar00rootroot00000000000000#include "toplevelhelper.h" #include "updateregistry.h" #include "flipperzero/flipperzero.h" #include "flipperzero/devicestate.h" using namespace Flipper; using namespace Zero; AbstractTopLevelHelper::AbstractTopLevelHelper(UpdateRegistry *updateRegistry, FlipperZero *device, QObject *parent): AbstractOperationHelper(parent), m_updateRegistry(updateRegistry), m_device(device) { m_device->deviceState()->setProgress(-1); m_device->deviceState()->setPersistent(true); connect(m_device, &FlipperZero::operationFinished, this, &AbstractTopLevelHelper::finish); } UpdateRegistry *AbstractTopLevelHelper::updateRegistry() { return m_updateRegistry; } FlipperZero *AbstractTopLevelHelper::device() { return m_device; } void AbstractTopLevelHelper::onUpdateRegistryStateChanged() { if(m_updateRegistry->state() == UpdateRegistry::State::ErrorOccured) { finishEarly(BackendError::InternetError, QStringLiteral("Failed to retrieve update information")); } else if(m_updateRegistry->state() == UpdateRegistry::State::Ready) { disconnect(m_updateRegistry, &UpdateRegistry::stateChanged, this, &AbstractTopLevelHelper::onUpdateRegistryStateChanged); if(!m_device->deviceState()->isOnline()) { finishEarly(BackendError::OperationError, QStringLiteral("Connection to device was lost")); } else { advanceState(); } } } void AbstractTopLevelHelper::nextStateLogic() { if(state() == AbstractOperationHelper::Ready) { setState(AbstractTopLevelHelper::CheckingForUpdates); checkForUpdates(); } else if(state() == AbstractTopLevelHelper::CheckingForUpdates) { setState(AbstractTopLevelHelper::RunningCustomOperation); runCustomOperation(); } } void AbstractTopLevelHelper::checkForUpdates() { m_device->deviceState()->setStatusString(tr("Checking for updates...")); connect(m_updateRegistry, &UpdateRegistry::stateChanged, this, &AbstractTopLevelHelper::onUpdateRegistryStateChanged); m_updateRegistry->check(); } /* This is different from the usual finishWithError() method because it uses the deviceState to both * signal the end of operation and pass the error information. */ void AbstractTopLevelHelper::finishEarly(BackendError::ErrorType error, const QString &errorString) { m_device->deviceState()->setError(error, errorString); emit m_device->operationFinished(); } UpdateTopLevelHelper::UpdateTopLevelHelper(UpdateRegistry *updateRegistry, FlipperZero *device, QObject *parent): AbstractTopLevelHelper(updateRegistry, device, parent) {} void UpdateTopLevelHelper::runCustomOperation() { auto &versionInfo = updateRegistry()->latestVersion(); device()->fullUpdate(versionInfo); } RepairTopLevelHelper::RepairTopLevelHelper(UpdateRegistry *updateRegistry, FlipperZero *device, QObject *parent): AbstractTopLevelHelper(updateRegistry, device, parent) {} void RepairTopLevelHelper::runCustomOperation() { auto &versionInfo = updateRegistry()->latestVersion(); device()->fullRepair(versionInfo); } flipperdevices-qFlipper-bfce851/backend/flipperzero/helper/toplevelhelper.h000066400000000000000000000026001452337521700274160ustar00rootroot00000000000000#pragma once #include "abstractoperationhelper.h" #include "flipperupdates.h" namespace Flipper { class UpdateRegistry; class FlipperZero; namespace Zero { class AbstractTopLevelHelper : public AbstractOperationHelper { Q_OBJECT public: enum State { CheckingForUpdates = AbstractOperationHelper::User, RunningCustomOperation, }; AbstractTopLevelHelper(UpdateRegistry *updateRegistry, FlipperZero *device, QObject *parent = nullptr); virtual ~AbstractTopLevelHelper() {} protected: UpdateRegistry *updateRegistry(); FlipperZero *device(); private slots: void onUpdateRegistryStateChanged(); private: void nextStateLogic() override; void checkForUpdates(); void finishEarly(BackendError::ErrorType error, const QString &errorString); virtual void runCustomOperation() = 0; UpdateRegistry *m_updateRegistry; FlipperZero *m_device; }; class UpdateTopLevelHelper : public AbstractTopLevelHelper { Q_OBJECT public: UpdateTopLevelHelper(UpdateRegistry *updateRegistry, FlipperZero *device, QObject *parent = nullptr); private: void runCustomOperation() override; }; class RepairTopLevelHelper : public AbstractTopLevelHelper { Q_OBJECT public: RepairTopLevelHelper(UpdateRegistry *updateRegistry, FlipperZero *device, QObject *parent = nullptr); private: void runCustomOperation() override; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/pixmaps/000077500000000000000000000000001452337521700244175ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/backend/flipperzero/pixmaps/default.h000066400000000000000000000145561452337521700262270ustar00rootroot00000000000000#pragma once #define default_width 128 #define default_height 64 static unsigned char default_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xf4, 0x03, 0x00, 0x00, 0x80, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x0a, 0x0e, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x07, 0x05, 0x3e, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xb8, 0x02, 0x61, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xd0, 0x81, 0xc0, 0x00, 0x00, 0x80, 0x21, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0xa8, 0x40, 0x88, 0x01, 0x00, 0x00, 0x22, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x54, 0x20, 0x10, 0x03, 0x00, 0x00, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x2a, 0x10, 0x21, 0x02, 0x00, 0x00, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x34, 0x08, 0x42, 0x06, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1a, 0x04, 0x04, 0x06, 0x07, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x15, 0x44, 0x08, 0xcf, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0xff, 0x0b, 0x82, 0x80, 0x78, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x0f, 0x02, 0x61, 0x18, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x7f, 0x04, 0x02, 0x10, 0x04, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc8, 0x80, 0x09, 0x04, 0x0c, 0x03, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x24, 0x00, 0x12, 0x08, 0x83, 0x00, 0xf8, 0x1f, 0xc0, 0xff, 0xcc, 0x00, 0x30, 0x53, 0x00, 0x00, 0x12, 0x3e, 0x24, 0xf0, 0x60, 0x00, 0xfc, 0x0f, 0xc0, 0xff, 0xcc, 0x00, 0x30, 0x73, 0x00, 0x00, 0x8a, 0xff, 0x28, 0x00, 0x10, 0x00, 0xfe, 0x07, 0x00, 0xc0, 0xcc, 0x00, 0x38, 0x07, 0x00, 0x00, 0xc9, 0xff, 0x49, 0x00, 0x0c, 0x00, 0xff, 0x03, 0x00, 0xc0, 0xcc, 0x00, 0x18, 0x06, 0x3f, 0x00, 0xc5, 0xff, 0x51, 0x00, 0x02, 0x80, 0xff, 0x01, 0x00, 0xe0, 0xc0, 0x54, 0x1c, 0x0e, 0x3f, 0x00, 0xe5, 0xf9, 0x53, 0x80, 0x01, 0xc0, 0xff, 0x00, 0x00, 0x70, 0xe0, 0x54, 0x0c, 0x0c, 0x00, 0x00, 0xe5, 0xf9, 0x53, 0x60, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x3c, 0x70, 0x40, 0x0e, 0x1c, 0x00, 0x00, 0xe5, 0xff, 0x53, 0x18, 0x00, 0xf0, 0x3f, 0x00, 0xc0, 0x1f, 0x3c, 0x20, 0x06, 0x18, 0x00, 0x00, 0xe5, 0xff, 0x53, 0x06, 0x00, 0xf8, 0x1f, 0x00, 0xc0, 0x07, 0x1c, 0x18, 0x06, 0x18, 0x00, 0x00, 0xe5, 0xff, 0xd3, 0x01, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xc5, 0xff, 0x17, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc9, 0x1f, 0x18, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x8a, 0x03, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x93, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x66, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x6d, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x3a, 0x00, 0x00, 0x00, 0x78, 0xc0, 0x03, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x35, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x0c, 0x30, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x2a, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x30, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x05, 0x00, 0x08, 0xc0, 0x0f, 0x00, 0xe0, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x30, 0xf8, 0x0f, 0x00, 0x1f, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; flipperdevices-qFlipper-bfce851/backend/flipperzero/pixmaps/updateok.h000066400000000000000000000145641452337521700264160ustar00rootroot00000000000000#pragma once #define update_ok_width 128 #define update_ok_height 64 static unsigned char update_ok_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0xba, 0x9b, 0x24, 0x77, 0x06, 0xe9, 0x38, 0x77, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x78, 0x8a, 0xa4, 0xa4, 0x14, 0x09, 0x29, 0xa5, 0x24, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x8a, 0xa4, 0xa4, 0x14, 0x0f, 0x29, 0xa5, 0x24, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x8a, 0xa4, 0xa4, 0x14, 0x01, 0x29, 0xa5, 0x24, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x8a, 0x24, 0x1b, 0x17, 0x06, 0xee, 0x38, 0x27, 0x86, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x80, 0x00, 0x00, 0x1c, 0x00, 0x1e, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 0x00, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xc0, 0x00, 0x00, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x27, 0x63, 0x8c, 0xe3, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x26, 0x29, 0x25, 0x49, 0xf2, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x24, 0x39, 0x07, 0xe3, 0xf8, 0x40, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xef, 0x24, 0x39, 0xe7, 0xcf, 0xf3, 0x20, 0x00, 0x18, 0x0c, 0x00, 0x00, 0x02, 0x0f, 0x00, 0x00, 0xcf, 0x24, 0x29, 0x25, 0x49, 0xf2, 0x20, 0x00, 0x04, 0x10, 0x00, 0x00, 0xc2, 0x30, 0x00, 0x00, 0x1f, 0x4e, 0x63, 0x8c, 0xe3, 0xf8, 0x20, 0x00, 0xe2, 0x23, 0x00, 0x00, 0x32, 0x40, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0x00, 0xf1, 0x47, 0x00, 0x00, 0x0c, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0x00, 0x99, 0x4f, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0x80, 0x9c, 0x9f, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0x80, 0xfc, 0x9f, 0x00, 0x80, 0x01, 0xf0, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x80, 0xfc, 0x9f, 0x00, 0x40, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0xfc, 0x9f, 0x00, 0x30, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0xfc, 0x9f, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xf9, 0x4f, 0x00, 0x06, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xf1, 0x4f, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x32, 0x30, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x40, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x18, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0xf8, 0x00, 0x10, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x60, 0xfe, 0x07, 0x01, 0x08, 0x63, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x00, 0x18, 0x00, 0x1c, 0x78, 0x00, 0x01, 0x88, 0x80, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x00, 0xe0, 0x80, 0xc3, 0x07, 0x00, 0x01, 0x44, 0x00, 0x01, 0x00, 0x80, 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x01, 0x24, 0x00, 0x01, 0x18, 0x80, 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x22, 0x00, 0x02, 0x3c, 0xc0, 0x03, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x22, 0x00, 0x02, 0x7c, 0xc0, 0x03, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x21, 0x00, 0x02, 0xf8, 0xe0, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x41, 0x00, 0x02, 0xf0, 0xe1, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x40, 0x00, 0x02, 0xe0, 0xf3, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x40, 0x80, 0x00, 0x02, 0xc0, 0xf7, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x20, 0x80, 0x00, 0x01, 0x80, 0x7f, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, 0x10, 0x00, 0xc3, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x08, 0x00, 0x3c, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xbf, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8f, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x18, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 }; flipperdevices-qFlipper-bfce851/backend/flipperzero/pixmaps/updating.h000066400000000000000000000145621452337521700264130ustar00rootroot00000000000000#pragma once #define updating_width 128 #define updating_height 64 static unsigned char updating_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x98, 0x01, 0x18, 0xC0, 0x0C, 0x00, 0x00, 0x00, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x98, 0x01, 0x18, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x98, 0x35, 0x9E, 0xE3, 0xAD, 0xB1, 0x00, 0x00, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x98, 0x6D, 0x5B, 0xC6, 0x6C, 0xDB, 0x00, 0x00, 0x28, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x98, 0x6D, 0x9B, 0xC7, 0x6C, 0xDB, 0x00, 0x00, 0x48, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x98, 0x6D, 0xDB, 0xC6, 0x6C, 0xDB, 0x00, 0x00, 0x50, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x8F, 0x98, 0x6D, 0xDB, 0xC6, 0x6C, 0xDB, 0x00, 0x00, 0x50, 0x10, 0x0B, 0x95, 0xFF, 0xFF, 0x0F, 0x8E, 0xF0, 0x3C, 0x9E, 0x8D, 0x6D, 0xF3, 0x24, 0x01, 0x50, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x8C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x48, 0x10, 0x4B, 0xF2, 0xFF, 0xFF, 0x3F, 0x8C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x28, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x10, 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0B, 0x10, 0x13, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x07, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x10, 0x13, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0xFE, 0x03, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x60, 0x00, 0x38, 0x00, 0xFB, 0x01, 0x10, 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x18, 0x00, 0xC0, 0x80, 0xF1, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xF3, 0xE0, 0x00, 0x10, 0x8B, 0xF4, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0C, 0x41, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x18, 0x62, 0x00, 0x10, 0x8B, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x30, 0x34, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x60, 0x18, 0x00, 0x10, 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xC0, 0x08, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x80, 0x09, 0x00, 0x10, 0x4B, 0x8A, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x09, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x07, 0x00, 0x10, 0x53, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x04, 0xC0, 0xC0, 0x07, 0x00, 0x02, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x02, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x10, 0xD3, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x02, 0x00, 0xF8, 0x3F, 0x00, 0x04, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x01, 0x00, 0xFC, 0x59, 0x00, 0x04, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x01, 0x00, 0xF4, 0x49, 0x00, 0x08, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x01, 0x00, 0xC2, 0x83, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x08, 0x00, 0x10, 0x07, 0x00, 0x00, 0x00, 0x40, 0x8E, 0x80, 0x8F, 0x00, 0x00, 0x02, 0x80, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0xF0, 0x00, 0x00, 0x02, 0x80, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x80, 0x01, 0x00, 0x02, 0x80, 0x00, 0x10, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x06, 0x00, 0x04, 0x40, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x18, 0x00, 0xE4, 0x43, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x9F, 0x04, 0x00, 0x60, 0x00, 0x18, 0x2C, 0x00, 0x20, 0x00, 0x10, 0xF0, 0x03, 0x40, 0x00, 0x00, 0x90, 0xF4, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x20, 0x00, 0x90, 0xFF, 0x7F, 0x40, 0xFF, 0xFF, 0x97, 0x0C, 0x03, 0x00, 0x0E, 0x02, 0x20, 0x00, 0x20, 0x00, 0x10, 0xF0, 0x03, 0x40, 0x00, 0x00, 0x90, 0x0C, 0x0C, 0x80, 0x11, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x70, 0xC0, 0xFF, 0xFF, 0x9F, 0x0C, 0x30, 0x40, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0xC0, 0x20, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x13, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x1C, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0xD0, 0x7C, 0xFB, 0xDF, 0xEF, 0xEA, 0xB6, 0x20, 0x00, 0x30, 0x11, 0x00, 0x00, 0x00, 0x20, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x40, 0x00, 0xC0, 0x09, 0x0F, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0xFE, 0x10, 0x00, 0x00, 0x20, 0x00, 0x50, 0x7C, 0xF3, 0x3F, 0xFC, 0xF9, 0xA3, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x50, 0x7C, 0x10, 0x20, 0x1C, 0x39, 0xA2, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x6C, 0xD3, 0x2C, 0xFC, 0xF9, 0xA3, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x50, 0x6C, 0xE0, 0x1F, 0x00, 0x00, 0x80, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x6C, 0xC0, 0x0C, 0x00, 0x00, 0xA0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x50, 0x28, 0xC0, 0x0C, 0xCC, 0x98, 0x81, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x50, 0x28, 0xC0, 0x0C, 0x54, 0xA9, 0xA2, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x50, 0x28, 0xF0, 0x3F, 0xDC, 0xB9, 0xA3, 0x00, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x50, 0x28, 0xD0, 0x2C, 0x00, 0x00, 0xA0, 0x00, 0xA0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x50, 0x28, 0xD0, 0x2C, 0x00, 0x00, 0xA0, 0x00, 0x20, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x28, 0xE0, 0x1F, 0xFC, 0xFF, 0xA3, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x50, 0x28, 0xC0, 0x0C, 0xFC, 0xFF, 0x83, }; flipperdevices-qFlipper-bfce851/backend/flipperzero/protobufsession.cpp000066400000000000000000000424641452337521700267200ustar00rootroot00000000000000#include "protobufsession.h" #include #include #include #include #include #include #include #include "protobufplugininterface.h" #include "mainresponseinterface.h" #include "helper/serialinithelper.h" #include "rpc/storageinfooperation.h" #include "rpc/storagestatoperation.h" #include "rpc/storagelistoperation.h" #include "rpc/storagereadoperation.h" #include "rpc/storagemkdiroperation.h" #include "rpc/storagewriteoperation.h" #include "rpc/storageremoveoperation.h" #include "rpc/storagerenameoperation.h" #include "rpc/storagemd5sumoperation.h" #include "rpc/systemrebootoperation.h" #include "rpc/systemdeviceinfooperation.h" #include "rpc/systemgetdatetimeoperation.h" #include "rpc/systemsetdatetimeoperation.h" #include "rpc/systemfactoryresetoperation.h" #include "rpc/systemupdateoperation.h" #include "rpc/systemprotobufversionoperation.h" #include "rpc/guisendinputoperation.h" #include "rpc/guiscreenframeoperation.h" #include "rpc/guistartscreenstreamoperation.h" #include "rpc/guistopscreenstreamoperation.h" #include "rpc/guistartvirtualdisplayoperation.h" #include "rpc/guistopvirtualdisplayoperation.h" #include "rpc/propertygetoperation.h" #if defined(QT_STATIC) Q_IMPORT_PLUGIN(ProtobufPlugin) #endif Q_LOGGING_CATEGORY(LOG_SESSION, "RPC") using namespace Flipper; using namespace Zero; ProtobufSession::ProtobufSession(const QSerialPortInfo &portInfo, QObject *parent): QObject(parent), m_sessionState(Stopped), m_portInfo(portInfo), m_serialPort(nullptr), #if !defined(QT_STATIC) m_loader(new QPluginLoader(this)), #endif m_plugin(nullptr), m_currentOperation(nullptr), m_bytesToWrite(0), m_counter(0), m_versionMajor(0), m_versionMinor(0) {} ProtobufSession::~ProtobufSession() { stopSession(); } ProtobufPluginInterface *ProtobufSession::pluginInstance() const { return m_plugin; } bool ProtobufSession::isSessionUp() const { return m_sessionState == Idle || m_sessionState == Running; } void ProtobufSession::setSerialPort(const QSerialPortInfo &portInfo) { m_portInfo = portInfo; } void ProtobufSession::setMajorVersion(int versionMajor) { m_versionMajor = versionMajor; } void ProtobufSession::setMinorVersion(int versionMinor) { m_versionMinor = versionMinor; if(m_plugin) { m_plugin->setMinorVersion(m_versionMinor); } } SystemRebootOperation *ProtobufSession::rebootToOS() { return enqueueOperation(new SystemRebootOperation(getAndIncrementCounter(), SystemRebootOperation::RebootModeOS, this)); } SystemRebootOperation *ProtobufSession::rebootToRecovery() { return enqueueOperation(new SystemRebootOperation(getAndIncrementCounter(), SystemRebootOperation::RebootModeRecovery, this)); } SystemRebootOperation *ProtobufSession::rebootToUpdater() { return enqueueOperation(new SystemRebootOperation(getAndIncrementCounter(), SystemRebootOperation::RebootModeUpdate, this)); } SystemGetDateTimeOperation *ProtobufSession::getDateTime() { return enqueueOperation(new SystemGetDateTimeOperation(getAndIncrementCounter(), this)); } SystemSetDateTimeOperation *ProtobufSession::setDateTime(const QDateTime &dateTime) { return enqueueOperation(new SystemSetDateTimeOperation(getAndIncrementCounter(), dateTime, this)); } SystemFactoryResetOperation *ProtobufSession::factoryReset() { return enqueueOperation(new SystemFactoryResetOperation(getAndIncrementCounter(), this)); } SystemDeviceInfoOperation *ProtobufSession::systemDeviceInfo() { return enqueueOperation(new SystemDeviceInfoOperation(getAndIncrementCounter(), this)); } SystemUpdateOperation *ProtobufSession::systemUpdate(const QByteArray &manifestPath) { return enqueueOperation(new SystemUpdateOperation(getAndIncrementCounter(), manifestPath, this)); } SystemProtobufVersionOperation *ProtobufSession::systemProtobufVersion() { return enqueueOperation(new SystemProtobufVersionOperation(getAndIncrementCounter(), this)); } StorageListOperation *ProtobufSession::storageList(const QByteArray &path) { return enqueueOperation(new StorageListOperation(getAndIncrementCounter(), path, this)); } StorageInfoOperation *ProtobufSession::storageInfo(const QByteArray &path) { return enqueueOperation(new StorageInfoOperation(getAndIncrementCounter(), path, this)); } StorageStatOperation *ProtobufSession::storageStat(const QByteArray &path) { return enqueueOperation(new StorageStatOperation(getAndIncrementCounter(), path, this)); } StorageMkdirOperation *ProtobufSession::storageMkdir(const QByteArray &path) { return enqueueOperation(new StorageMkdirOperation(getAndIncrementCounter(), path, this)); } StorageRenameOperation *ProtobufSession::storageRename(const QByteArray &oldPath, const QByteArray &newPath) { return enqueueOperation(new StorageRenameOperation(getAndIncrementCounter(), oldPath, newPath, this)); } StorageRemoveOperation *ProtobufSession::storageRemove(const QByteArray &path, bool recursive) { return enqueueOperation(new StorageRemoveOperation(getAndIncrementCounter(), path, recursive, this)); } StorageReadOperation *ProtobufSession::storageRead(const QByteArray &path, QIODevice *file) { return enqueueOperation(new StorageReadOperation(getAndIncrementCounter(), path, file, this)); } StorageWriteOperation *ProtobufSession::storageWrite(const QByteArray &path, QIODevice *file) { return enqueueOperation(new StorageWriteOperation(getAndIncrementCounter(), path, file, this)); } StorageMd5SumOperation *ProtobufSession::storageMd5Sum(const QByteArray &path) { return enqueueOperation(new StorageMd5SumOperation(getAndIncrementCounter(), path, this)); } GuiStartScreenStreamOperation *ProtobufSession::guiStartScreenStream() { return enqueueOperation(new GuiStartScreenStreamOperation(getAndIncrementCounter(), this)); } GuiStopScreenStreamOperation *ProtobufSession::guiStopScreenStream() { return enqueueOperation(new GuiStopScreenStreamOperation(getAndIncrementCounter(), this)); } GuiStartVirtualDisplayOperation *ProtobufSession::guiStartVirtualDisplay(const QByteArray &screenData) { return enqueueOperation(new GuiStartVirtualDisplayOperation(getAndIncrementCounter(), screenData, this)); } GuiStopVirtualDisplayOperation *ProtobufSession::guiStopVirtualDisplay() { return enqueueOperation(new GuiStopVirtualDisplayOperation(getAndIncrementCounter(), this)); } GuiSendInputOperation *ProtobufSession::guiSendInput(int key, int type) { return enqueueOperation(new GuiSendInputOperation(getAndIncrementCounter(), key, type, this)); } GuiScreenFrameOperation *ProtobufSession::guiSendScreenFrame(const QByteArray &screenData) { return enqueueOperation(new GuiScreenFrameOperation(getAndIncrementCounter(), screenData, this)); } PropertyGetOperation *ProtobufSession::propertyGet(const QByteArray &key) { return enqueueOperation(new PropertyGetOperation(getAndIncrementCounter(), key, this)); } void ProtobufSession::startSession() { if(m_sessionState != Stopped) { qCWarning(LOG_SESSION) << "RPC session is already running"; return; } clearError(); m_receivedData.clear(); qCInfo(LOG_SESSION) << "Starting RPC session..."; setSessionState(Starting); if(!loadProtobufPlugin()) { stopEarly(BackendError::UnknownError, QStringLiteral("Suitable protocol plugin is not available")); return; } auto *helper = new SerialInitHelper(m_portInfo, this); connect(helper, &SerialInitHelper::finished, this, [=]() { helper->deleteLater(); if(helper->isError()) { qCCritical(LOG_SESSION).noquote() << "Failed to start RPC session:" << helper->errorString(); stopEarly(helper->error(), helper->errorString()); return; } m_serialPort = helper->serialPort(); connect(m_serialPort, &QSerialPort::readyRead, this, &ProtobufSession::onSerialPortReadyRead); connect(m_serialPort, &QSerialPort::bytesWritten, this, &ProtobufSession::onSerialPortBytesWriten); connect(m_serialPort, &QSerialPort::errorOccurred, this, &ProtobufSession::onSerialPortErrorOccured); qCInfo(LOG_SESSION) << "RPC session started successfully."; if(!m_queue.isEmpty()) { setSessionState(Running); QTimer::singleShot(0, this, &ProtobufSession::processQueue); } else { setSessionState(Idle); } }); } void ProtobufSession::stopSession() { if(!isSessionUp()) { return; } // Stop session asynchronously in order to give processQueue() time to finish its job QTimer::singleShot(0, this, &ProtobufSession::doStopSession); } void ProtobufSession::onSerialPortReadyRead() { if(!isSessionUp()) { m_serialPort->clear(); return; #if !defined(QT_STATIC) } else if(!m_loader->isLoaded()) { // For some weird reason the plugin can be unloaded by connecting // multiple devices (although the docs say it shouldn't) loadProtobufPlugin(); #endif } m_receivedData.append(m_serialPort->readAll()); auto *response = m_plugin->decode(m_receivedData, this); if(!response) { return; } auto *mainResponse = qobject_cast(response); m_receivedData.remove(0, (int)mainResponse->encodedSize()); if(m_currentOperation && mainResponse->id() == m_currentOperation->id()) { processMatchedResponse(response); } else if(mainResponse->id() == 0) { processBroadcastResponse(response); } else { processUnmatchedResponse(response); } response->deleteLater(); if(!m_receivedData.isEmpty()) { // m_receivedData can contain more than 1 full message QTimer::singleShot(0, this, &ProtobufSession::onSerialPortReadyRead); } } void ProtobufSession::onSerialPortBytesWriten(qint64 nbytes) { Q_UNUSED(nbytes) } void ProtobufSession::onSerialPortErrorOccured() { qCInfo(LOG_SESSION) << "Serial connection was lost."; disconnect(m_serialPort, &QSerialPort::readyRead, this, &ProtobufSession::onSerialPortReadyRead); disconnect(m_serialPort, &QSerialPort::bytesWritten, this, &ProtobufSession::onSerialPortBytesWriten); disconnect(m_serialPort, &QSerialPort::errorOccurred, this, &ProtobufSession::onSerialPortErrorOccured); stopSession(); } void ProtobufSession::processQueue() { if(m_queue.isEmpty()) { setSessionState(Idle); return; } m_currentOperation = m_queue.dequeue(); qCInfo(LOG_SESSION).noquote() << prettyOperationDescription() << "START"; connect(m_currentOperation, &AbstractOperation::finished, this, &ProtobufSession::onCurrentOperationFinished); m_currentOperation->start(); if(!m_currentOperation->isError()) { writeToPort(); } } void ProtobufSession::writeToPort() { if(!m_currentOperation || !m_plugin) { return; #if !defined(QT_STATIC) } else if(!m_loader->isLoaded()) { // For some weird reason the plugin can be unloaded by connecting // multiple devices (although the docs say it shouldn't) loadProtobufPlugin(); #endif } bool success; do { const auto &buf = m_currentOperation->encodeRequest(m_plugin); const auto bytesWritten = m_serialPort->write(buf); success = bytesWritten >= 0; if(!success) { break; } else if(bytesWritten != buf.size()) { // TODO: Check for full system serial buffer qCCritical(LOG_SESSION) << "Serial buffer overflow"; break; } } while(m_currentOperation->hasMoreData()); success &= m_serialPort->flush(); if(!success) { setError(BackendError::SerialError, m_serialPort->errorString()); stopSession(); return; } } void ProtobufSession::doStopSession() { qCInfo(LOG_SESSION) << "Stopping RPC session..."; if(m_currentOperation) { m_currentOperation->abort(QStringLiteral("RPC session was stopped with operations still running")); } if(m_serialPort) { m_serialPort->close(); m_serialPort->deleteLater(); } unloadProtobufPlugin(); qCInfo(LOG_SESSION) << "RPC session stopped successfully."; setSessionState(Stopped); } void ProtobufSession::onCurrentOperationFinished() { if(m_currentOperation->isError()) { qCCritical(LOG_SESSION).noquote() << prettyOperationDescription() << "ERROR:" << m_currentOperation->errorString(); clearOperationQueue(); } else { qCInfo(LOG_SESSION).noquote() << prettyOperationDescription() << "SUCCESS"; } m_currentOperation->deleteLater(); m_currentOperation = nullptr; QTimer::singleShot(0, this, &ProtobufSession::processQueue); } void ProtobufSession::setSessionState(SessionState newState) { if(m_sessionState == newState) { return; } m_sessionState = newState; emit sessionStateChanged(); } #if !defined(QT_STATIC) const QString ProtobufSession::protobufPluginFileName(uint32_t versionMajor) { #if defined(Q_OS_WINDOWS) return QStringLiteral("flipperproto%1.dll").arg(versionMajor); #elif defined(Q_OS_MAC) return QStringLiteral("libflipperproto%1.dylib").arg(versionMajor); #elif defined(Q_OS_LINUX) return QStringLiteral("libflipperproto%1.so").arg(versionMajor); #else #error "Unsupported OS" #endif } #endif QVector ProtobufSession::supportedProtobufVersions() { QVector ret; #if defined(QT_STATIC) const auto staticInstances = QPluginLoader::staticInstances(); for(const auto *instance: staticInstances) { if(const auto *protobufPlugin = qobject_cast(instance)) { ret.append(protobufPlugin->versionMajor()); } } std::sort(ret.begin(), ret.end()); #else const auto libraryPaths = QCoreApplication::libraryPaths(); for(uint32_t i = 0;; ++i) { for(const auto &path : libraryPaths) { const QDir libraryDir(path); if(libraryDir.exists(protobufPluginFileName(i))) { ret.append(i); break; } } if(!ret.contains(i)) { break; } } #endif return ret; } bool ProtobufSession::loadProtobufPlugin() { const auto supportedVersions = supportedProtobufVersions(); if(supportedVersions.isEmpty()) { qCCritical(LOG_SESSION) << "Cannot find protobuf support plugins"; return false; } else if(!supportedVersions.contains(m_versionMajor)) { qCCritical(LOG_SESSION).noquote() << "Protocol version" << m_versionMajor << "is not supported yet. Please update the application."; return false; } #if defined(QT_STATIC) const auto staticInstances = QPluginLoader::staticInstances(); for(auto *instance : staticInstances) { if(auto *protobufPlugin = qobject_cast(instance)) { if(protobufPlugin->versionMajor() == m_versionMajor) { m_plugin = protobufPlugin; break; } } } #else m_loader->setFileName(protobufPluginFileName(m_versionMajor)); m_plugin = qobject_cast(m_loader->instance()); if(!m_plugin) { qCCritical(LOG_SESSION) << "Failed to load protobuf plugin:" << m_loader->errorString(); return false; } #endif m_plugin->setMinorVersion(m_versionMinor); return true; } void ProtobufSession::unloadProtobufPlugin() { m_plugin = nullptr; #if defined(QT_SHARED) if(!m_loader->isLoaded()) { return; } qCDebug(LOG_SESSION) << "Attempting to unload protobuf plugin..."; if(!m_loader->unload()) { qCDebug(LOG_SESSION) << "Cannot unload protobuf plugin. This is probably OK."; } else { qCDebug(LOG_SESSION) << "Unloaded protobuf plugin."; } #endif } void ProtobufSession::stopEarly(BackendError::ErrorType error, const QString &errorString) { setError(error, errorString); setSessionState(Stopped); } uint32_t ProtobufSession::getAndIncrementCounter() { // Skip 0, it is reserved for broadcast messages do { ++m_counter; } while(m_counter == 0); return m_counter; } void ProtobufSession::clearOperationQueue() { while(!m_queue.isEmpty()) { m_queue.dequeue()->deleteLater(); } } const QString ProtobufSession::prettyOperationDescription() const { return QStringLiteral("(%1) %2").arg(m_currentOperation->id()).arg(m_currentOperation->description()); } void ProtobufSession::processMatchedResponse(QObject *response) { m_currentOperation->feedResponse(response); } void ProtobufSession::processBroadcastResponse(QObject *response) { emit broadcastResponseReceived(response); } void ProtobufSession::processUnmatchedResponse(QObject *response) { auto *mainResponse = qobject_cast(response); qCWarning(LOG_SESSION) << "Cannot match message with id" << mainResponse->id(); } void ProtobufSession::processErrorResponse(QObject *response) { auto *mainResponse = qobject_cast(response); qCCritical(LOG_SESSION) << "Device replied with error:" << mainResponse->errorString(); } template T *ProtobufSession::enqueueOperation(T *operation) { m_queue.enqueue(operation); if(m_sessionState == Idle) { QTimer::singleShot(0, this, &ProtobufSession::processQueue); setSessionState(Running); } return operation; } flipperdevices-qFlipper-bfce851/backend/flipperzero/protobufsession.h000066400000000000000000000112551452337521700263570ustar00rootroot00000000000000#pragma once #include #include #include #include "failable.h" class QIODevice; class QPluginLoader; class ProtobufPluginInterface; namespace Flipper { namespace Zero { class AbstractProtobufOperation; class SystemRebootOperation; class SystemDeviceInfoOperation; class SystemGetDateTimeOperation; class SystemSetDateTimeOperation; class SystemFactoryResetOperation; class SystemUpdateOperation; class SystemProtobufVersionOperation; class StorageListOperation; class StorageInfoOperation; class StorageStatOperation; class StorageReadOperation; class StorageMkdirOperation; class StorageWriteOperation; class StorageRenameOperation; class StorageRemoveOperation; class StorageMd5SumOperation; class GuiStartScreenStreamOperation; class GuiStopScreenStreamOperation; class GuiScreenFrameOperation; class GuiSendInputOperation; class GuiStartVirtualDisplayOperation; class GuiStopVirtualDisplayOperation; class PropertyGetOperation; class ProtobufSession : public QObject, public Failable { Q_OBJECT public: enum SessionState { Starting, Idle, Running, Stopped }; ProtobufSession(const QSerialPortInfo &portInfo, QObject *parent = nullptr); ~ProtobufSession(); ProtobufPluginInterface *pluginInstance() const; bool isSessionUp() const; void setSerialPort(const QSerialPortInfo &portInfo); void setMajorVersion(int versionMajor); void setMinorVersion(int versionMinor); // Operations SystemRebootOperation *rebootToOS(); SystemRebootOperation *rebootToRecovery(); SystemRebootOperation *rebootToUpdater(); SystemGetDateTimeOperation *getDateTime(); SystemSetDateTimeOperation *setDateTime(const QDateTime &dateTime); SystemFactoryResetOperation *factoryReset(); SystemDeviceInfoOperation *systemDeviceInfo(); SystemUpdateOperation *systemUpdate(const QByteArray &manifestPath); SystemProtobufVersionOperation *systemProtobufVersion(); StorageListOperation *storageList(const QByteArray &path); StorageInfoOperation *storageInfo(const QByteArray &path); StorageStatOperation *storageStat(const QByteArray &path); StorageMkdirOperation *storageMkdir(const QByteArray &path); StorageRenameOperation *storageRename(const QByteArray &oldPath, const QByteArray &newPath); StorageRemoveOperation *storageRemove(const QByteArray &path, bool recursive = false); StorageReadOperation *storageRead(const QByteArray &path, QIODevice *file); StorageWriteOperation *storageWrite(const QByteArray &path, QIODevice *file); StorageMd5SumOperation *storageMd5Sum(const QByteArray &path); GuiStartScreenStreamOperation *guiStartScreenStream(); GuiStopScreenStreamOperation *guiStopScreenStream(); GuiStartVirtualDisplayOperation *guiStartVirtualDisplay(const QByteArray &screenData = QByteArray()); GuiStopVirtualDisplayOperation *guiStopVirtualDisplay(); GuiSendInputOperation *guiSendInput(int key, int type); GuiScreenFrameOperation *guiSendScreenFrame(const QByteArray &screenData); PropertyGetOperation *propertyGet(const QByteArray &key); signals: void sessionStateChanged(); void broadcastResponseReceived(QObject *response); public slots: void startSession(); void stopSession(); private slots: void onSerialPortReadyRead(); void onSerialPortBytesWriten(qint64 nbytes); void onSerialPortErrorOccured(); void processQueue(); void writeToPort(); void doStopSession(); void onCurrentOperationFinished(); private: #if !defined(QT_STATIC) static const QString protobufPluginFileName(uint32_t versionMajor); #endif static QVector supportedProtobufVersions(); void setSessionState(SessionState newState); bool loadProtobufPlugin(); void unloadProtobufPlugin(); void stopEarly(BackendError::ErrorType error, const QString &errorString); const QString prettyOperationDescription() const; uint32_t getAndIncrementCounter(); template T* enqueueOperation(T *operation); void clearOperationQueue(); void processMatchedResponse(QObject *response); void processBroadcastResponse(QObject *response); void processUnmatchedResponse(QObject *response); void processErrorResponse(QObject *response); SessionState m_sessionState; QSerialPortInfo m_portInfo; QSerialPort *m_serialPort; QByteArray m_receivedData; #if !defined(QT_STATIC) QPluginLoader *m_loader; #endif ProtobufPluginInterface *m_plugin; QQueue m_queue; AbstractProtobufOperation *m_currentOperation; qint64 m_bytesToWrite; uint32_t m_counter; uint32_t m_versionMajor; uint32_t m_versionMinor; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/radiomanifest.cpp000066400000000000000000000176361452337521700263040ustar00rootroot00000000000000#include "radiomanifest.h" #include #include #include #include using namespace Flipper; using namespace Zero; RadioManifest::Header::Header(): m_version(-1), m_timestamp(-1) {} RadioManifest::Header::Header(const QJsonValue &json) { if(!json.isObject()) { throw std::runtime_error("Expected Manifest header to be an object"); } const auto obj = json.toObject(); if(obj.isEmpty()) { throw std::runtime_error("Manifest header is empty"); } if(obj.contains(QStringLiteral("version"))) { m_version = obj.value(QStringLiteral("version")).toInt(); } else { throw std::runtime_error("Failed to read manifest version"); } if(obj.contains(QStringLiteral("timestamp"))) { m_timestamp = obj.value(QStringLiteral("timestamp")).toInt(); } else { throw std::runtime_error("Failed to read manifest timestamp"); } } int RadioManifest::Header::version() const { return m_version; } qint64 RadioManifest::Header::timestamp() const { return m_timestamp; } RadioManifest::Condition::Condition(): m_type(Type::Unknown) {} RadioManifest::Condition::Condition(const QString &text) { if(text.startsWith("==")) { m_type = Type::Equals; m_version = text.mid(2); } else if(text.startsWith('>')) { m_type = Type::Greater; m_version = text.mid(1); } else { throw std::runtime_error("Malformed Condition"); } } RadioManifest::Condition::Type RadioManifest::Condition::type() const { return m_type; } const QString &RadioManifest::Condition::version() const { return m_version; } RadioManifest::FileInfo::FileInfo(const QJsonValue &json) { if(!json.isObject()) { throw std::runtime_error("Expected FileInfo to be an object"); } const auto obj = json.toObject(); if(obj.isEmpty()) { throw std::runtime_error("FileInfo is empty"); } const auto canConstruct = obj.contains(QStringLiteral("name")) && obj.contains(QStringLiteral("sha256")) && obj.contains(QStringLiteral("address")); if(!canConstruct) { throw std::runtime_error("Malformed FileInfo"); } m_name = obj.value(QStringLiteral("name")).toString(); m_sha256 = obj.value(QStringLiteral("sha256")).toVariant().toByteArray(); m_address = obj.value(QStringLiteral("name")).toVariant().toULongLong(); if(obj.contains(QStringLiteral("condition"))) { m_condition = Condition(obj.value(QStringLiteral("condition")).toString()); } } const QString &RadioManifest::FileInfo::name() const { return m_name; } const QByteArray &RadioManifest::FileInfo::sha256() const { return m_sha256; } const RadioManifest::Condition &RadioManifest::FileInfo::condition() const { return m_condition; } uint32_t RadioManifest::FileInfo::address() const { return m_address; } RadioManifest::Section::Section(const QJsonValue &json) { if(!json.isObject()) { throw std::runtime_error("Expected Section to be an object"); } const auto obj = json.toObject(); if(obj.isEmpty()) { throw std::runtime_error("Section is empty"); } const auto canConstruct = obj.contains(QStringLiteral("version")) && obj.contains(QStringLiteral("files")); if(!canConstruct) { throw std::runtime_error("Malformed Section"); } readVersion(obj.value(QStringLiteral("version"))); readFiles(obj.value(QStringLiteral("files"))); } const QString &RadioManifest::Section::version() const { return m_version; } const RadioManifest::FileInfoMap &RadioManifest::Section::files() const { return m_files; } void RadioManifest::Section::readVersion(const QJsonValue &json) { if(!json.isObject()) { throw std::runtime_error("Expected Section version to be an object"); } const auto obj = json.toObject(); if(obj.isEmpty()) { throw std::runtime_error("Section version is empty"); } const auto canConstruct = obj.contains(QStringLiteral("major")) && obj.contains(QStringLiteral("minor")) && obj.contains(QStringLiteral("sub")); if(!canConstruct) { throw std::runtime_error("Malformed section version"); } const auto major = obj.value(QStringLiteral("major")).toInt(); const auto minor = obj.value(QStringLiteral("minor")).toInt(); const auto sub = obj.value(QStringLiteral("sub")).toInt(); m_version = QStringLiteral("%1.%2.%3").arg(major).arg(minor).arg(sub); } void RadioManifest::Section::readFiles(const QJsonValue &json) { if(!json.isArray()) { throw std::runtime_error("Expected File list to be an array"); } const auto arr = json.toArray(); if(arr.isEmpty()) { throw std::runtime_error("File list is empty"); } for(const auto &value : arr) { FileInfo fileInfo(value); m_files.insert(fileInfo.name(), fileInfo); } } RadioManifest::FirmwareInfo::FirmwareInfo(const QJsonValue &json) { if(!json.isObject()) { throw std::runtime_error("Expected FirmwareInfo to be an object"); } const auto obj = json.toObject(); if(obj.isEmpty()) { throw std::runtime_error("FirmwareInfo is empty"); } const bool canConstruct = obj.contains(QStringLiteral("fus")) && obj.contains(QStringLiteral("radio")); if(!canConstruct) { throw std::runtime_error("Malformed FirmwareInfo"); } m_fus = Section(obj.value(QStringLiteral("fus"))); m_radio = RadioSection(obj.value(QStringLiteral("radio"))); } const RadioManifest::Section &RadioManifest::FirmwareInfo::fus() const { return m_fus; } const RadioManifest::RadioSection &RadioManifest::FirmwareInfo::radio() const { return m_radio; } RadioManifest::RadioManifest(const QByteArray &text) { if(text.isEmpty()) { setError(BackendError::DataError, "JSON text is empty"); return; } const auto doc = QJsonDocument::fromJson(text); if(!doc.isObject()) { setError(BackendError::DataError, "Expected RadioManifest to be a JSON object"); return; } const auto obj = doc.object(); const auto canConstruct = obj.contains(QStringLiteral("manifest")) && obj.contains(QStringLiteral("copro")); if(!canConstruct) { setError(BackendError::DataError, "Malformed RadioManifest"); return; } try { m_header = Header(obj.value(QStringLiteral("manifest"))); m_firmware = FirmwareInfo(obj.value(QStringLiteral("copro"))); } catch(const std::runtime_error &e) { setError(BackendError::DataError, e.what()); } } const RadioManifest::Header &RadioManifest::header() const { return m_header; } const RadioManifest::FirmwareInfo &RadioManifest::firmware() const { return m_firmware; } RadioManifest::RadioSection::RadioSection(const QJsonValue &json): Section(json) { const auto obj = json.toObject(); readVersion(obj.value(QStringLiteral("version"))); } int RadioManifest::RadioSection::type() const { return m_type; } int RadioManifest::RadioSection::branch() const { return m_branch; } int RadioManifest::RadioSection::release() const { return m_release; } void RadioManifest::RadioSection::readVersion(const QJsonValue &json) { const auto obj = json.toObject(); const auto typeKey = QStringLiteral("type"); const auto branchKey = QStringLiteral("branch"); const auto releaseKey = QStringLiteral("release"); const auto canConstruct = obj.contains(typeKey) && obj.contains(branchKey) && obj.contains(releaseKey); if(!canConstruct) { throw std::runtime_error("Malformed section version (RadioSection)"); } m_type = obj.value(typeKey).toInt(); m_branch = obj.value(branchKey).toInt(); m_release = obj.value(releaseKey).toInt(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/radiomanifest.h000066400000000000000000000045421452337521700257410ustar00rootroot00000000000000#pragma once #include #include #include #include #include "failable.h" namespace Flipper { namespace Zero { class RadioManifest : public Failable { public: class Header { public: Header(); Header(const QJsonValue &json); int version() const; qint64 timestamp() const; private: int m_version; qint64 m_timestamp; }; class Condition { public: enum class Type { Unknown, Equals, Greater }; Condition(); Condition(const QString &text); Type type() const; const QString &version() const; private: Type m_type; QString m_version; }; class FileInfo { public: FileInfo() = default; FileInfo(const QJsonValue &json); const QString &name() const; const QByteArray &sha256() const; const Condition &condition() const; uint32_t address() const; private: QString m_name; QByteArray m_sha256; Condition m_condition; uint32_t m_address; }; using FileInfoMap = QMap; class Section { public: Section() = default; Section(const QJsonValue &json); const QString &version() const; const FileInfoMap &files() const; private: void readVersion(const QJsonValue &json); void readFiles(const QJsonValue &json); QString m_version; FileInfoMap m_files; }; class RadioSection : public Section { public: RadioSection() = default; RadioSection(const QJsonValue &json); int type() const; int branch() const; int release() const; private: void readVersion(const QJsonValue &json); int m_type; int m_branch; int m_release; }; class FirmwareInfo { public: FirmwareInfo() = default; FirmwareInfo(const QJsonValue &json); const Section &fus() const; const RadioSection &radio() const; private: Section m_fus; RadioSection m_radio; }; RadioManifest() = default; RadioManifest(const QByteArray &text); const Header &header() const; const FirmwareInfo &firmware() const; private: Header m_header; FirmwareInfo m_firmware; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery.cpp000066400000000000000000000303111452337521700252760ustar00rootroot00000000000000#include "recovery.h" #include "devicestate.h" #include "dfusefile.h" #include "debug.h" #include "device/stm32wb55.h" using namespace Flipper; using namespace Zero; using namespace STM32; using namespace WB55; /* ---------------------------------------------------------------------------------------------------------------------------------- * FUS operations are based on the info from AN5185 * https://www.st.com/resource/en/application_note/dm00513965-st-firmware-upgrade-services-for-stm32wb-series-stmicroelectronics.pdf * ---------------------------------------------------------------------------------------------------------------------------------- */ #define to_hex_str(num) (QString::number(num, 16)) Recovery::Recovery(DeviceState *deviceState, QObject *parent): QObject(parent), m_deviceState(deviceState) {} Recovery::~Recovery() {} DeviceState *Recovery::deviceState() const { return m_deviceState; } bool Recovery::exitRecoveryMode() { m_deviceState->setStatusString(QStringLiteral("Exiting recovery mode...")); STM32WB55 device(m_deviceState->deviceInfo().usbInfo); const auto success = device.beginTransaction() && device.leave(); begin_ignore_block(); device.endTransaction(); end_ignore_block(); if(!success) { setErrorString("Failed to exit recovery mode"); } return success; } bool Recovery::setBootMode(BootMode mode) { const auto msg = (mode == BootMode::Normal) ? QStringLiteral("Setting OS boot mode...") : QStringLiteral("Setting Recovery boot mode..."); m_deviceState->setStatusString(msg); STM32WB55 device(m_deviceState->deviceInfo().usbInfo); if(!device.beginTransaction()) { setErrorString("Can't set boot mode: Failed to initiate transaction."); return false; } auto ob = device.optionBytes(); if(!ob.isValid()) { setErrorString("Can't set boot mode: Failed to read option bytes."); return false; } ob.setValue("nBOOT0", mode == BootMode::Normal); ob.setValue("nSWBOOT0", mode == BootMode::Normal); const auto success = device.setOptionBytes(ob); if(!success) { setErrorString("Can't set boot mode: Failed to set option bytes"); } begin_ignore_block(); device.endTransaction(); end_ignore_block(); return success; } Recovery::WirelessStatus Recovery::wirelessStatus() { debug_msg("Getting Co-Processor (Wireless) status..."); if(!m_deviceState->isOnline()) { debug_msg("Failed to get FUS status. The device is offline at the moment."); return WirelessStatus::Invalid; } STM32WB55 device(m_deviceState->deviceInfo().usbInfo); if(!device.beginTransaction()) { debug_msg("Failed to get FUS status. This is normal if the device has just rebooted."); return WirelessStatus::Invalid; } const auto state = device.FUSGetState(); if(!state.isValid()) { debug_msg("Failed to get FUS status. This is normal if the device has just rebooted."); return WirelessStatus::Invalid; } if(!device.endTransaction()) { debug_msg("Failed to get FUS status. This is normal if the device has just rebooted."); return WirelessStatus::Invalid; } const auto status = state.status(); const auto error = state.error(); debug_msg(QStringLiteral("Current FUS state: %1, %2.").arg(state.statusString(), state.errorString())); if((status == FUSState::Idle) && (error == FUSState::NoError)) { return WirelessStatus::FUSRunning; } else if(status == FUSState::ErrorOccured) { if(error == FUSState::NotRunning) return WirelessStatus::WSRunning; else return WirelessStatus::ErrorOccured; } else { return WirelessStatus::UnhandledState; } } bool Recovery::startFUS() { m_deviceState->setStatusString("Starting firmware upgrade service (FUS)..."); STM32WB55 device(m_deviceState->deviceInfo().usbInfo); if(!device.beginTransaction()) { setErrorString("Can't start FUS: Failed to initiate transaction."); return false; } auto state = device.FUSGetState(); auto success = state.isValid(); if(!success) { setErrorString("Can't start FUS: Failed to get FUS state."); } else if((state.status() == FUSState::Idle) && (state.error() == FUSState::NoError)) { debug_msg("FUS is already RUNNING, rebooting for consistency..."); success = device.leave(); } else if((state.status() == FUSState::ErrorOccured) && (state.error() == FUSState::NotRunning)) { debug_msg(QString("FUS appears NOT to be running: %1, %2.").arg(state.statusString(), state.errorString())); // Send a second GET_STATE to actually start FUS begin_ignore_block(); state = device.FUSGetState(); end_ignore_block(); } else { setErrorString("Can't start FUS: Unexpected FUS state."); success = false; } begin_ignore_block(); device.endTransaction(); end_ignore_block(); // At this point, there is no way to know whether FUS has actually started, but things are looking as expected. return success; } // TODO: check status to see if the wireless stack is present at all bool Recovery::startWirelessStack() { m_deviceState->setStatusString("Attempting to start the Wireless Stack..."); STM32WB55 device(m_deviceState->deviceInfo().usbInfo); auto success = device.beginTransaction() && device.FUSStartWirelessStack(); check_continue(device.endTransaction(), "^^^ It's probably nothing at this point... ^^^"); if(!success) { setErrorString("Failed to start wireless stack."); } return success; } bool Recovery::deleteWirelessStack() { m_deviceState->setStatusString("Deleting old co-processor firmware..."); STM32WB55 device(m_deviceState->deviceInfo().usbInfo); const auto success = device.beginTransaction() && device.FUSFwDelete() && device.endTransaction(); if(!success) { setErrorString("Can't delete old co-processor firmware: Failed to initiate wireless stack firmware removal."); } return success; } bool Recovery::downloadFirmware(QIODevice *file) { if(!file->open(QIODevice::ReadOnly)) { setErrorString("Can't flash firmware: Failed to open the file."); return false; } else if(file->bytesAvailable() <= 0) { setErrorString("Can't flash firmware: The file is empty."); return false; } else { m_deviceState->setStatusString("Flashing firmware..."); } DfuseFile fw(file); DfuseDevice dev(m_deviceState->deviceInfo().usbInfo); file->close(); connect(&dev, &DfuseDevice::progressChanged, this, [=](int operation, double progress) { m_deviceState->setProgress(progress / 2.0 + (operation == DfuseDevice::Download ? 50 : 0)); }); const auto success = dev.beginTransaction() && dev.download(&fw) && dev.endTransaction(); if(!success) { setErrorString("Can't flash firmware: An error has occurred during the operation."); } return success; } bool Recovery::downloadWirelessStack(QIODevice *file, uint32_t addr) { debug_msg("Attempting to flash CO-PROCESSOR firmware image..."); if(!file->open(QIODevice::ReadOnly)) { setErrorString("Can't flash co-processor firmware image: Failed to open file."); return false; } else if(!file->bytesAvailable()) { setErrorString("Can't flash co-processor firmware image: File is empty."); return false; } else { m_deviceState->setStatusString("Flashing co-processor firmware image..."); } STM32WB55 device(m_deviceState->deviceInfo().usbInfo); if(!device.beginTransaction()) { setErrorString("Can't flash co-processor firmware image: Failed to initiate transaction."); return false; } if(!addr) { const auto ob = device.optionBytes(); if(!ob.isValid()) { setErrorString("Can't flash co-processor firmware image: Failed to read Option Bytes."); return false; } const auto origin = device.partitionOrigin((uint8_t)STM32WB55::Partition::Flash); const auto pageSize = (uint32_t)0x1000; // TODO: do not hardcode page size addr = (origin + (pageSize * ob.value("SFSA")) - file->bytesAvailable()) & (~(pageSize - 1)); debug_msg(QString("SFSA value is 0x%1").arg(QString::number(ob.value("SFSA"), 16))); debug_msg(QString("Target address for co-processor firmware image is 0x%1").arg(QString::number(addr, 16))); } else { debug_msg(QString("Target address for co-processor firmware image has been OVERRIDDEN to 0x%1").arg(QString::number(addr, 16))); } connect(&device, &DfuseDevice::progressChanged, this, [=](int operation, double progress) { m_deviceState->setProgress(progress / 2.0 + (operation == DfuseDevice::Download ? 50 : 0)); }); bool success; if(!(success = device.erase(addr, file->bytesAvailable()))) { setErrorString("Can't flash co-processor firmware image: Failed to erase the internal memory."); } else if(!(success = device.download(file, addr, 0))) { setErrorString("Can't flash co-processor firmware image: Failed to write the internal memory."); } else if(!(success = device.endTransaction())) { setErrorString("Can't flash co-processor firmware image: Failed to end transaction."); } else {} file->close(); return success; } bool Recovery::upgradeWirelessStack() { debug_msg("Sending FW_UPGRADE command..."); STM32WB55 device(m_deviceState->deviceInfo().usbInfo); const auto success = device.beginTransaction() && device.FUSFwUpgrade(); check_continue(device.endTransaction(), "^^^ It's probably nothing at this point... ^^^"); if(!success) { setErrorString("Can't upgrade Co-Processor firmware: Failed to initiate installation."); } else { m_deviceState->setStatusString("Upgrading Co-Processor firmware, please wait..."); } return success; } bool Recovery::checkWirelessStack() { STM32WB55 device(m_deviceState->deviceInfo().usbInfo); if(!device.beginTransaction()) { setErrorString(QStringLiteral("Failed to read co-processor firmware version info")); return false; } const auto versionInfo = device.versionInfo(); if(!device.endTransaction()) { setErrorString(QStringLiteral("Failed to read co-processor firmware version info")); return false; } qCDebug(CATEGORY_DEBUG).noquote() << "FUS version:" << versionInfo.FUSVersion; qCDebug(CATEGORY_DEBUG).noquote() << "Wireless Stack version:" << versionInfo.WirelessVersion; return versionInfo.WirelessVersion != QStringLiteral("0.0.0"); } bool Recovery::downloadOptionBytes(QIODevice *file) { m_deviceState->setStatusString("Downloading Option Bytes..."); check_return_bool(file->open(QIODevice::ReadOnly), "Failed to open file for reading"); const OptionBytes loaded(file); file->close(); check_return_bool(loaded.isValid(), "Failed to load option bytes from file"); STM32WB55 device(m_deviceState->deviceInfo().usbInfo); check_return_bool(device.beginTransaction(), "Failed to initiate transaction"); const OptionBytes actual = device.optionBytes(); const auto diff = actual.compare(loaded); bool success = false; if(diff.isEmpty()) { debug_msg("Option Bytes OK"); success = device.leave(); if(!success) { setErrorString("Can't set boot mode: Failed to leave the Recovery mode."); } } else { for(auto it = diff.constKeyValueBegin(); it != diff.constKeyValueEnd(); ++it) { debug_msg(QString("Option Bytes mismatch @%1: this: 0x%2, other: 0x%3") .arg((*it).first, to_hex_str(actual.value((*it).first)), to_hex_str((*it).second))); } debug_msg("Writing corrected Option Bytes..."); success = device.setOptionBytes(actual.corrected(diff)); if(!success) { setErrorString("Can't set boot mode: Failed to set option bytes"); } } begin_ignore_block(); device.endTransaction(); end_ignore_block(); if(success) { m_deviceState->setStatusString(QStringLiteral("Exiting recovery mode...")); } return success; } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery.h000066400000000000000000000020031452337521700247400ustar00rootroot00000000000000#pragma once #include #include "failable.h" #include "usbdeviceinfo.h" class QIODevice; namespace Flipper { namespace Zero { class DeviceState; class Recovery : public QObject, public Failable { Q_OBJECT public: enum class BootMode { Normal, DFUOnly }; enum class WirelessStatus { WSRunning, FUSRunning, ErrorOccured, UnhandledState, Invalid }; Recovery(DeviceState *deviceState, QObject *parent = nullptr); ~Recovery(); DeviceState *deviceState() const; WirelessStatus wirelessStatus(); bool exitRecoveryMode(); bool setBootMode(BootMode mode); bool startFUS(); bool startWirelessStack(); bool deleteWirelessStack(); bool upgradeWirelessStack(); bool checkWirelessStack(); bool downloadFirmware(QIODevice *file); bool downloadOptionBytes(QIODevice *file); bool downloadWirelessStack(QIODevice *file, uint32_t addr = 0); private: DeviceState *m_deviceState; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/000077500000000000000000000000001452337521700245745ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/abstractrecoveryoperation.cpp000066400000000000000000000030041452337521700326000ustar00rootroot00000000000000#include "abstractrecoveryoperation.h" #include #include "flipperzero/recovery.h" #include "flipperzero/devicestate.h" using namespace Flipper; using namespace Zero; AbstractRecoveryOperation::AbstractRecoveryOperation(Recovery *recovery, QObject *parent): AbstractOperation(parent), m_recovery(recovery) {} void AbstractRecoveryOperation::start() { if(operationState() != AbstractOperation::Ready) { finishWithError(BackendError::RecoveryError, QStringLiteral("Trying to start an operation that is either already running or has finished.")); } else { connect(m_recovery->deviceState(), &DeviceState::isOnlineChanged, this, &AbstractRecoveryOperation::onDeviceOnlineChanged); QTimer::singleShot(0, this, &AbstractRecoveryOperation::nextStateLogic); } } void AbstractRecoveryOperation::finish() { disconnect(m_recovery->deviceState(), &DeviceState::isOnlineChanged, this, &AbstractRecoveryOperation::onDeviceOnlineChanged); AbstractOperation::finish(); } void AbstractRecoveryOperation::onDeviceOnlineChanged() { if(deviceState()->isOnline()) { stopTimeout(); advanceOperationState(); } else { startTimeout(); } } Recovery *AbstractRecoveryOperation::recovery() const { return m_recovery; } DeviceState *AbstractRecoveryOperation::deviceState() const { return m_recovery->deviceState(); } void AbstractRecoveryOperation::advanceOperationState() { QTimer::singleShot(0, this, &AbstractRecoveryOperation::nextStateLogic); } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/abstractrecoveryoperation.h000066400000000000000000000011701452337521700322470ustar00rootroot00000000000000#pragma once #include "abstractoperation.h" namespace Flipper { namespace Zero { class Recovery; class DeviceState; class AbstractRecoveryOperation : public AbstractOperation { Q_OBJECT public: AbstractRecoveryOperation(Recovery *recovery, QObject *parent = nullptr); virtual ~AbstractRecoveryOperation() {} void start() override; void finish() override; protected: Recovery *recovery() const; DeviceState *deviceState() const; void advanceOperationState(); private slots: void onDeviceOnlineChanged(); virtual void nextStateLogic() = 0; private: Recovery *m_recovery; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/correctoptionbytesoperation.cpp000066400000000000000000000030271452337521700331640ustar00rootroot00000000000000#include "correctoptionbytesoperation.h" #include #include #include Q_DECLARE_LOGGING_CATEGORY(LOG_RECOVERY) #include "flipperzero/devicestate.h" #include "flipperzero/recovery.h" using namespace Flipper; using namespace Zero; CorrectOptionBytesOperation::CorrectOptionBytesOperation(Recovery *recovery, QIODevice *file, QObject *parent): AbstractRecoveryOperation(recovery, parent), m_file(file) {} const QString CorrectOptionBytesOperation::description() const { return QStringLiteral("Correct Option Bytes @%1").arg(deviceState()->name()); } void CorrectOptionBytesOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(CorrectOptionBytesOperation::CorrectingOptionBytes); correctOptionBytes(); } else if(operationState() == CorrectOptionBytesOperation::CorrectingOptionBytes) { finish(); } else {} } void CorrectOptionBytesOperation::onOperationTimeout() { if(!deviceState()->isOnline()) { finishWithError(BackendError::RecoveryError, QStringLiteral("Failed to write corrected option bytes: Operation timeout")); } else { qCDebug(LOG_RECOVERY) << "Timeout while device is online, assuming it is still functional"; advanceOperationState(); } } void CorrectOptionBytesOperation::correctOptionBytes() { if(!recovery()->downloadOptionBytes(m_file)) { finishWithError(BackendError::RecoveryError, recovery()->errorString()); } else { startTimeout(); } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/correctoptionbytesoperation.h000066400000000000000000000011321452337521700326240ustar00rootroot00000000000000#pragma once #include "abstractrecoveryoperation.h" class QIODevice; namespace Flipper { namespace Zero { class CorrectOptionBytesOperation : public AbstractRecoveryOperation { Q_OBJECT enum OperationState { CorrectingOptionBytes = AbstractOperation::User }; public: CorrectOptionBytesOperation(Recovery *recovery, QIODevice *file, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; void onOperationTimeout() override; private: void correctOptionBytes(); QIODevice *m_file; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/exitrecoveryoperation.cpp000066400000000000000000000021131452337521700317460ustar00rootroot00000000000000#include "exitrecoveryoperation.h" #include "flipperzero/recovery.h" #include "flipperzero/devicestate.h" using namespace Flipper; using namespace Zero; ExitRecoveryOperation::ExitRecoveryOperation(Recovery *recovery, QObject *parent): AbstractRecoveryOperation(recovery, parent) {} const QString ExitRecoveryOperation::description() const { return QStringLiteral("Exit Recovery Mode @%1").arg(deviceState()->name()); } void ExitRecoveryOperation::nextStateLogic() { if(operationState() == BasicOperationState::Ready) { setOperationState(OperationState::WaitingForOnline); exitRecovery(); } else if(operationState() == OperationState::WaitingForOnline) { finish(); } } void ExitRecoveryOperation::onOperationTimeout() { finishWithError(BackendError::RecoveryError, QStringLiteral("Failed to exit recovery: Operation timeout")); } void ExitRecoveryOperation::exitRecovery() { if(!recovery()->exitRecoveryMode()) { finishWithError(BackendError::RecoveryError, recovery()->errorString()); } else { startTimeout(); } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/exitrecoveryoperation.h000066400000000000000000000010141452337521700314120ustar00rootroot00000000000000#pragma once #include "abstractrecoveryoperation.h" namespace Flipper { namespace Zero { class ExitRecoveryOperation : public AbstractRecoveryOperation { Q_OBJECT enum OperationState { WaitingForOnline = BasicOperationState::User }; public: ExitRecoveryOperation(Recovery *recovery, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; void onOperationTimeout() override; private: void exitRecovery(); }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/firmwaredownloadoperation.cpp000066400000000000000000000030221452337521700325620ustar00rootroot00000000000000#include "firmwaredownloadoperation.h" #include #include #include "flipperzero/devicestate.h" #include "flipperzero/recovery.h" using namespace Flipper; using namespace Zero; FirmwareDownloadOperation::FirmwareDownloadOperation(Recovery *recovery, QIODevice *file, QObject *parent): AbstractRecoveryOperation(recovery, parent), m_file(file) {} const QString FirmwareDownloadOperation::description() const { return QStringLiteral("Firmware Download @%1").arg(deviceState()->name()); } void FirmwareDownloadOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(State::DownloadingFirmware); downloadFirmware(); } else if(operationState() == State::DownloadingFirmware) { finish(); } else { finishWithError(BackendError::RecoveryError, QStringLiteral("Unexpected state.")); } } void FirmwareDownloadOperation::downloadFirmware() { auto *watcher = new QFutureWatcher(this); connect(watcher, &QFutureWatcherBase::finished, this, [=]() { if(watcher->result()) { advanceOperationState(); } else { finishWithError(BackendError::RecoveryError, recovery()->errorString()); } watcher->deleteLater(); }); #if QT_VERSION < 0x060000 watcher->setFuture(QtConcurrent::run(recovery(), &Recovery::downloadFirmware, m_file)); #else watcher->setFuture(QtConcurrent::run(&Recovery::downloadFirmware, recovery(), m_file)); #endif } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/firmwaredownloadoperation.h000066400000000000000000000010431452337521700322300ustar00rootroot00000000000000#pragma once #include "abstractrecoveryoperation.h" class QIODevice; namespace Flipper { namespace Zero { class FirmwareDownloadOperation : public AbstractRecoveryOperation { Q_OBJECT enum State { DownloadingFirmware = AbstractOperation::User }; public: FirmwareDownloadOperation(Recovery *recovery, QIODevice *file, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void downloadFirmware(); QIODevice *m_file; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/setbootmodeoperation.cpp000066400000000000000000000040271452337521700315500ustar00rootroot00000000000000#include "setbootmodeoperation.h" #include #include #include "flipperzero/devicestate.h" #include "flipperzero/recovery.h" Q_DECLARE_LOGGING_CATEGORY(LOG_RECOVERY) using namespace Flipper; using namespace Zero; SetBootModeOperation::SetBootModeOperation(Recovery *recovery, QObject *parent): AbstractRecoveryOperation(recovery, parent) {} const QString SetBootModeOperation::description() const { return QStringLiteral("Set %1 boot mode @%2").arg(typeString(), deviceState()->name()); } void SetBootModeOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(SetBootModeOperation::WaitingForBoot); setBootMode(); } else if(operationState() == SetBootModeOperation::WaitingForBoot) { finish(); } } void SetBootModeOperation::onOperationTimeout() { if(!deviceState()->isOnline()) { finishWithError(BackendError::RecoveryError, QStringLiteral("Failed to set %1 mode: operation timeout").arg(typeString())); } else { qCDebug(LOG_RECOVERY) << "Timeout with an online device, assuming it is still functional"; advanceOperationState(); } } void SetBootModeOperation::setBootMode() { if(!recovery()->setBootMode((Recovery::BootMode)bootMode())) { finishWithError(BackendError::RecoveryError, recovery()->errorString()); } else { startTimeout(); } } SetRecoveryBootOperation::SetRecoveryBootOperation(Recovery *recovery, QObject *parent): SetBootModeOperation(recovery, parent) {} int SetRecoveryBootOperation::bootMode() const { return (int)Recovery::BootMode::DFUOnly; } const QString SetRecoveryBootOperation::typeString() const { return QStringLiteral("Recovery"); } SetOSBootOperation::SetOSBootOperation(Recovery *recovery, QObject *parent): SetBootModeOperation(recovery, parent) {} int SetOSBootOperation::bootMode() const { return (int)Recovery::BootMode::Normal; } const QString SetOSBootOperation::typeString() const { return QStringLiteral("OS"); } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/setbootmodeoperation.h000066400000000000000000000021261452337521700312130ustar00rootroot00000000000000#pragma once #include "abstractrecoveryoperation.h" namespace Flipper { namespace Zero { class SetBootModeOperation : public AbstractRecoveryOperation { Q_OBJECT enum OperationState { WaitingForBoot = AbstractOperation::User }; public: SetBootModeOperation(Recovery *recovery, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; void onOperationTimeout() override; private: virtual int bootMode() const = 0; virtual const QString typeString() const = 0; void setBootMode(); }; class SetRecoveryBootOperation : public SetBootModeOperation { Q_OBJECT public: SetRecoveryBootOperation(Recovery *recovery, QObject *parent = nullptr); private: int bootMode() const override; const QString typeString() const override; }; class SetOSBootOperation : public SetBootModeOperation { Q_OBJECT public: SetOSBootOperation(Recovery *recovery, QObject *parent = nullptr); private: int bootMode() const override; const QString typeString() const override; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/wirelessstackdownloadoperation.cpp000066400000000000000000000147311452337521700336420ustar00rootroot00000000000000#include "wirelessstackdownloadoperation.h" #include #include #include #include #include #include #include "flipperzero/devicestate.h" #include "flipperzero/recovery.h" Q_DECLARE_LOGGING_CATEGORY(LOG_RECOVERY) using namespace Flipper; using namespace Zero; static constexpr int INSTALL_TRY_COUNT = 3; static constexpr int CHECK_TRY_COUNT = 3; static constexpr int TIMER_INTERVAL_MS = 1000; WirelessStackDownloadOperation::WirelessStackDownloadOperation(Recovery *recovery, QIODevice *file, uint32_t targetAddress, QObject *parent): AbstractRecoveryOperation(recovery, parent), m_file(file), m_loopTimer(new QTimer(this)), m_targetAddress(targetAddress), m_installTryCount(INSTALL_TRY_COUNT) { m_loopTimer->setInterval(TIMER_INTERVAL_MS); connect(m_loopTimer, &QTimer::timeout, this, &WirelessStackDownloadOperation::nextStateLogic); connect(this, &AbstractOperation::finished, m_loopTimer, &QTimer::stop); } const QString WirelessStackDownloadOperation::description() const { return QStringLiteral("Co-Processor Firmware Download @%1").arg(deviceState()->name()); } void WirelessStackDownloadOperation::nextStateLogic() { if(operationState() == Ready) { setOperationState(StartingFUS); startFUS(); } else if(operationState() == StartingFUS) { setOperationState(DeletingWirelessStack); deleteWirelessStack(); } else if(operationState() == DeletingWirelessStack) { if(isWirelessStackDeleted()) { setOperationState(DownloadingWirelessStack); downloadWirelessStack(); } } else if(operationState() == DownloadingWirelessStack) { setOperationState(UpgradingWirelessStack); upgradeWirelessStack(); } else if(operationState() == UpgradingWirelessStack) { if(isWirelessStackUpgraded()) { setOperationState(CheckingWirelessStack); checkWirelessStack(); } } else if(operationState() == CheckingWirelessStack) { if(isWirelessStackOK()) { finish(); } else { tryAgain(); } } } void WirelessStackDownloadOperation::onOperationTimeout() { QString msg; if(operationState() == StartingFUS) { msg = QStringLiteral("Failed to start Firmware Upgrade Service: Operation timeout."); } else if(operationState() == DeletingWirelessStack) { msg = QStringLiteral("Failed to delete existing Wireless Stack: Operation timeout."); } else if(operationState() == UpgradingWirelessStack) { msg = QStringLiteral("Failed to upgrade Wireless Stack: Operation timeout."); } else { msg = QStringLiteral("Should not have timed out here, probably a bug."); } if(!deviceState()->isOnline()) { finishWithError(BackendError::RecoveryError, msg); } else { qCDebug(LOG_RECOVERY) << "Timeout with an online device, assuming it is still functional"; advanceOperationState(); } } void WirelessStackDownloadOperation::startFUS() { if(!recovery()->startFUS()) { finishWithError(BackendError::RecoveryError, recovery()->errorString()); } else { startTimeout(); } } void WirelessStackDownloadOperation::deleteWirelessStack() { if(!recovery()->deleteWirelessStack()) { finishWithError(BackendError::RecoveryError, recovery()->errorString()); } else { m_loopTimer->start(); } } bool WirelessStackDownloadOperation::isWirelessStackDeleted() { const auto status = recovery()->wirelessStatus(); const auto waitNext = (status == Recovery::WirelessStatus::Invalid) || (status == Recovery::WirelessStatus::UnhandledState); if(waitNext) { return false; } m_loopTimer->stop(); const auto errorOccured = (status == Recovery::WirelessStatus::WSRunning) || (status == Recovery::WirelessStatus::ErrorOccured); if(errorOccured) { finishWithError(BackendError::RecoveryError, QStringLiteral("Failed to finish removal of the Wireless Stack.")); } return !errorOccured; } void WirelessStackDownloadOperation::downloadWirelessStack() { auto *watcher = new QFutureWatcher(this); connect(watcher, &QFutureWatcherBase::finished, this, [=]() { if(watcher->result()) { advanceOperationState(); } else { finishWithError(BackendError::RecoveryError, QStringLiteral("Failed to download the Wireless Stack.")); } watcher->deleteLater(); }); #if QT_VERSION < 0x060000 watcher->setFuture(QtConcurrent::run(recovery(), &Recovery::downloadWirelessStack, m_file, m_targetAddress)); #else watcher->setFuture(QtConcurrent::run(&Recovery::downloadWirelessStack, recovery(), m_file, m_targetAddress)); #endif } void WirelessStackDownloadOperation::upgradeWirelessStack() { if(!recovery()->upgradeWirelessStack()) { finishWithError(BackendError::RecoveryError, recovery()->errorString()); } else { m_loopTimer->start(); } } bool WirelessStackDownloadOperation::isWirelessStackUpgraded() { const auto status = recovery()->wirelessStatus(); const auto waitNext = (status == Recovery::WirelessStatus::Invalid) || (status == Recovery::WirelessStatus::UnhandledState); if(waitNext) { return false; } m_loopTimer->stop(); const auto errorOccured = (status == Recovery::WirelessStatus::ErrorOccured); if(errorOccured) { finishWithError(BackendError::RecoveryError, QStringLiteral("Failed to finish installation of the Wireless Stack.")); } return !errorOccured; } void WirelessStackDownloadOperation::checkWirelessStack() { m_checkTryCount = CHECK_TRY_COUNT; m_loopTimer->start(); advanceOperationState(); } bool WirelessStackDownloadOperation::isWirelessStackOK() { return recovery()->checkWirelessStack(); } void WirelessStackDownloadOperation::tryAgain() { if(--m_checkTryCount > 0) { qCDebug(LOG_RECOVERY) << "Wireless stack check seems to have failed, retrying..."; } else if(--m_installTryCount > 0) { qCDebug(LOG_RECOVERY) << "Wireless stack installation seems to have failed, retrying..."; m_loopTimer->stop(); setOperationState(Ready); advanceOperationState(); } else { finishWithError(BackendError::RecoveryError, QStringLiteral("Could not install wireless stack after several tries, giving up")); } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recovery/wirelessstackdownloadoperation.h000066400000000000000000000021251452337521700333010ustar00rootroot00000000000000#pragma once #include "abstractrecoveryoperation.h" class QTimer; class QIODevice; namespace Flipper { namespace Zero { class WirelessStackDownloadOperation : public AbstractRecoveryOperation { Q_OBJECT enum State { StartingFUS = AbstractOperation::User, DeletingWirelessStack, DownloadingWirelessStack, UpgradingWirelessStack, CheckingWirelessStack }; public: WirelessStackDownloadOperation(Recovery *recovery, QIODevice *file, uint32_t targetAddress = 0, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; void onOperationTimeout() override; private: void startFUS(); void deleteWirelessStack(); bool isWirelessStackDeleted(); void downloadWirelessStack(); void upgradeWirelessStack(); bool isWirelessStackUpgraded(); void checkWirelessStack(); bool isWirelessStackOK(); void tryAgain(); QIODevice *m_file; QTimer *m_loopTimer; uint32_t m_targetAddress; int m_installTryCount; int m_checkTryCount; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/recoveryinterface.cpp000066400000000000000000000042651452337521700271700ustar00rootroot00000000000000#include "recoveryinterface.h" #include #include "flipperzero/recovery/setbootmodeoperation.h" #include "flipperzero/recovery/exitrecoveryoperation.h" #include "flipperzero/recovery/firmwaredownloadoperation.h" #include "flipperzero/recovery/correctoptionbytesoperation.h" #include "flipperzero/recovery/wirelessstackdownloadoperation.h" #include "recovery.h" #include "debug.h" Q_LOGGING_CATEGORY(LOG_RECOVERY, "RCY") using namespace Flipper; using namespace Zero; RecoveryInterface::RecoveryInterface(DeviceState *state, QObject *parent): AbstractOperationRunner(parent), m_recovery(new Recovery(state, this)) {} ExitRecoveryOperation *RecoveryInterface::exitRecoveryMode() { auto *operation = new ExitRecoveryOperation(m_recovery, this); enqueueOperation(operation); return operation; } SetBootModeOperation *RecoveryInterface::setOSBootMode() { auto *operation = new SetOSBootOperation(m_recovery, this); enqueueOperation(operation); return operation; } SetBootModeOperation *RecoveryInterface::setRecoveryBootMode() { auto *operation = new SetRecoveryBootOperation(m_recovery, this); enqueueOperation(operation); return operation; } FirmwareDownloadOperation *RecoveryInterface::downloadFirmware(QIODevice *file) { auto *operation = new FirmwareDownloadOperation(m_recovery, file, this); enqueueOperation(operation); return operation; } WirelessStackDownloadOperation *RecoveryInterface::downloadFUS(QIODevice *file, uint32_t address) { auto *operation = new WirelessStackDownloadOperation(m_recovery, file, address, this); enqueueOperation(operation); return operation; } WirelessStackDownloadOperation *RecoveryInterface::downloadWirelessStack(QIODevice *file) { auto *operation = new WirelessStackDownloadOperation(m_recovery, file, 0, this); enqueueOperation(operation); return operation; } CorrectOptionBytesOperation *RecoveryInterface::fixOptionBytes(QIODevice *file) { auto *operation = new CorrectOptionBytesOperation(m_recovery, file, this); enqueueOperation(operation); return operation; } const QLoggingCategory &RecoveryInterface::loggingCategory() const { return LOG_RECOVERY(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/recoveryinterface.h000066400000000000000000000017521452337521700266330ustar00rootroot00000000000000#pragma once #include "abstractoperationrunner.h" class QIODevice; namespace Flipper { namespace Zero { class Recovery; class DeviceState; class SetBootModeOperation; class ExitRecoveryOperation; class FirmwareDownloadOperation; class CorrectOptionBytesOperation; class WirelessStackDownloadOperation; class RecoveryInterface : public AbstractOperationRunner { Q_OBJECT public: RecoveryInterface(DeviceState *state, QObject *parent = nullptr); ExitRecoveryOperation *exitRecoveryMode(); SetBootModeOperation *setOSBootMode(); SetBootModeOperation *setRecoveryBootMode(); FirmwareDownloadOperation *downloadFirmware(QIODevice *file); WirelessStackDownloadOperation *downloadFUS(QIODevice *file, uint32_t address); WirelessStackDownloadOperation *downloadWirelessStack(QIODevice *file); CorrectOptionBytesOperation *fixOptionBytes(QIODevice *file); private: const QLoggingCategory &loggingCategory() const override; Recovery *m_recovery; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/000077500000000000000000000000001452337521700235225ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/abstractprotobufoperation.cpp000066400000000000000000000040031452337521700315300ustar00rootroot00000000000000#include "abstractprotobufoperation.h" #include #include "mainresponseinterface.h" using namespace Flipper; using namespace Zero; AbstractProtobufOperation::AbstractProtobufOperation(uint32_t id, QObject *parent): AbstractOperation(parent), m_id(id) {} AbstractProtobufOperation::~AbstractProtobufOperation() {} uint32_t AbstractProtobufOperation::id() const { return m_id; } bool AbstractProtobufOperation::hasMoreData() const { // Default implementation for single-part operations return false; } bool AbstractProtobufOperation::isFinished() const { return operationState() == AbstractOperation::Finished; } void AbstractProtobufOperation::start() { if(!begin()) { // begin() has to fill the error() and errorString() fields finishLater(); } else { setOperationState(Started); startTimeout(); } } void AbstractProtobufOperation::finishLater() { QTimer::singleShot(0, this, &AbstractOperation::finish); } void AbstractProtobufOperation::abort(const QString &reason) { finishWithError(BackendError::UnknownError, reason); } void AbstractProtobufOperation::feedResponse(QObject *response) { auto *mainResponse = qobject_cast(response); if(mainResponse->isError()) { finishWithError(BackendError::ProtocolError, QStringLiteral("Device replied with error: %1").arg(mainResponse->errorString())); } else if(!processResponse(response)) { finishWithError(BackendError::ProtocolError, QStringLiteral("Operation finished with error: %1").arg(mainResponse->errorString())); } else if(!mainResponse->hasNext()) { finish(); } else { startTimeout(); } } bool AbstractProtobufOperation::begin() { // Empty default implementation return true; } bool AbstractProtobufOperation::processResponse(QObject *response) { // Default implementation, checks whether we got an empty response // TODO: add isOk() check return qobject_cast(response); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/abstractprotobufoperation.h000066400000000000000000000014771452337521700312110ustar00rootroot00000000000000#pragma once #include "abstractoperation.h" class ProtobufPluginInterface; namespace Flipper { namespace Zero { class AbstractProtobufOperation : public AbstractOperation { Q_OBJECT enum ProtobufOperationState { Started = AbstractOperation::User }; public: AbstractProtobufOperation(uint32_t id, QObject *parent = nullptr); virtual ~AbstractProtobufOperation(); uint32_t id() const; virtual bool hasMoreData() const; bool isFinished() const; void start() override; void finishLater(); void abort(const QString &reason); virtual void feedResponse(QObject *response); virtual const QByteArray encodeRequest(ProtobufPluginInterface *encoder) = 0; private: virtual bool begin(); virtual bool processResponse(QObject *response); uint32_t m_id; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/abstractstorageoperation.cpp000066400000000000000000000011321452337521700313340ustar00rootroot00000000000000#include "abstractstorageoperation.h" using namespace Flipper; using namespace Zero; AbstractStorageOperation::AbstractStorageOperation(uint32_t id, const QByteArray &path, QObject *parent): AbstractProtobufOperation(id, parent), m_path(path) { // Replace forbidden characters with '_' for(auto it = m_path.begin(); it != m_path.end(); ++it) { if(QByteArrayLiteral("<>*?:|\"\\").contains(*it)) { *it = '_'; } } } AbstractStorageOperation::~AbstractStorageOperation() {} const QByteArray &AbstractStorageOperation::path() const { return m_path; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/abstractstorageoperation.h000066400000000000000000000006561452337521700310130ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" #include namespace Flipper { namespace Zero { class AbstractStorageOperation : public AbstractProtobufOperation { Q_OBJECT public: AbstractStorageOperation(uint32_t id, const QByteArray &path, QObject *parent = nullptr); virtual ~AbstractStorageOperation(); protected: const QByteArray &path() const; private: QByteArray m_path; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guiscreenframeoperation.cpp000066400000000000000000000011141452337521700311430ustar00rootroot00000000000000#include "guiscreenframeoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; GuiScreenFrameOperation::GuiScreenFrameOperation(uint32_t id, const QByteArray &screenData, QObject *parent): AbstractProtobufOperation(id, parent), m_screenData(screenData) {} const QString GuiScreenFrameOperation::description() const { return QStringLiteral("Gui ScreenFrame"); } const QByteArray GuiScreenFrameOperation::encodeRequest(ProtobufPluginInterface *encoder) { finishLater(); return encoder->guiScreenFrame(id(), m_screenData); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guiscreenframeoperation.h000066400000000000000000000007071452337521700306170ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class GuiScreenFrameOperation : public AbstractProtobufOperation { Q_OBJECT public: GuiScreenFrameOperation(uint32_t id, const QByteArray &screenData, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: QByteArray m_screenData; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guisendinputoperation.cpp000066400000000000000000000010471452337521700306670ustar00rootroot00000000000000#include "guisendinputoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; GuiSendInputOperation::GuiSendInputOperation(uint32_t id, int key, int type, QObject *parent): AbstractProtobufOperation(id, parent), m_key(key), m_type(type) {} const QString GuiSendInputOperation::description() const { return QStringLiteral("Gui Send Input"); } const QByteArray GuiSendInputOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->guiSendInput(id(), m_key, m_type); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guisendinputoperation.h000066400000000000000000000006721452337521700303370ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class GuiSendInputOperation : public AbstractProtobufOperation { Q_OBJECT public: GuiSendInputOperation(uint32_t id, int key, int type, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: int m_key; int m_type; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guistartscreenstreamoperation.cpp000066400000000000000000000010331452337521700324220ustar00rootroot00000000000000#include "guistartscreenstreamoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; GuiStartScreenStreamOperation::GuiStartScreenStreamOperation(uint32_t id, QObject *parent): AbstractProtobufOperation(id, parent) {} const QString GuiStartScreenStreamOperation::description() const { return QStringLiteral("Gui Start ScreenStream"); } const QByteArray GuiStartScreenStreamOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->guiStartScreenStream(id()); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guistartscreenstreamoperation.h000066400000000000000000000006161452337521700320750ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class GuiStartScreenStreamOperation : public AbstractProtobufOperation { Q_OBJECT public: GuiStartScreenStreamOperation(uint32_t id, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guistartvirtualdisplayoperation.cpp000066400000000000000000000011641452337521700330100ustar00rootroot00000000000000#include "guistartvirtualdisplayoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; GuiStartVirtualDisplayOperation::GuiStartVirtualDisplayOperation(uint32_t id, const QByteArray &screenData, QObject *parent): AbstractProtobufOperation(id, parent), m_screenData(screenData) {} const QString GuiStartVirtualDisplayOperation::description() const { return QStringLiteral("Gui Start VirtualDisplay"); } const QByteArray GuiStartVirtualDisplayOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->guiStartVirtualDisplay(id(), m_screenData); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guistartvirtualdisplayoperation.h000066400000000000000000000007271452337521700324610ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class GuiStartVirtualDisplayOperation : public AbstractProtobufOperation { Q_OBJECT public: GuiStartVirtualDisplayOperation(uint32_t id, const QByteArray &screenData, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: QByteArray m_screenData; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guistopscreenstreamoperation.cpp000066400000000000000000000010241452337521700322520ustar00rootroot00000000000000#include "guistopscreenstreamoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; GuiStopScreenStreamOperation::GuiStopScreenStreamOperation(uint32_t id, QObject *parent): AbstractProtobufOperation(id, parent) {} const QString GuiStopScreenStreamOperation::description() const { return QStringLiteral("Gui Stop ScreenStream"); } const QByteArray GuiStopScreenStreamOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->guiStopScreenStream(id()); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guistopscreenstreamoperation.h000066400000000000000000000006141452337521700317230ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class GuiStopScreenStreamOperation : public AbstractProtobufOperation { Q_OBJECT public: GuiStopScreenStreamOperation(uint32_t id, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guistopvirtualdisplayoperation.cpp000066400000000000000000000010421452337521700326330ustar00rootroot00000000000000#include "guistopvirtualdisplayoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; GuiStopVirtualDisplayOperation::GuiStopVirtualDisplayOperation(uint32_t id, QObject *parent): AbstractProtobufOperation(id, parent) {} const QString GuiStopVirtualDisplayOperation::description() const { return QStringLiteral("Gui Stop VirtualDisplay"); } const QByteArray GuiStopVirtualDisplayOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->guiStopVirtualDisplay(id()); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/guistopvirtualdisplayoperation.h000066400000000000000000000006201452337521700323010ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class GuiStopVirtualDisplayOperation : public AbstractProtobufOperation { Q_OBJECT public: GuiStopVirtualDisplayOperation(uint32_t id, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/propertygetoperation.cpp000066400000000000000000000017501452337521700305360ustar00rootroot00000000000000#include "propertygetoperation.h" #include "protobufplugininterface.h" #include "mainresponseinterface.h" #include "propertyresponseinterface.h" using namespace Flipper; using namespace Zero; PropertyGetOperation::PropertyGetOperation(uint32_t id, const QByteArray &key, QObject *parent): AbstractProtobufOperation(id, parent), m_key(key) {} const QString PropertyGetOperation::description() const { return QStringLiteral("Property Get"); } const QByteArray PropertyGetOperation::value(const QByteArray &key) const { return m_data.value(key); } const QByteArray PropertyGetOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->propertyGet(id(), m_key); } bool PropertyGetOperation::processResponse(QObject *response) { const auto *msg = qobject_cast(response); if(msg) { m_data.insert(msg->key(), msg->value()); return true; } return qobject_cast(response); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/propertygetoperation.h000066400000000000000000000011661452337521700302040ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" #include #include namespace Flipper { namespace Zero { class PropertyGetOperation : public AbstractProtobufOperation { Q_OBJECT public: PropertyGetOperation(uint32_t id, const QByteArray &key, QObject *parent = nullptr); const QString description() const override; const QByteArray value(const QByteArray &key) const; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool processResponse(QObject *response) override; QByteArray m_key; QHash m_data; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/skipmotdoperation.cpp000066400000000000000000000010371452337521700300020ustar00rootroot00000000000000#include "skipmotdoperation.h" #include using namespace Flipper; using namespace Zero; SkipMOTDOperation::SkipMOTDOperation(QSerialPort *serialPort, QObject *parent): SimpleSerialOperation(serialPort, parent) {} const QString SkipMOTDOperation::description() const { return QStringLiteral("Skip MOTD @%1").arg(QString(serialPort()->portName())); } QByteArray SkipMOTDOperation::endOfMessageToken() const { return QByteArrayLiteral("\r\n\r\n>: "); } uint32_t SkipMOTDOperation::flags() const { return DTR; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/skipmotdoperation.h000066400000000000000000000006151452337521700274500ustar00rootroot00000000000000#pragma once #include "simpleserialoperation.h" namespace Flipper { namespace Zero { class SkipMOTDOperation : public SimpleSerialOperation { Q_OBJECT public: SkipMOTDOperation(QSerialPort *serialPort, QObject *parent = nullptr); const QString description() const override; private: QByteArray endOfMessageToken() const override; uint32_t flags() const override; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/startrpcoperation.cpp000066400000000000000000000023431452337521700300130ustar00rootroot00000000000000#include "startrpcoperation.h" #include using namespace Flipper; using namespace Zero; StartRPCOperation::StartRPCOperation(QSerialPort *serialPort, QObject *parent): AbstractSerialOperation(serialPort, parent) {} const QString StartRPCOperation::description() const { return QStringLiteral("Start RPC session @%1").arg(QString(serialPort()->portName())); } void StartRPCOperation::onSerialPortReadyRead() { serialPort()->startTransaction(); if(!serialPort()->readAll().endsWith(s_cmd + '\n')) { serialPort()->rollbackTransaction(); } else { serialPort()->commitTransaction(); finish(); } } void StartRPCOperation::onOperationTimeout() { if(operationState() == State::LeavingCli) { finishWithError(BackendError::SerialError, QStringLiteral("Failed to start RPC session")); } else if(operationState() == State::WaitingForPing) { finishWithError(BackendError::ProtocolError, QStringLiteral("No ping response from device")); } } bool StartRPCOperation::begin() { setOperationState(State::LeavingCli); return (serialPort()->write(s_cmd) == s_cmd.size()) && serialPort()->flush(); } const QByteArray StartRPCOperation::s_cmd("start_rpc_session\r"); flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/startrpcoperation.h000066400000000000000000000010671452337521700274620ustar00rootroot00000000000000#pragma once #include "abstractserialoperation.h" namespace Flipper { namespace Zero { class StartRPCOperation : public AbstractSerialOperation { Q_OBJECT enum State { LeavingCli = AbstractOperation::User, WaitingForPing }; public: StartRPCOperation(QSerialPort *serialPort, QObject *parent = nullptr); const QString description() const override; private slots: void onSerialPortReadyRead() override; void onOperationTimeout() override; private: bool begin() override; static const QByteArray s_cmd; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/stoprpcoperation.cpp000066400000000000000000000011611452337521700276400ustar00rootroot00000000000000#include "stoprpcoperation.h" #include using namespace Flipper; using namespace Zero; StopRPCOperation::StopRPCOperation(QSerialPort *serialPort, QObject *parent): AbstractSerialOperation(serialPort, parent) {} const QString StopRPCOperation::description() const { return QStringLiteral("Stop RPC session @%1").arg(QString(serialPort()->portName())); } void StopRPCOperation::onSerialPortReadyRead() { m_receivedData.append(serialPort()->readAll()); if(m_receivedData.endsWith(QByteArrayLiteral("\r\n>: "))) { finish(); } } bool StopRPCOperation::begin() { return false; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/stoprpcoperation.h000066400000000000000000000006551452337521700273140ustar00rootroot00000000000000#pragma once #include "abstractserialoperation.h" namespace Flipper { namespace Zero { class StopRPCOperation : public AbstractSerialOperation { Q_OBJECT public: StopRPCOperation(QSerialPort *serialPort, QObject *parent = nullptr); const QString description() const override; private slots: void onSerialPortReadyRead() override; private: bool begin() override; QByteArray m_receivedData; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storageinfooperation.cpp000066400000000000000000000024231452337521700304700ustar00rootroot00000000000000#include "storageinfooperation.h" #include "protobufplugininterface.h" #include "mainresponseinterface.h" #include "storageresponseinterface.h" using namespace Flipper; using namespace Zero; StorageInfoOperation::StorageInfoOperation(uint32_t id, const QByteArray &path, QObject *parent): AbstractProtobufOperation(id, parent), m_path(path), m_isPresent(false), m_sizeFree(0), m_sizeTotal(0) {} const QString StorageInfoOperation::description() const { return QStringLiteral("Storage Info @%1").arg(QString(m_path)); } bool StorageInfoOperation::isPresent() const { return m_isPresent; } quint64 StorageInfoOperation::sizeFree() const { return m_sizeFree; } quint64 StorageInfoOperation::sizeTotal() const { return m_sizeTotal; } const QByteArray StorageInfoOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->storageInfo(id(), m_path); } bool StorageInfoOperation::processResponse(QObject *response) { auto *storageInfoResponse = qobject_cast(response); if(storageInfoResponse) { m_sizeFree = storageInfoResponse->sizeFree(); m_sizeTotal = storageInfoResponse->sizeTotal(); m_isPresent = true; } // Never fail on recoverable errors return true; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storageinfooperation.h000066400000000000000000000012271452337521700301360ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class StorageInfoOperation : public AbstractProtobufOperation { Q_OBJECT public: StorageInfoOperation(uint32_t id, const QByteArray &path, QObject *parent = nullptr); const QString description() const override; bool isPresent() const; quint64 sizeFree() const; quint64 sizeTotal() const; private: const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool processResponse(QObject *response) override; QByteArray m_path; bool m_isPresent; quint64 m_sizeFree; quint64 m_sizeTotal; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagelistoperation.cpp000066400000000000000000000027631452337521700305170ustar00rootroot00000000000000#include "storagelistoperation.h" #include "protobufplugininterface.h" #include "mainresponseinterface.h" #include "storageresponseinterface.h" using namespace Flipper; using namespace Zero; StorageListOperation::StorageListOperation(uint32_t id, const QByteArray &path, QObject *parent): AbstractProtobufOperation(id, parent), m_path(path), m_hasPath(false) {} const QString StorageListOperation::description() const { return QStringLiteral("Storage List @%1").arg(QString(m_path)); } const FileInfoList &StorageListOperation::files() const { return m_result; } bool StorageListOperation::hasPath() const { return m_hasPath; } const QByteArray StorageListOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->storageList(id(), m_path); } bool StorageListOperation::processResponse(QObject *response) { auto *listResponse = qobject_cast(response); m_hasPath = listResponse; if(!m_hasPath) { return qobject_cast(response); } const auto &files = listResponse->files(); for(const auto &file : files) { m_result.append({ file.name, m_path == QByteArrayLiteral("/") ? m_path + file.name : m_path + QByteArrayLiteral("/") + file.name, file.type == StorageFile::Directory ? FileType::Directory : FileType::RegularFile, (qint64)file.size // TODO: see if a negative value is actually used anywhere }); } return true; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagelistoperation.h000066400000000000000000000011631452337521700301550ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" #include "fileinfo.h" namespace Flipper { namespace Zero { class StorageListOperation : public AbstractProtobufOperation { Q_OBJECT public: StorageListOperation(uint32_t id, const QByteArray &path, QObject *parent = nullptr); const QString description() const override; const FileInfoList &files() const; bool hasPath() const; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool processResponse(QObject *response) override; QByteArray m_path; FileInfoList m_result; bool m_hasPath; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagemd5sumoperation.cpp000066400000000000000000000020061452337521700307440ustar00rootroot00000000000000#include "storagemd5sumoperation.h" #include "protobufplugininterface.h" #include "mainresponseinterface.h" #include "storageresponseinterface.h" using namespace Flipper; using namespace Zero; StorageMd5SumOperation::StorageMd5SumOperation(uint32_t id, const QByteArray &path, QObject *parent): AbstractStorageOperation(id, path, parent) {} const QString StorageMd5SumOperation::description() const { return QStringLiteral("Storage Md5Sum @%1").arg(QString(path())); } const QByteArray StorageMd5SumOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->storageMd5Sum(id(), path()); } const QByteArray &StorageMd5SumOperation::md5Sum() const { return m_md5Sum; } bool StorageMd5SumOperation::processResponse(QObject *response) { if(auto *storageMd5SumResponse = qobject_cast(response)) { m_md5Sum = storageMd5SumResponse->md5Sum(); return true; } else { return qobject_cast(response); } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagemd5sumoperation.h000066400000000000000000000010261452337521700304120ustar00rootroot00000000000000#pragma once #include "abstractstorageoperation.h" namespace Flipper { namespace Zero { class StorageMd5SumOperation : public AbstractStorageOperation { Q_OBJECT public: StorageMd5SumOperation(uint32_t id, const QByteArray &path, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; const QByteArray &md5Sum() const; private: bool processResponse(QObject *response) override; QByteArray m_md5Sum; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagemkdiroperation.cpp000066400000000000000000000010401452337521700306350ustar00rootroot00000000000000#include "storagemkdiroperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; StorageMkdirOperation::StorageMkdirOperation(uint32_t id, const QByteArray &path, QObject *parent): AbstractStorageOperation(id, path, parent) {} const QString StorageMkdirOperation::description() const { return QStringLiteral("Storage MkDir @%1").arg(QString(path())); } const QByteArray StorageMkdirOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->storageMkDir(id(), path()); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagemkdiroperation.h000066400000000000000000000006241452337521700303110ustar00rootroot00000000000000#pragma once #include "abstractstorageoperation.h" namespace Flipper { namespace Zero { class StorageMkdirOperation : public AbstractStorageOperation { Q_OBJECT public: StorageMkdirOperation(uint32_t id, const QByteArray &path, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagereadoperation.cpp000066400000000000000000000055601452337521700304550ustar00rootroot00000000000000#include "storagereadoperation.h" #include #include "protobufplugininterface.h" #include "storageresponseinterface.h" #include "mainresponseinterface.h" using namespace Flipper; using namespace Zero; StorageReadOperation::StorageReadOperation(uint32_t id, const QByteArray &path, QIODevice *file, QObject *parent): AbstractProtobufOperation(id, parent), m_path(path), m_file(file), m_subRequest(NoRequest), m_fileSizeTotal(0), m_fileSizeReceived(0) { connect(this, &AbstractOperation::finished, m_file, [=]() { m_file->close(); }); } const QString StorageReadOperation::description() const { return QStringLiteral("Storage Read @%1").arg(QString(m_path)); } bool StorageReadOperation::hasMoreData() const { return m_subRequest != StorageRead; } // Custom feedResponse() implementation to accommodate the stat request void StorageReadOperation::feedResponse(QObject *response) { auto *mainResponse = qobject_cast(response); if(mainResponse->isError()) { finishWithError(BackendError::ProtocolError, QStringLiteral("Device replied with error: %1").arg(mainResponse->errorString())); } else if(!processResponse(response)) { finishWithError(BackendError::ProtocolError, QStringLiteral("Operation finished with error: %1").arg(mainResponse->errorString())); } else if(qobject_cast(response) && !mainResponse->hasNext()) { finish(); } else { startTimeout(); } } const QByteArray StorageReadOperation::encodeRequest(ProtobufPluginInterface *encoder) { if(m_subRequest == NoRequest) { m_subRequest = StorageStat; return encoder->storageStat(id(), m_path); } else if(m_subRequest == StorageStat) { m_subRequest = StorageRead; return encoder->storageRead(id(), m_path); } else { return QByteArray(); } } bool StorageReadOperation::begin() { const auto success = m_file->open(QIODevice::WriteOnly); if(!success) { setError(BackendError::DiskError, QStringLiteral("Failed to open file for writing: %1").arg(m_file->errorString())); } return success; } bool StorageReadOperation::processResponse(QObject *response) { if(auto *storageReadResponse = qobject_cast(response)) { if(storageReadResponse->hasFile()) { const auto &data = storageReadResponse->file().data; m_fileSizeReceived += data.size(); setProgress(m_fileSizeReceived * 100.0 / m_fileSizeTotal); return m_file->write(data) == data.size(); } } else if(auto *storageStatResponse = qobject_cast(response)) { if(storageStatResponse->hasFile()) { m_fileSizeTotal = storageStatResponse->file().size; return true; } } return false; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagereadoperation.h000066400000000000000000000015511452337521700301160ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" #include class QIODevice; namespace Flipper { namespace Zero { class StorageReadOperation : public AbstractProtobufOperation { Q_OBJECT enum RequestType { NoRequest, StorageStat, StorageRead, }; public: StorageReadOperation(uint32_t id, const QByteArray &path, QIODevice *file, QObject *parent = nullptr); const QString description() const override; bool hasMoreData() const override; void feedResponse(QObject *response) override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool begin() override; bool processResponse(QObject *response) override; QByteArray m_path; QIODevice *m_file; RequestType m_subRequest; qint64 m_fileSizeTotal; qint64 m_fileSizeReceived; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storageremoveoperation.cpp000066400000000000000000000011551452337521700310330ustar00rootroot00000000000000#include "storageremoveoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; StorageRemoveOperation::StorageRemoveOperation(uint32_t id, const QByteArray &path, bool recursive, QObject *parent): AbstractProtobufOperation(id, parent), m_path(path), m_recursive(recursive) {} const QString StorageRemoveOperation::description() const { return QStringLiteral("Storage Remove @%1").arg(QString(m_path)); } const QByteArray StorageRemoveOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->storageRemove(id(), m_path, m_recursive); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storageremoveoperation.h000066400000000000000000000007371452337521700305050ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class StorageRemoveOperation : public AbstractProtobufOperation { Q_OBJECT public: StorageRemoveOperation(uint32_t id, const QByteArray &path, bool recursive, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: QByteArray m_path; bool m_recursive; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagerenameoperation.cpp000066400000000000000000000012331452337521700310020ustar00rootroot00000000000000#include "storagerenameoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; StorageRenameOperation::StorageRenameOperation(uint32_t id, const QByteArray &oldPath, const QByteArray &newPath, QObject *parent): AbstractProtobufOperation(id, parent), m_oldPath(oldPath), m_newPath(newPath) {} const QString StorageRenameOperation::description() const { return QStringLiteral("Storage Rename @%1 -> %2").arg(QString(m_oldPath), QString(m_newPath)); } const QByteArray StorageRenameOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->storageRename(id(), m_oldPath, m_newPath); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagerenameoperation.h000066400000000000000000000007651452337521700304600ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class StorageRenameOperation : public AbstractProtobufOperation { Q_OBJECT public: StorageRenameOperation(uint32_t id, const QByteArray &oldPath, const QByteArray &newPath, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: QByteArray m_oldPath; QByteArray m_newPath; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagestatoperation.cpp000066400000000000000000000025741452337521700305170ustar00rootroot00000000000000#include "storagestatoperation.h" #include "mainresponseinterface.h" #include "protobufplugininterface.h" #include "storageresponseinterface.h" using namespace Flipper; using namespace Zero; StorageStatOperation::StorageStatOperation(uint32_t id, const QByteArray &fileName, QObject *parent): AbstractProtobufOperation(id, parent), m_fileName(fileName), m_hasFile(false), m_size(0), m_type(FileType::Invalid) {} const QString StorageStatOperation::description() const { return QStringLiteral("Storage Stat @%1").arg(QString(m_fileName)); } const QByteArray &StorageStatOperation::fileName() const { return m_fileName; } bool StorageStatOperation::hasFile() const { return m_hasFile; } quint64 StorageStatOperation::size() const { return m_size; } StorageStatOperation::FileType StorageStatOperation::type() const { return m_type; } const QByteArray StorageStatOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->storageStat(id(), m_fileName); } bool StorageStatOperation::processResponse(QObject *response) { auto *statResponse = qobject_cast(response); if(statResponse) { m_hasFile = statResponse->hasFile(); if(m_hasFile) { m_size = statResponse->file().size; m_type = (FileType)statResponse->file().type; } } return true; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagestatoperation.h000066400000000000000000000014341452337521700301560ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class StorageStatOperation : public AbstractProtobufOperation { Q_OBJECT public: enum FileType { RegularFile = 0, Directory = 1, Invalid }; Q_ENUM(FileType) StorageStatOperation(uint32_t id, const QByteArray &fileName, QObject *parent = nullptr); const QString description() const override; const QByteArray &fileName() const; bool hasFile() const; quint64 size() const; FileType type() const; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool processResponse(QObject *response) override; QByteArray m_fileName; bool m_hasFile; quint64 m_size; FileType m_type; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagewriteoperation.cpp000066400000000000000000000061541452337521700306740ustar00rootroot00000000000000#include "storagewriteoperation.h" #include #include "protobufplugininterface.h" #include "statusresponseinterface.h" #include "mainresponseinterface.h" static constexpr qint64 CHUNK_SIZE = 1024; static constexpr qint64 CHUNKS_PER_PING_CAP = 1000; using namespace Flipper; using namespace Zero; StorageWriteOperation::StorageWriteOperation(uint32_t id, const QByteArray &path, QIODevice *file, QObject *parent): AbstractStorageOperation(id, path, parent), m_file(file), m_subRequest(StorageWrite), m_chunksPerPing(0), m_chunksWritten(0) { connect(this, &AbstractOperation::finished, m_file, [=]() { m_file->close(); }); } const QString StorageWriteOperation::description() const { return QStringLiteral("Storage Write @%1").arg(QString(path())); } bool StorageWriteOperation::hasMoreData() const { return m_file->bytesAvailable() > 0; } // Custom feedResponse() implementation to accommodate interspersed pings void StorageWriteOperation::feedResponse(QObject *response) { auto *mainResponse = qobject_cast(response); if(mainResponse->isError()) { finishWithError(BackendError::ProtocolError, QStringLiteral("Device replied with error: %1").arg(mainResponse->errorString())); } else if(!processResponse(response)) { finishWithError(BackendError::ProtocolError, QStringLiteral("Operation finished with error: %1").arg(mainResponse->errorString())); } else if(!qobject_cast(response)) { finish(); } else { startTimeout(); } } const QByteArray StorageWriteOperation::encodeRequest(ProtobufPluginInterface *encoder) { if(m_subRequest == StorageWrite) { // Never true for files smaller than 100 chunks // Such small files don't get progress reports at all if(++m_chunksWritten == m_chunksPerPing) { m_chunksWritten = 0; m_subRequest = StatusPing; } const auto buf = m_file->read(CHUNK_SIZE); const auto hasNext = m_file->bytesAvailable() > 0; return encoder->storageWrite(id(), path(), buf, hasNext); } else if(m_subRequest == StatusPing) { m_subRequest = StorageWrite; return encoder->statusPing(id()); } return QByteArray(); } bool StorageWriteOperation::begin() { if(!m_file->open(QIODevice::ReadOnly)) { setError(BackendError::DiskError, QStringLiteral("Failed to open file for reading: %1").arg(m_file->errorString())); return false; } const auto fileSize = m_file->bytesAvailable(); if(fileSize >= CHUNK_SIZE * 100) { // Insert a ping for roughly each 1% of the file size m_chunksPerPing = qMin(fileSize / (CHUNK_SIZE * 100), CHUNKS_PER_PING_CAP); m_percentPerPing = 100.0 * (double)(CHUNK_SIZE * m_chunksPerPing) / fileSize; } return true; } bool StorageWriteOperation::processResponse(QObject *response) { setProgress(m_chunksPerPing ? progress() + m_percentPerPing : 100.0); return qobject_cast(response) || qobject_cast(response); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/storagewriteoperation.h000066400000000000000000000015271452337521700303400ustar00rootroot00000000000000#pragma once #include "abstractstorageoperation.h" #include class QIODevice; namespace Flipper { namespace Zero { class StorageWriteOperation : public AbstractStorageOperation { Q_OBJECT enum RequestType { StorageWrite, StatusPing }; public: StorageWriteOperation(uint32_t id, const QByteArray &path, QIODevice *file, QObject *parent = nullptr); const QString description() const override; bool hasMoreData() const override; void feedResponse(QObject *response) override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool begin() override; bool processResponse(QObject *response) override; QIODevice *m_file; RequestType m_subRequest; qint64 m_chunksPerPing; qint64 m_chunksWritten; double m_percentPerPing; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemdeviceinfooperation.cpp000066400000000000000000000016251452337521700315330ustar00rootroot00000000000000#include "systemdeviceinfooperation.h" #include "protobufplugininterface.h" #include "systemresponseinterface.h" using namespace Flipper; using namespace Zero; SystemDeviceInfoOperation::SystemDeviceInfoOperation(uint32_t id, QObject *parent): AbstractProtobufOperation(id, parent) {} const QString SystemDeviceInfoOperation::description() const { return QStringLiteral("System Device Info"); } const QByteArray SystemDeviceInfoOperation::value(const QByteArray &key) const { return m_data.value(key); } const QByteArray SystemDeviceInfoOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->systemDeviceInfo(id()); } bool SystemDeviceInfoOperation::processResponse(QObject *response) { auto *msg = qobject_cast(response); if(!msg) { return false; } m_data.insert(msg->key(), msg->value()); return true; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemdeviceinfooperation.h000066400000000000000000000011221452337521700311700ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" #include #include namespace Flipper { namespace Zero { class SystemDeviceInfoOperation : public AbstractProtobufOperation { Q_OBJECT public: SystemDeviceInfoOperation(uint32_t id, QObject *parent = nullptr); const QString description() const override; const QByteArray value(const QByteArray &key) const; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool processResponse(QObject *response) override; QHash m_data; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemfactoryresetoperation.cpp000066400000000000000000000010301452337521700321200ustar00rootroot00000000000000#include "systemfactoryresetoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; SystemFactoryResetOperation::SystemFactoryResetOperation(uint32_t id, QObject *parent): AbstractProtobufOperation(id, parent) {} const QString SystemFactoryResetOperation::description() const { return QStringLiteral("Factory Reset"); } const QByteArray SystemFactoryResetOperation::encodeRequest(ProtobufPluginInterface *encoder) { finishLater(); return encoder->systemFactoryReset(id()); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemfactoryresetoperation.h000066400000000000000000000006121452337521700315720ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class SystemFactoryResetOperation : public AbstractProtobufOperation { Q_OBJECT public: SystemFactoryResetOperation(uint32_t id, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemgetdatetimeoperation.cpp000066400000000000000000000017161452337521700317150ustar00rootroot00000000000000#include "systemgetdatetimeoperation.h" #include "mainresponseinterface.h" #include "systemresponseinterface.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; SystemGetDateTimeOperation::SystemGetDateTimeOperation(uint32_t id, QObject *parent): AbstractProtobufOperation(id, parent) {} const QString SystemGetDateTimeOperation::description() const { return QStringLiteral("System Get DateTime"); } const QDateTime &SystemGetDateTimeOperation::dateTime() const { return m_dateTime; } const QByteArray SystemGetDateTimeOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->systemGetDateTime(id()); } bool SystemGetDateTimeOperation::processResponse(QObject *response) { auto *getDateTimeResponse = qobject_cast(response); if(!getDateTimeResponse) { return false; } m_dateTime = getDateTimeResponse->dateTime(); return true; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemgetdatetimeoperation.h000066400000000000000000000010411452337521700313510ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" #include namespace Flipper { namespace Zero { class SystemGetDateTimeOperation : public AbstractProtobufOperation { Q_OBJECT public: SystemGetDateTimeOperation(uint32_t id, QObject *parent = nullptr); const QString description() const override; const QDateTime &dateTime() const; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool processResponse(QObject *response) override; QDateTime m_dateTime; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemprotobufversionoperation.cpp000066400000000000000000000021211452337521700326560ustar00rootroot00000000000000#include "systemprotobufversionoperation.h" #include "protobufplugininterface.h" #include "systemresponseinterface.h" using namespace Flipper; using namespace Zero; SystemProtobufVersionOperation::SystemProtobufVersionOperation(uint32_t id, QObject *parent): AbstractProtobufOperation(id, parent), m_versionMajor(0), m_versionMinor(0) {} const QString SystemProtobufVersionOperation::description() const { return QStringLiteral("System Protobuf Version"); } uint32_t SystemProtobufVersionOperation::versionMajor() const { return m_versionMajor; } uint32_t SystemProtobufVersionOperation::versionMinor() const { return m_versionMinor; } const QByteArray SystemProtobufVersionOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->systemProtobufVersion(id()); } bool SystemProtobufVersionOperation::processResponse(QObject *response) { auto *msg = qobject_cast(response); if(msg) { m_versionMajor = msg->versionMajor(); m_versionMinor = msg->versionMinor(); } return msg; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemprotobufversionoperation.h000066400000000000000000000011521452337521700323260ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" #include namespace Flipper { namespace Zero { class SystemProtobufVersionOperation : public AbstractProtobufOperation { Q_OBJECT public: SystemProtobufVersionOperation(uint32_t id, QObject *parent = nullptr); const QString description() const override; uint32_t versionMajor() const; uint32_t versionMinor() const; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool processResponse(QObject *response) override; uint32_t m_versionMajor; uint32_t m_versionMinor; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemrebootoperation.cpp000066400000000000000000000011341452337521700307050ustar00rootroot00000000000000#include "systemrebootoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; SystemRebootOperation::SystemRebootOperation(uint32_t id, RebootMode rebootType, QObject *parent): AbstractProtobufOperation(id, parent), m_rebootMode(rebootType) {} const QString SystemRebootOperation::description() const { return QStringLiteral("System Reboot"); } const QByteArray SystemRebootOperation::encodeRequest(ProtobufPluginInterface *encoder) { finishLater(); return encoder->systemReboot(id(), (ProtobufPluginInterface::RebootMode)m_rebootMode); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemrebootoperation.h000066400000000000000000000010621452337521700303520ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class SystemRebootOperation : public AbstractProtobufOperation { Q_OBJECT public: enum RebootMode { RebootModeOS = 0, RebootModeRecovery = 1, RebootModeUpdate = 2, }; SystemRebootOperation(uint32_t id, RebootMode rebootType, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: RebootMode m_rebootMode; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemsetdatetimeoperation.cpp000066400000000000000000000011071452337521700317230ustar00rootroot00000000000000#include "systemsetdatetimeoperation.h" #include "protobufplugininterface.h" using namespace Flipper; using namespace Zero; SystemSetDateTimeOperation::SystemSetDateTimeOperation(uint32_t id, const QDateTime &dateTime, QObject *parent): AbstractProtobufOperation(id, parent), m_dateTime(dateTime) {} const QString SystemSetDateTimeOperation::description() const { return QStringLiteral("System Set DateTime"); } const QByteArray SystemSetDateTimeOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->systemSetDateTime(id(), m_dateTime); } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemsetdatetimeoperation.h000066400000000000000000000007361452337521700313770ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" #include namespace Flipper { namespace Zero { class SystemSetDateTimeOperation : public AbstractProtobufOperation { Q_OBJECT public: SystemSetDateTimeOperation(uint32_t id, const QDateTime &dateTime, QObject *parent = nullptr); const QString description() const override; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: QDateTime m_dateTime; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemupdateoperation.cpp000066400000000000000000000022341452337521700306770ustar00rootroot00000000000000#include "systemupdateoperation.h" #include "protobufplugininterface.h" #include "systemresponseinterface.h" #include "mainresponseinterface.h" using namespace Flipper; using namespace Zero; SystemUpdateOperation::SystemUpdateOperation(uint32_t id, const QByteArray &manifestPath, QObject *parent): AbstractProtobufOperation(id, parent), m_manifestPath(manifestPath), m_isResultOk(false) {} const QString SystemUpdateOperation::description() const { return QStringLiteral("System Update @%1").arg(QString(m_manifestPath)); } const QString &SystemUpdateOperation::resultString() const { return m_resultString; } bool SystemUpdateOperation::isResultOk() const { return m_isResultOk; } const QByteArray SystemUpdateOperation::encodeRequest(ProtobufPluginInterface *encoder) { return encoder->systemUpdateRequest(id(), m_manifestPath); } bool SystemUpdateOperation::processResponse(QObject *response) { auto *updateResponse = qobject_cast(response); if(updateResponse) { m_isResultOk = updateResponse->isResultOk(); m_resultString = updateResponse->resultString(); } return true; } flipperdevices-qFlipper-bfce851/backend/flipperzero/rpc/systemupdateoperation.h000066400000000000000000000011701452337521700303420ustar00rootroot00000000000000#pragma once #include "abstractprotobufoperation.h" namespace Flipper { namespace Zero { class SystemUpdateOperation : public AbstractProtobufOperation { Q_OBJECT public: SystemUpdateOperation(uint32_t id, const QByteArray &manifestPath, QObject *parent = nullptr); const QString description() const override; const QString &resultString() const; bool isResultOk() const; const QByteArray encodeRequest(ProtobufPluginInterface *encoder) override; private: bool processResponse(QObject *response) override; QByteArray m_manifestPath; QString m_resultString; bool m_isResultOk; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/screenstreamer.cpp000066400000000000000000000116261452337521700264720ustar00rootroot00000000000000#include "screenstreamer.h" #include #include #include "flipperzero.h" #include "protobufsession.h" #include "guiresponseinterface.h" #include "rpc/guistartscreenstreamoperation.h" #include "rpc/guistopscreenstreamoperation.h" #include "rpc/guisendinputoperation.h" #include "pixmaps/default.h" Q_LOGGING_CATEGORY(CATEGORY_SCREEN, "SCR") using namespace Flipper; using namespace Zero; static constexpr int SCREEN_FRAME_WIDTH = 128; static constexpr int SCREEN_FRAME_HEIGHT = 64; // ScreenStream and VirtualDisplay formats differ static QByteArray transposeImage(const QByteArray &in, int width, int height) { QByteArray out((width * height) / 8, 0x0); for(auto y = 0; y < height; ++y) { for(auto x = 0; x < width; ++x) { const auto ii = (y * width + x) / 8; const auto oi = y / 8 * width + x; const auto iz = x % 8; const auto oz = y % 8; if(in[ii] & (1 << iz)) { out[oi] = out[oi] | (1 << oz); } } } return out; } ScreenStreamer::ScreenStreamer(QObject *parent): QObject(parent), m_streamState(StreamState::Stopped), m_device(nullptr) {} void ScreenStreamer::setDevice(FlipperZero *device) { if(device == m_device) { return; } setStreamState(StreamState::Stopped); m_device = device; setScreenFrame({ transposeImage(QByteArray((char*)default_bits, sizeof(default_bits)), default_width, default_height), QSize(SCREEN_FRAME_WIDTH, SCREEN_FRAME_HEIGHT), Qt::LandscapeOrientation, }); if(device) { auto *rpc = device->rpc(); connect(rpc, &ProtobufSession::broadcastResponseReceived, this, &ScreenStreamer::onBroadcastResponseReceived); connect(rpc, &ProtobufSession::sessionStateChanged, this, &ScreenStreamer::onProtobufSessionStateChanged); } } void ScreenStreamer::sendInputEvent(InputEvent::Key key, InputEvent::Type type) { auto *operation = m_device->rpc()->guiSendInput(key, type); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { setStreamState(Stopped); qCDebug(CATEGORY_SCREEN).noquote() << "Failed to send input event: " << operation->errorString(); } }); } bool ScreenStreamer::isEnabled() const { return m_streamState == Running || m_streamState == Paused; } void ScreenStreamer::setEnabled(bool set) { if(set) { start(); } else { stop(); } } bool ScreenStreamer::isPaused() const { return m_streamState == Paused; } void ScreenStreamer::setPaused(bool set) { if(set && m_streamState == Running) { setStreamState(Paused); } else if(!set && m_streamState == Paused) { setStreamState(Running); } } const ScreenFrame &ScreenStreamer::screenFrame() const { return m_screenData; } void ScreenStreamer::start() { if(!m_device) { return; } else if(m_streamState != StreamState::Stopped) { qCDebug(CATEGORY_SCREEN) << "Screen streaming is already running"; return; } setStreamState(StreamState::Starting); auto *operation = m_device->rpc()->guiStartScreenStream(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { setStreamState(Stopped); qCDebug(CATEGORY_SCREEN).noquote() << "Failed to initiate screen streaming: " << operation->errorString(); } else { setStreamState(Running); } }); } void ScreenStreamer::stop() { if(!isEnabled()) { qCDebug(CATEGORY_SCREEN) << "Screen streaming is already stopped"; return; } setStreamState(StreamState::Stopping); auto *operation = m_device->rpc()->guiStopScreenStream(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { qCDebug(CATEGORY_SCREEN).noquote() << "Failed to stop screen streaming: " << operation->errorString(); } setStreamState(Stopped); }); } void ScreenStreamer::onProtobufSessionStateChanged() { if(!m_device->rpc()->isSessionUp()) { setStreamState(Stopped); } } void ScreenStreamer::onBroadcastResponseReceived(QObject *response) { if(m_streamState != Running) { return; } auto *screenFrameResponse = qobject_cast(response); if(screenFrameResponse) { setScreenFrame({ screenFrameResponse->screenFrame(), QSize(SCREEN_FRAME_WIDTH, SCREEN_FRAME_HEIGHT), screenFrameResponse->screenOrientation(), }); } } void ScreenStreamer::setStreamState(StreamState newState) { if(newState == m_streamState) { return; } m_streamState = newState; emit streamStateChanged(); } void ScreenStreamer::setScreenFrame(const ScreenFrame &frame) { m_screenData = frame; emit screenFrameChanged(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/screenstreamer.h000066400000000000000000000026601452337521700261350ustar00rootroot00000000000000#pragma once #include #include #include #include "inputevent.h" #include "screenframe.h" namespace Flipper { class FlipperZero; namespace Zero { class ScreenStreamer : public QObject { Q_OBJECT Q_PROPERTY(ScreenFrame screenFrame READ screenFrame NOTIFY screenFrameChanged) Q_PROPERTY(bool isEnabled READ isEnabled WRITE setEnabled NOTIFY streamStateChanged) Q_PROPERTY(bool isPaused READ isPaused WRITE setPaused NOTIFY streamStateChanged) public: enum StreamState { Starting, Running, Stopping, Stopped, Paused }; Q_ENUM(StreamState) ScreenStreamer(QObject *parent = nullptr); void setDevice(FlipperZero *device); Q_INVOKABLE void sendInputEvent(InputEvent::Key key, InputEvent::Type type); bool isEnabled() const; void setEnabled(bool set); bool isPaused() const; void setPaused(bool set); StreamState streamState() const; const ScreenFrame &screenFrame() const; signals: void streamStateChanged(); void screenFrameChanged(); public slots: void start(); void stop(); private slots: void onProtobufSessionStateChanged(); void onBroadcastResponseReceived(QObject *response); private: void setStreamState(StreamState newState); void setScreenFrame(const ScreenFrame &frame); StreamState m_streamState; ScreenFrame m_screenData; FlipperZero *m_device; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/000077500000000000000000000000001452337521700245705ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/abstracttopleveloperation.cpp000066400000000000000000000031541452337521700325760ustar00rootroot00000000000000#include "abstracttopleveloperation.h" #include #include "flipperzero/devicestate.h" using namespace Flipper; using namespace Zero; AbstractTopLevelOperation::AbstractTopLevelOperation(DeviceState *deviceState, QObject *parent): AbstractOperation(parent), m_deviceState(deviceState) { m_deviceState->clearError(); m_deviceState->setProgress(-1); m_deviceState->setPersistent(true); } AbstractTopLevelOperation::~AbstractTopLevelOperation() { m_deviceState->setPersistent(false); } DeviceState *AbstractTopLevelOperation::deviceState() const { return m_deviceState; } void AbstractTopLevelOperation::start() { if(operationState() != AbstractOperation::Ready) { finishWithError(BackendError::UnknownError, QStringLiteral("Trying to start an operation that is either already running or has finished.")); } else { advanceOperationState(); } } void AbstractTopLevelOperation::advanceOperationState() { QTimer::singleShot(0, this, &AbstractTopLevelOperation::nextStateLogic); } void AbstractTopLevelOperation::registerSubOperation(AbstractOperation *operation) { connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { onSubOperationError(operation); } else { advanceOperationState(); } }); } void AbstractTopLevelOperation::onSubOperationError(AbstractOperation *operation) { // Default implementation. Ignoring the operation error here, as we need to provide a respective top-level error instead finishWithError(BackendError::OperationError, operation->errorString()); } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/abstracttopleveloperation.h000066400000000000000000000012251452337521700322400ustar00rootroot00000000000000#pragma once #include "abstractoperation.h" namespace Flipper { namespace Zero { class DeviceState; class AbstractTopLevelOperation : public AbstractOperation { Q_OBJECT public: AbstractTopLevelOperation(DeviceState *deviceState, QObject *parent = nullptr); virtual ~AbstractTopLevelOperation(); DeviceState *deviceState() const; void start() override; protected: void advanceOperationState(); void registerSubOperation(AbstractOperation *operation); virtual void onSubOperationError(AbstractOperation *operation); private slots: virtual void nextStateLogic() = 0; private: DeviceState *m_deviceState; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/factoryresetoperation.cpp000066400000000000000000000026001452337521700317250ustar00rootroot00000000000000#include "factoryresetoperation.h" #include #include "flipperzero/devicestate.h" #include "flipperzero/utilityinterface.h" #include "flipperzero/utility/factoryresetutiloperation.h" static constexpr qint64 MINIMUM_OPERATION_TIME_MS = 2000; using namespace Flipper; using namespace Zero; FactoryResetOperation::FactoryResetOperation(UtilityInterface *utility, DeviceState *state, QObject *parent): AbstractTopLevelOperation(state, parent), m_utility(utility) {} const QString FactoryResetOperation::description() const { return QStringLiteral("Factory reset (Toplevel) @%1").arg(deviceState()->name()); } void FactoryResetOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(FactoryResetOperation::ResettingDevice); resetDevice(); } else if(operationState() == FactoryResetOperation::ResettingDevice) { setOperationState(FactoryResetOperation::Waiting); wait(); } else if(operationState() == FactoryResetOperation::Waiting) { finish(); } } void FactoryResetOperation::resetDevice() { m_elapsed.start(); registerSubOperation(m_utility->factoryReset()); } void FactoryResetOperation::wait() { const auto delay = qMax(MINIMUM_OPERATION_TIME_MS - m_elapsed.elapsed(), 0); QTimer::singleShot(delay, this, &FactoryResetOperation::advanceOperationState); } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/factoryresetoperation.h000066400000000000000000000012121452337521700313700ustar00rootroot00000000000000#pragma once #include #include "abstracttopleveloperation.h" namespace Flipper { namespace Zero { class UtilityInterface; class FactoryResetOperation : public AbstractTopLevelOperation { Q_OBJECT enum OperationState { ResettingDevice = AbstractOperation::User, Waiting }; public: FactoryResetOperation(UtilityInterface *utility, DeviceState *state, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void resetDevice(); void wait(); UtilityInterface *m_utility; QElapsedTimer m_elapsed; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/firmwareinstalloperation.cpp000066400000000000000000000072161452337521700324260ustar00rootroot00000000000000#include "firmwareinstalloperation.h" #include #include "flipperzero/devicestate.h" #include "flipperzero/utilityinterface.h" #include "flipperzero/utility/restartoperation.h" #include "flipperzero/utility/userbackupoperation.h" #include "flipperzero/utility/userrestoreoperation.h" #include "flipperzero/utility/startrecoveryoperation.h" #include "flipperzero/recoveryinterface.h" #include "flipperzero/recovery/exitrecoveryoperation.h" #include "flipperzero/recovery/firmwaredownloadoperation.h" #include "tempdirectories.h" using namespace Flipper; using namespace Zero; FirmwareInstallOperation::FirmwareInstallOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const QString &filePath, QObject *parent): AbstractTopLevelOperation(state, parent), m_recovery(recovery), m_utility(utility), m_file(new QFile(filePath, this)), m_skipBackup(deviceState()->isRecoveryMode()), m_backupUrl(globalTempDirs->fileUrl(QStringLiteral("%1-%2.tgz").arg(state->deviceInfo().name, QDateTime::currentDateTime().toString("yyyyMMdd-hhmmss")))) {} const QString FirmwareInstallOperation::description() const { return QStringLiteral("Firmware install from file @%1").arg(deviceState()->name()); } void FirmwareInstallOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(FirmwareInstallOperation::SavingBackup); saveBackup(); } else if(operationState() == FirmwareInstallOperation::SavingBackup) { setOperationState(FirmwareInstallOperation::StartingRecovery); startRecovery(); } else if(operationState() == FirmwareInstallOperation::StartingRecovery) { setOperationState(FirmwareInstallOperation::InstallingFirmware); installFirmware(); } else if(operationState() == FirmwareInstallOperation::InstallingFirmware) { setOperationState(FirmwareInstallOperation::ExitingRecovery); exitRecovery(); } else if(operationState() == FirmwareInstallOperation::ExitingRecovery) { setOperationState(FirmwareInstallOperation::RestoringBackup); restoreBackup(); } else if(operationState() == FirmwareInstallOperation::RestoringBackup) { setOperationState(FirmwareInstallOperation::RestartingDevice); restartDevice(); } else if(operationState() == FirmwareInstallOperation::RestartingDevice) { finish(); } } void FirmwareInstallOperation::saveBackup() { if(m_skipBackup) { setOperationState(FirmwareInstallOperation::StartingRecovery); advanceOperationState(); } else { registerSubOperation(m_utility->backupInternalStorage(m_backupUrl)); } } void FirmwareInstallOperation::startRecovery() { registerSubOperation(m_utility->startRecoveryMode()); } void FirmwareInstallOperation::installFirmware() { registerSubOperation(m_recovery->downloadFirmware(m_file)); } void FirmwareInstallOperation::exitRecovery() { registerSubOperation(m_recovery->exitRecoveryMode()); } void FirmwareInstallOperation::restoreBackup() { if(m_skipBackup) { finish(); } else { registerSubOperation(m_utility->restoreInternalStorage(m_backupUrl)); } } void FirmwareInstallOperation::restartDevice() { registerSubOperation(m_utility->restartDevice()); } void FirmwareInstallOperation::onSubOperationError(AbstractOperation *operation) { const auto keepError = operationState() == FirmwareInstallOperation::SavingBackup || operationState() == FirmwareInstallOperation::StartingRecovery; finishWithError(keepError ? operation->error() : BackendError::OperationError, operation->errorString()); } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/firmwareinstalloperation.h000066400000000000000000000021241452337521700320640ustar00rootroot00000000000000#pragma once #include "abstracttopleveloperation.h" #include class QFile; namespace Flipper { namespace Zero { class UtilityInterface; class RecoveryInterface; class FirmwareInstallOperation : public AbstractTopLevelOperation { Q_OBJECT enum OperationState { SavingBackup = AbstractOperation::User, StartingRecovery, InstallingFirmware, ExitingRecovery, RestoringBackup, RestartingDevice }; public: FirmwareInstallOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const QString &filePath, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void saveBackup(); void startRecovery(); void installFirmware(); void exitRecovery(); void restoreBackup(); void restartDevice(); void onSubOperationError(AbstractOperation *operation) override; RecoveryInterface *m_recovery; UtilityInterface *m_utility; QFile *m_file; bool m_skipBackup; QUrl m_backupUrl; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/fullrepairoperation.cpp000066400000000000000000000111741452337521700313660ustar00rootroot00000000000000#include "fullrepairoperation.h" #include #include #include #include "flipperzero/devicestate.h" #include "flipperzero/recoveryinterface.h" #include "flipperzero/recovery/setbootmodeoperation.h" #include "flipperzero/recovery/firmwaredownloadoperation.h" #include "flipperzero/recovery/correctoptionbytesoperation.h" #include "flipperzero/recovery/wirelessstackdownloadoperation.h" #include "flipperzero/utilityinterface.h" #include "flipperzero/utility/restartoperation.h" #include "flipperzero/utility/assetsdownloadoperation.h" #include "flipperzero/utility/regionprovisioningoperation.h" #include "flipperzero/helper/firmwarehelper.h" Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEFAULT) using namespace Flipper; using namespace Zero; FullRepairOperation::FullRepairOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const Updates::VersionInfo &versionInfo, QObject *parent): AbstractTopLevelOperation(state, parent), m_recovery(recovery), m_utility(utility), m_versionInfo(versionInfo) {} const QString FullRepairOperation::description() const { return QStringLiteral("Full Repair @%1").arg(deviceState()->name()); } void FullRepairOperation::nextStateLogic() { if(operationState() == FullRepairOperation::Ready) { setOperationState(FullRepairOperation::FetchingFirmware); fetchFirmware(); } else if(operationState() == FullRepairOperation::FetchingFirmware) { setOperationState(FullRepairOperation::SettingBootMode); setBootMode(); } else if(operationState() == FullRepairOperation::SettingBootMode) { setOperationState(FullRepairOperation::DownloadingRadioFirmware); downloadRadioFirmware(); } else if(operationState() == FullRepairOperation::DownloadingRadioFirmware) { setOperationState(FullRepairOperation::DownloadingFirmware); downloadFirmware(); } else if(operationState() == FullRepairOperation::DownloadingFirmware) { setOperationState(FullRepairOperation::CorrectingOptionBytes); correctOptionBytes(); } else if(operationState() == FullRepairOperation::CorrectingOptionBytes) { setOperationState(FullRepairOperation::DownloadingAssets); downloadAssets(); } else if(operationState() == FullRepairOperation::DownloadingAssets) { setOperationState(FullRepairOperation::ProvisioningRegion); provisionRegion(); } else if(operationState() == FullRepairOperation::ProvisioningRegion) { setOperationState(FullRepairOperation::RestartingDevice); restartDevice(); } else if(operationState() == FullRepairOperation::RestartingDevice) { finish(); } } void FullRepairOperation::fetchFirmware() { m_helper = new FirmwareHelper(deviceState(), m_versionInfo, this); connect(m_helper, &AbstractOperationHelper::finished, this, [=]() { if(m_helper->isError()) { finishWithError(m_helper->error(), QStringLiteral("Failed to fetch the files: %1").arg(m_helper->errorString())); } else { advanceOperationState(); } }); } void FullRepairOperation::setBootMode() { registerSubOperation(m_recovery->setRecoveryBootMode()); } void FullRepairOperation::downloadRadioFirmware() { auto *file = m_helper->file(FirmwareHelper::FileIndex::RadioFirmware); registerSubOperation(m_recovery->downloadWirelessStack(file)); } void FullRepairOperation::downloadFirmware() { auto *file = m_helper->file(FirmwareHelper::FileIndex::Firmware); registerSubOperation(m_recovery->downloadFirmware(file)); } void FullRepairOperation::correctOptionBytes() { auto *file = m_helper->file(FirmwareHelper::FileIndex::OptionBytes); registerSubOperation(m_recovery->fixOptionBytes(file)); } void FullRepairOperation::downloadAssets() { if(deviceState()->isRecoveryMode()) { advanceOperationState(); return; } auto *file = m_helper->file(FirmwareHelper::FileIndex::AssetsTgz); registerSubOperation(m_utility->downloadAssets(file)); } void FullRepairOperation::provisionRegion() { registerSubOperation(m_utility->provisionRegionData()); } void FullRepairOperation::restartDevice() { registerSubOperation(m_utility->restartDevice()); } void FullRepairOperation::onSubOperationError(AbstractOperation *operation) { if(operationState() == DownloadingRadioFirmware) { qCInfo(CATEGORY_DEFAULT) << operation->description() << "failed with reason:" << operation->errorString() << "Attempting to install the firmware anyway..."; advanceOperationState(); } else { AbstractTopLevelOperation::onSubOperationError(operation); } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/fullrepairoperation.h000066400000000000000000000024051452337521700310300ustar00rootroot00000000000000#pragma once #include "abstracttopleveloperation.h" #include "flipperupdates.h" namespace Flipper { namespace Zero { class FirmwareHelper; class UtilityInterface; class RecoveryInterface; class FullRepairOperation : public AbstractTopLevelOperation { Q_OBJECT enum OperationState { FetchingFirmware = AbstractOperation::User, SettingBootMode, DownloadingRadioFirmware, DownloadingFirmware, CorrectingOptionBytes, DownloadingAssets, ProvisioningRegion, RestartingDevice }; public: FullRepairOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const Updates::VersionInfo &versionInfo, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void fetchFirmware(); void setBootMode(); void downloadRadioFirmware(); void downloadFirmware(); void correctOptionBytes(); void downloadAssets(); void provisionRegion(); void restartDevice(); void onSubOperationError(AbstractOperation *operation) override; RecoveryInterface *m_recovery; UtilityInterface *m_utility; FirmwareHelper *m_helper; Updates::VersionInfo m_versionInfo; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/fullupdateoperation.cpp000066400000000000000000000235531452337521700313720ustar00rootroot00000000000000#include "fullupdateoperation.h" #include #include #include #include "flipperzero/devicestate.h" #include "flipperzero/utilityinterface.h" #include "flipperzero/utility/checksumverifyoperation.h" #include "flipperzero/utility/filesuploadoperation.h" #include "flipperzero/utility/pathcreateoperation.h" #include "flipperzero/utility/startupdateroperation.h" #include "flipperzero/utility/storageinforefreshoperation.h" #include "flipperzero/utility/regionprovisioningoperation.h" #include "tarzipuncompressor.h" #include "tempdirectories.h" #include "remotefilefetcher.h" #define REMOTE_DIR "/ext/update" Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEBUG) static inline const QString getBaseName(const QString &url) { const auto start = url.lastIndexOf('/') + 1; const auto end = url.lastIndexOf('.'); return url.mid(start, end - start); } using namespace Flipper; using namespace Zero; FullUpdateOperation::FullUpdateOperation(UtilityInterface *utility, DeviceState *state, const Updates::VersionInfo &versionInfo, QObject *parent): AbstractTopLevelOperation(state, parent), m_updateFile(nullptr), m_utility(utility), m_versionInfo(versionInfo) {} FullUpdateOperation::FullUpdateOperation(UtilityInterface *utility, DeviceState *deviceState, const QUrl &bundleUrl, QObject *parent): AbstractTopLevelOperation(deviceState, parent), m_updateFile(new QFile(bundleUrl.toLocalFile(), this)), m_utility(utility) {} FullUpdateOperation::~FullUpdateOperation() { deviceState()->setAllowVirtualDisplay(true); } const QString FullUpdateOperation::description() const { return QStringLiteral("Full Update @%1").arg(deviceState()->name()); } void FullUpdateOperation::nextStateLogic() { if(operationState() == Ready) { setOperationState(ProvisioninigRegion); provisionRegionData(); } else if(operationState() == ProvisioninigRegion) { setOperationState(CheckingStorage); checkStorage(); } else if(operationState() == CheckingStorage) { if(!m_updateFile) { setOperationState(FetchingUpdate); fetchUpdateFile(); } else { setOperationState(PreparingLocalUpdate); prepareLocalUpdate(); } } else if(operationState() == FetchingUpdate || operationState() == PreparingLocalUpdate) { setOperationState(ExtractingUpdate); extractUpdate(); } else if(operationState() == ExtractingUpdate) { setOperationState(ReadingUpdateFiles); readUpdateFiles(); } else if(operationState() == ReadingUpdateFiles) { setOperationState(PreparingRemoteUpdate); createUpdatePath(); } else if(operationState() == PreparingRemoteUpdate) { setOperationState(VerifyingExistingFiles); verifyExistingFiles(); } else if(operationState() == VerifyingExistingFiles) { setOperationState(UploadingUpdateFiles); uploadUpdateFiles(); } else if(operationState() == UploadingUpdateFiles) { setOperationState(WaitingForUpdate); startUpdate(); } else if(operationState() == WaitingForUpdate) { finish(); } } void FullUpdateOperation::provisionRegionData() { auto *operation = m_utility->provisionRegionData(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { qCInfo(CATEGORY_DEBUG) << "Warning: failed to perform region data provisioning:" << operation->errorString(); } advanceOperationState(); }); } void FullUpdateOperation::checkStorage() { deviceState()->setStatusString(QStringLiteral("Checking storage...")); auto *operation = m_utility->refreshStorageInfo(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::OperationError, QStringLiteral("Failed to check device storage")); } else if(!deviceState()->deviceInfo().storage.isExternalPresent) { finishWithError(BackendError::UnknownError, "SD Card is not installed or malfunctioning"); } else { advanceOperationState(); } }); } void FullUpdateOperation::fetchUpdateFile() { deviceState()->setStatusString(QStringLiteral("Fetching firmware update...")); const auto target = deviceState()->deviceInfo().hardware.target; const auto fileInfo = m_versionInfo.fileInfo(QStringLiteral("update_tgz"), target); if(fileInfo.target() != target) { finishWithError(BackendError::DataError, QStringLiteral("Required file type or target not found")); return; } m_updateFile = globalTempDirs->createTempFile(this); m_updateDirectory = globalTempDirs->subdir(getBaseName(fileInfo.url())); auto *fetcher = new RemoteFileFetcher(this); if(!fetcher->fetch(fileInfo, m_updateFile)) { finishWithError(fetcher->error(), fetcher->errorString()); return; } connect(fetcher, &RemoteFileFetcher::progressChanged, this, [=](double progress) { deviceState()->setProgress(progress); }); connect(fetcher, &RemoteFileFetcher::finished, this, [=]() { if(fetcher->isError()) { finishWithError(fetcher->error(), fetcher->errorString()); } else { advanceOperationState(); } fetcher->deleteLater(); }); } void FullUpdateOperation::prepareLocalUpdate() { deviceState()->setStatusString(QStringLiteral("Preparing local firmware update...")); m_updateDirectory = globalTempDirs->subdir(getBaseName(m_updateFile->fileName())); advanceOperationState(); } void FullUpdateOperation::extractUpdate() { deviceState()->setStatusString(QStringLiteral("Extracting firmware update ...")); deviceState()->setProgress(-1.0); auto *uncompressor = new TarZipUncompressor(m_updateFile, m_updateDirectory, this); connect(uncompressor, &TarZipUncompressor::finished, this, [=]() { if(uncompressor->isError()) { finishWithError(uncompressor->error(), uncompressor->errorString()); } else { advanceOperationState(); } uncompressor->deleteLater(); }); } void FullUpdateOperation::readUpdateFiles() { deviceState()->setStatusString(QStringLiteral("Reading firmware update ...")); deviceState()->setProgress(-1.0); const auto subdirNames = m_updateDirectory.entryList(QDir::Dirs | QDir::NoDotAndDotDot); if(subdirNames.isEmpty()) { finishWithError(BackendError::DataError, QStringLiteral("Cannot find update directory")); return; } else if(!m_updateDirectory.cd(subdirNames.first())) { finishWithError(BackendError::DataError, QStringLiteral("Cannot enter update directory")); return; } const auto fileNames = m_updateDirectory.entryList(QDir::Files); for(const auto &fileName : fileNames) { m_fileUrls.append(QUrl::fromLocalFile(m_updateDirectory.absoluteFilePath(fileName))); } advanceOperationState(); } void FullUpdateOperation::createUpdatePath() { deviceState()->setStatusString(QStringLiteral("Creating update path ...")); deviceState()->setProgress(-1.0); const auto remotePath = QStringLiteral("%1/%2").arg(REMOTE_DIR, m_updateDirectory.dirName()).toLocal8Bit(); auto *operation = m_utility->createPath(remotePath); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); return; } else if(!operation->pathExists()) { setOperationState(VerifyingExistingFiles); } advanceOperationState(); }); } void FullUpdateOperation::verifyExistingFiles() { deviceState()->setStatusString(QStringLiteral("Verifying existing files ...")); deviceState()->setProgress(-1.0); const auto remotePath = QStringLiteral("%1/%2").arg(REMOTE_DIR, m_updateDirectory.dirName()).toLocal8Bit(); auto *operation = m_utility->verifyChecksum(m_fileUrls, remotePath); connect(operation, &AbstractOperation::progressChanged, this, [=]() { deviceState()->setProgress(operation->progress()); }); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); return; } m_fileUrls = operation->changedUrls(); if(m_fileUrls.isEmpty()) { qCDebug(CATEGORY_DEBUG) << "Update package has been already uploaded, skipping to update..."; setOperationState(FullUpdateOperation::UploadingUpdateFiles); } advanceOperationState(); }); } void FullUpdateOperation::uploadUpdateFiles() { deviceState()->setStatusString(QStringLiteral("Uploading firmware update ...")); const auto remotePath = QStringLiteral("%1/%2").arg(QStringLiteral(REMOTE_DIR), m_updateDirectory.dirName()).toLocal8Bit(); auto *operation = m_utility->uploadFiles(m_fileUrls, remotePath); connect(operation, &AbstractOperation::progressChanged, this, [=]() { deviceState()->setProgress(operation->progress()); }); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else { advanceOperationState(); } }); } void FullUpdateOperation::startUpdate() { deviceState()->setAllowVirtualDisplay(false); const auto manifestPath = QStringLiteral("%1/%2/update.fuf").arg(QStringLiteral(REMOTE_DIR), m_updateDirectory.dirName()); auto *operation = m_utility->startUpdater(manifestPath.toLocal8Bit()); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else { advanceOperationState(); } }); } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/fullupdateoperation.h000066400000000000000000000027331452337521700310340ustar00rootroot00000000000000#pragma once #include "abstracttopleveloperation.h" #include #include #include #include "flipperupdates.h" class QFile; namespace Flipper { namespace Zero { class UtilityInterface; class FullUpdateOperation : public AbstractTopLevelOperation { Q_OBJECT enum OperationState { ProvisioninigRegion = AbstractOperation::User, CheckingStorage, PreparingLocalUpdate, FetchingUpdate, ExtractingUpdate, ReadingUpdateFiles, PreparingRemoteUpdate, VerifyingExistingFiles, UploadingUpdateFiles, WaitingForUpdate, }; public: FullUpdateOperation(UtilityInterface *utility, DeviceState *state, const Updates::VersionInfo &versionInfo, QObject *parent = nullptr); FullUpdateOperation(UtilityInterface *utility, DeviceState *deviceState, const QUrl &bundleUrl, QObject *parent = nullptr); ~FullUpdateOperation(); const QString description() const override; private slots: void nextStateLogic() override; private: void provisionRegionData(); void checkStorage(); void fetchUpdateFile(); void prepareLocalUpdate(); void extractUpdate(); void readUpdateFiles(); void createUpdatePath(); void verifyExistingFiles(); void uploadUpdateFiles(); void startUpdate(); QFile *m_updateFile; QDir m_updateDirectory; QList m_fileUrls; UtilityInterface *m_utility; Updates::VersionInfo m_versionInfo; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/legacyupdateoperation.cpp000066400000000000000000000146661452337521700317010ustar00rootroot00000000000000#include "legacyupdateoperation.h" #include #include #include #include #include #include "flipperzero/devicestate.h" #include "flipperzero/utilityinterface.h" #include "flipperzero/utility/restartoperation.h" #include "flipperzero/utility/userbackupoperation.h" #include "flipperzero/utility/userrestoreoperation.h" #include "flipperzero/utility/startrecoveryoperation.h" #include "flipperzero/utility/assetsdownloadoperation.h" #include "flipperzero/utility/regionprovisioningoperation.h" #include "flipperzero/recoveryinterface.h" #include "flipperzero/recovery/setbootmodeoperation.h" #include "flipperzero/recovery/exitrecoveryoperation.h" #include "flipperzero/recovery/correctoptionbytesoperation.h" #include "flipperzero/recovery/firmwaredownloadoperation.h" #include "flipperzero/recovery/wirelessstackdownloadoperation.h" #include "flipperzero/helper/firmwarehelper.h" #include "tempdirectories.h" #define SHIPPED_VERSION QStringLiteral("0.43.1") // Old version that is shipped by default Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEFAULT) using namespace Flipper; using namespace Zero; LegacyUpdateOperation::LegacyUpdateOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const Updates::VersionInfo &versionInfo, QObject *parent): AbstractTopLevelOperation(state, parent), m_recovery(recovery), m_utility(utility), m_versionInfo(versionInfo), m_skipBackup(deviceState()->deviceInfo().firmware.version == SHIPPED_VERSION), m_backupUrl(globalTempDirs->fileUrl(QStringLiteral("%1-%2.tgz").arg(state->deviceInfo().name, QDateTime::currentDateTime().toString("yyyyMMdd-hhmmss")))) {} const QString LegacyUpdateOperation::description() const { return QStringLiteral("Legacy Update @%1").arg(deviceState()->name()); } void LegacyUpdateOperation::nextStateLogic() { if(operationState() == Ready) { setOperationState(FetchingFirmware); fetchFirmware(); } else if(operationState() == FetchingFirmware) { setOperationState(SavingBackup); saveBackup(); } else if(operationState() == SavingBackup) { setOperationState(StartingRecovery); startRecovery(); } else if(operationState() == StartingRecovery) { if(m_helper->hasRadioUpdate()) { setOperationState(SettingBootMode); setBootMode(); } else{ setOperationState(DownloadingRadioFirmware); advanceOperationState(); } } else if(operationState() == SettingBootMode) { setOperationState(DownloadingRadioFirmware); downloadRadioFirmware(); } else if(operationState() == DownloadingRadioFirmware) { setOperationState(DownloadingFirmware); downloadFirmware(); } else if(operationState() == DownloadingFirmware) { if(m_helper->hasRadioUpdate()) { setOperationState(CorrectingOptionBytes); correctOptionBytes(); } else { setOperationState(ExitingRecovery); exitRecovery(); } } else if((operationState() == ExitingRecovery) || (operationState() == CorrectingOptionBytes)) { setOperationState(DownloadingAssets); downloadAssets(); } else if(operationState() == DownloadingAssets) { setOperationState(ProvisioningRegion); provisionRegion(); } else if(operationState() == ProvisioningRegion) { setOperationState(RestoringBackup); restoreBackup(); } else if(operationState() == RestoringBackup) { setOperationState(RestartingDevice); restartDevice(); } else if(operationState() == RestartingDevice) { finish(); } } void LegacyUpdateOperation::fetchFirmware() { m_helper = new FirmwareHelper(deviceState(), m_versionInfo, this); connect(m_helper, &AbstractOperationHelper::finished, this, [=]() { if(m_helper->isError()) { finishWithError(m_helper->error(), QStringLiteral("Failed to fetch the files: %1").arg(m_helper->errorString())); } else { advanceOperationState(); } }); } void LegacyUpdateOperation::saveBackup() { if(m_skipBackup) { advanceOperationState(); } else { registerSubOperation(m_utility->backupInternalStorage(m_backupUrl)); } } void LegacyUpdateOperation::startRecovery() { registerSubOperation(m_utility->startRecoveryMode()); } void LegacyUpdateOperation::setBootMode() { registerSubOperation(m_recovery->setRecoveryBootMode()); } void LegacyUpdateOperation::downloadFirmware() { auto *file = m_helper->file(FirmwareHelper::FileIndex::Firmware); registerSubOperation(m_recovery->downloadFirmware(file)); } void LegacyUpdateOperation::downloadRadioFirmware() { auto *file = m_helper->file(FirmwareHelper::FileIndex::RadioFirmware); registerSubOperation(m_recovery->downloadWirelessStack(file)); } void LegacyUpdateOperation::correctOptionBytes() { auto *file = m_helper->file(FirmwareHelper::FileIndex::OptionBytes); registerSubOperation(m_recovery->fixOptionBytes(file)); } void LegacyUpdateOperation::exitRecovery() { registerSubOperation(m_recovery->exitRecoveryMode()); } void LegacyUpdateOperation::downloadAssets() { auto *file = m_helper->file(FirmwareHelper::FileIndex::AssetsTgz); registerSubOperation(m_utility->downloadAssets(file)); } void LegacyUpdateOperation::provisionRegion() { registerSubOperation(m_utility->provisionRegionData()); } void LegacyUpdateOperation::restoreBackup() { if(m_skipBackup) { advanceOperationState(); } else { registerSubOperation(m_utility->restoreInternalStorage(m_backupUrl)); } } void LegacyUpdateOperation::restartDevice() { if(m_skipBackup && deviceState()->deviceInfo().storage.isAssetsInstalled) { advanceOperationState(); } else { registerSubOperation(m_utility->restartDevice()); } } void LegacyUpdateOperation::onSubOperationError(AbstractOperation *operation) { if(operationState() == DownloadingRadioFirmware) { qCInfo(CATEGORY_DEFAULT) << operation->description() << "failed with reason:" << operation->errorString() << "Attempting to install the firmware anyway..."; advanceOperationState(); } else { const auto keepError = operationState() == SavingBackup || operationState() == StartingRecovery; finishWithError(keepError ? operation->error() : BackendError::OperationError, operation->errorString()); } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/legacyupdateoperation.h000066400000000000000000000030571452337521700313360ustar00rootroot00000000000000#pragma once #include "abstracttopleveloperation.h" #include #include #include #include "flipperupdates.h" namespace Flipper { namespace Zero { class FirmwareHelper; class UtilityInterface; class RecoveryInterface; class LegacyUpdateOperation : public AbstractTopLevelOperation { Q_OBJECT enum OperationState { FetchingFirmware = AbstractOperation::User, SavingBackup, StartingRecovery, SettingBootMode, DownloadingRadioFirmware, DownloadingFirmware, CorrectingOptionBytes, ExitingRecovery, DownloadingAssets, ProvisioningRegion, RestoringBackup, RestartingDevice }; public: LegacyUpdateOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const Updates::VersionInfo &versionInfo, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void fetchFirmware(); void saveBackup(); void startRecovery(); void setBootMode(); void downloadRadioFirmware(); void downloadFirmware(); void correctOptionBytes(); void exitRecovery(); void downloadAssets(); void provisionRegion(); void restoreBackup(); void restartDevice(); void onSubOperationError(AbstractOperation *operation) override; RecoveryInterface *m_recovery; UtilityInterface *m_utility; FirmwareHelper *m_helper; Updates::VersionInfo m_versionInfo; bool m_skipBackup; QUrl m_backupUrl; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/settingsbackupoperation.cpp000066400000000000000000000031701452337521700322440ustar00rootroot00000000000000#include "settingsbackupoperation.h" #include #include #include "flipperzero/devicestate.h" #include "flipperzero/utilityinterface.h" #include "flipperzero/utility/userbackupoperation.h" using namespace Flipper; using namespace Zero; static constexpr qint64 MINIMUM_OPERATION_TIME_MS = 2000; SettingsBackupOperation::SettingsBackupOperation(UtilityInterface *utility, DeviceState *state, const QUrl &backupUrl, QObject *parent): AbstractTopLevelOperation(state, parent), m_utility(utility), m_backupUrl(backupUrl) {} const QString SettingsBackupOperation::description() const { return QStringLiteral("Backup Internal storage @%1").arg(deviceState()->name()); } void SettingsBackupOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(SettingsBackupOperation::SavingBackup); saveBackup(); } else if(operationState() == SettingsBackupOperation::SavingBackup) { setOperationState(SettingsBackupOperation::Waiting); wait(); } else if(operationState() == SettingsBackupOperation::Waiting) { finish(); } } void SettingsBackupOperation::saveBackup() { m_elapsed.start(); registerSubOperation(m_utility->backupInternalStorage(m_backupUrl)); } void SettingsBackupOperation::wait() { const auto delay = qMax(MINIMUM_OPERATION_TIME_MS - m_elapsed.elapsed(), 0); QTimer::singleShot(delay, this, &SettingsBackupOperation::advanceOperationState); } void SettingsBackupOperation::onSubOperationError(AbstractOperation *operation) { finishWithError(operation->error(), operation->errorString()); } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/settingsbackupoperation.h000066400000000000000000000014221452337521700317070ustar00rootroot00000000000000#pragma once #include "abstracttopleveloperation.h" #include #include namespace Flipper { namespace Zero { class UtilityInterface; class SettingsBackupOperation : public AbstractTopLevelOperation { Q_OBJECT enum OperationState { SavingBackup = AbstractOperation::User, Waiting }; public: SettingsBackupOperation(UtilityInterface *utility, DeviceState *state, const QUrl &backupUrl, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void saveBackup(); void wait(); void onSubOperationError(AbstractOperation *operation) override; UtilityInterface *m_utility; QUrl m_backupUrl; QElapsedTimer m_elapsed; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/settingsrestoreoperation.cpp000066400000000000000000000041261452337521700324640ustar00rootroot00000000000000#include "settingsrestoreoperation.h" #include #include "flipperzero/devicestate.h" #include "flipperzero/utilityinterface.h" #include "flipperzero/utility/restartoperation.h" #include "flipperzero/utility/userrestoreoperation.h" using namespace Flipper; using namespace Zero; static constexpr qint64 MINIMUM_OPERATION_TIME_MS = 2000; SettingsRestoreOperation::SettingsRestoreOperation(UtilityInterface *utility, DeviceState *state, const QUrl &backupUrl, QObject *parent): AbstractTopLevelOperation(state, parent), m_utility(utility), m_backupUrl(backupUrl) {} const QString SettingsRestoreOperation::description() const { return QStringLiteral("Restore Internal storage @%1").arg(deviceState()->name()); } void SettingsRestoreOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(SettingsRestoreOperation::RestoringBackup); restoreBackup(); } else if(operationState() == SettingsRestoreOperation::RestoringBackup) { setOperationState(SettingsRestoreOperation::Waiting); wait(); } else if(operationState() == SettingsRestoreOperation::Waiting) { setOperationState(SettingsRestoreOperation::RestartingDevice); restartDevice(); } else if(operationState() == SettingsRestoreOperation::RestartingDevice) { finish(); } } void SettingsRestoreOperation::restoreBackup() { m_elapsed.start(); registerSubOperation(m_utility->restoreInternalStorage(m_backupUrl)); } void SettingsRestoreOperation::wait() { const auto delay = qMax(MINIMUM_OPERATION_TIME_MS - m_elapsed.elapsed(), 0); QTimer::singleShot(delay, this, &SettingsRestoreOperation::advanceOperationState); } void SettingsRestoreOperation::restartDevice() { registerSubOperation(m_utility->restartDevice()); } void SettingsRestoreOperation::onSubOperationError(AbstractOperation *operation) { const auto keepError = operationState() == SettingsRestoreOperation::RestoringBackup; finishWithError(keepError ? operation->error() : BackendError::OperationError, operation->errorString()); } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/settingsrestoreoperation.h000066400000000000000000000015161452337521700321310ustar00rootroot00000000000000#pragma once #include #include #include "abstracttopleveloperation.h" namespace Flipper { namespace Zero { class UtilityInterface; class SettingsRestoreOperation : public AbstractTopLevelOperation { Q_OBJECT enum OperationState { RestoringBackup = AbstractOperation::User, Waiting, RestartingDevice }; public: SettingsRestoreOperation(UtilityInterface *utility, DeviceState *state, const QUrl &backupUrl, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void restoreBackup(); void wait(); void restartDevice(); void onSubOperationError(AbstractOperation *operation) override; UtilityInterface *m_utility; QUrl m_backupUrl; QElapsedTimer m_elapsed; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/wirelessstackupdateoperation.cpp000066400000000000000000000064461452337521700333150ustar00rootroot00000000000000#include "wirelessstackupdateoperation.h" #include #include "flipperzero/devicestate.h" #include "flipperzero/utilityinterface.h" #include "flipperzero/utility/startrecoveryoperation.h" #include "flipperzero/recoveryinterface.h" #include "flipperzero/recovery/setbootmodeoperation.h" #include "flipperzero/recovery/wirelessstackdownloadoperation.h" using namespace Flipper; using namespace Zero; AbstractCore2UpdateOperation::AbstractCore2UpdateOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const QString &filePath, QObject *parent): AbstractTopLevelOperation(state, parent), m_recovery(recovery), m_utility(utility), m_file(new QFile(filePath, this)) {} void AbstractCore2UpdateOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(AbstractCore2UpdateOperation::StartingRecovery); startRecoveryMode(); } else if(operationState() == AbstractCore2UpdateOperation::StartingRecovery) { setOperationState(AbstractCore2UpdateOperation::SettingRecoveryBootMode); setRecoveryBootMode(); } else if(operationState() == AbstractCore2UpdateOperation::SettingRecoveryBootMode) { setOperationState(AbstractCore2UpdateOperation::UpdatingWirelessStack); updateCore2Firmware(); } else if(operationState() == AbstractCore2UpdateOperation::UpdatingWirelessStack) { setOperationState(AbstractCore2UpdateOperation::SettingOSBootMode); setOSBootMode(); } else if(operationState() == AbstractCore2UpdateOperation::SettingOSBootMode) { finish(); } } void AbstractCore2UpdateOperation::startRecoveryMode() { registerSubOperation(m_utility->startRecoveryMode()); } void AbstractCore2UpdateOperation::setRecoveryBootMode() { registerSubOperation(m_recovery->setRecoveryBootMode()); } void AbstractCore2UpdateOperation::setOSBootMode() { registerSubOperation(m_recovery->setOSBootMode()); } void AbstractCore2UpdateOperation::onSubOperationError(AbstractOperation *operation) { const auto keepError = operationState() == AbstractCore2UpdateOperation::StartingRecovery; finishWithError(keepError ? operation->error() : BackendError::OperationError, operation->errorString()); } WirelessStackUpdateOperation::WirelessStackUpdateOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const QString &filePath, QObject *parent): AbstractCore2UpdateOperation(recovery, utility, state, filePath, parent) {} const QString WirelessStackUpdateOperation::description() const { return QStringLiteral("Wireless Stack Update @%1").arg(deviceState()->name()); } void WirelessStackUpdateOperation::updateCore2Firmware() { registerSubOperation(m_recovery->downloadWirelessStack(m_file)); } FUSUpdateOperation::FUSUpdateOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const QString &filePath, uint32_t address, QObject *parent): AbstractCore2UpdateOperation(recovery, utility, state, filePath, parent), m_address(address) {} const QString FUSUpdateOperation::description() const { return QStringLiteral("FUS Update @%1").arg(deviceState()->name()); } void FUSUpdateOperation::updateCore2Firmware() { registerSubOperation(m_recovery->downloadFUS(m_file, m_address)); } flipperdevices-qFlipper-bfce851/backend/flipperzero/toplevel/wirelessstackupdateoperation.h000066400000000000000000000032531452337521700327530ustar00rootroot00000000000000#pragma once #include "abstracttopleveloperation.h" class QFile; namespace Flipper { namespace Zero { class UtilityInterface; class RecoveryInterface; class AbstractCore2UpdateOperation : public AbstractTopLevelOperation { Q_OBJECT enum OperationState { StartingRecovery = AbstractOperation::User, SettingRecoveryBootMode, UpdatingWirelessStack, SettingOSBootMode }; public: AbstractCore2UpdateOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const QString &filePath, QObject *parent = nullptr); private slots: void nextStateLogic() override; private: virtual void updateCore2Firmware() = 0; void startRecoveryMode(); void setRecoveryBootMode(); void setOSBootMode(); void onSubOperationError(AbstractOperation *operation) override; protected: RecoveryInterface *m_recovery; UtilityInterface *m_utility; QFile *m_file; }; class WirelessStackUpdateOperation : public AbstractCore2UpdateOperation { Q_OBJECT public: WirelessStackUpdateOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const QString &filePath, QObject *parent = nullptr); const QString description() const override; private: void updateCore2Firmware() override; }; class FUSUpdateOperation : public AbstractCore2UpdateOperation { Q_OBJECT public: FUSUpdateOperation(RecoveryInterface *recovery, UtilityInterface *utility, DeviceState *state, const QString &filePath, uint32_t address, QObject *parent = nullptr); const QString description() const override; private: void updateCore2Firmware() override; uint32_t m_address; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/000077500000000000000000000000001452337521700244415ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/abstractutilityoperation.cpp000066400000000000000000000017121452337521700323160ustar00rootroot00000000000000#include "abstractutilityoperation.h" #include #include "flipperzero/devicestate.h" using namespace Flipper; using namespace Zero; AbstractUtilityOperation::AbstractUtilityOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent): AbstractOperation(parent), m_rpc(rpc), m_deviceState(deviceState) {} void AbstractUtilityOperation::start() { if(operationState() != AbstractOperation::Ready) { finishWithError(BackendError::UnknownError, QStringLiteral("Trying to start an operation that is either already running or has finished.")); } else { emit started(); advanceOperationState(); } } ProtobufSession *AbstractUtilityOperation::rpc() const { return m_rpc; } DeviceState *AbstractUtilityOperation::deviceState() const { return m_deviceState; } void AbstractUtilityOperation::advanceOperationState() { QTimer::singleShot(0, this, &AbstractUtilityOperation::nextStateLogic); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/abstractutilityoperation.h000066400000000000000000000011761452337521700317670ustar00rootroot00000000000000#pragma once #include "abstractoperation.h" namespace Flipper { namespace Zero { class DeviceState; class ProtobufSession; class AbstractUtilityOperation : public AbstractOperation { Q_OBJECT public: AbstractUtilityOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent = nullptr); virtual ~AbstractUtilityOperation() {} void start() override; ProtobufSession *rpc() const; DeviceState *deviceState() const; protected: void advanceOperationState(); private slots: virtual void nextStateLogic() = 0; private: ProtobufSession *m_rpc; DeviceState *m_deviceState; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/assetsdownloadoperation.cpp000066400000000000000000000256571452337521700321370ustar00rootroot00000000000000#include "assetsdownloadoperation.h" #include #include #include #include #include #include "flipperzero/rpc/storageremoveoperation.h" #include "flipperzero/rpc/storagemkdiroperation.h" #include "flipperzero/rpc/storagewriteoperation.h" #include "flipperzero/rpc/storagereadoperation.h" #include "flipperzero/rpc/storageinfooperation.h" #include "flipperzero/rpc/storagestatoperation.h" #include "flipperzero/protobufsession.h" #include "flipperzero/assetmanifest.h" #include "flipperzero/devicestate.h" #include "gzipuncompressor.h" #include "tempdirectories.h" #include "tararchive.h" Q_LOGGING_CATEGORY(CATEGORY_ASSETS, "DBS") #define RESOURCES_PREFIX QByteArrayLiteral("resources") #define DEVICE_MANIFEST QByteArrayLiteral("/ext/Manifest") using namespace Flipper; using namespace Zero; static void printFileList(const char *header, const FileNode::FileInfoList &list) { qCDebug(CATEGORY_ASSETS).noquote() << header; for(const auto &e : list) { const auto icon = QStringLiteral("[%1]").arg(e.type == FileNode::Type::RegularFile ? 'F' : e.type == FileNode::Type::Directory ? 'D' : '?'); qCDebug(CATEGORY_ASSETS).noquote() << icon << e.absolutePath; } } AssetsDownloadOperation::AssetsDownloadOperation(ProtobufSession *rpc, DeviceState *deviceState, QIODevice *compressedFile, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_compressedFile(compressedFile), m_uncompressedFile(new QFile(globalTempDirs->root().absoluteFilePath(QStringLiteral("qFlipper-databases.tar")), this)), m_isDeviceManifestPresent(false) {} AssetsDownloadOperation::~AssetsDownloadOperation() {} const QString AssetsDownloadOperation::description() const { return QStringLiteral("Assets Download @%1").arg(deviceState()->name()); } void AssetsDownloadOperation::nextStateLogic() { if(operationState() == BasicOperationState::Ready) { setOperationState(State::CheckingExtStorage); checkForExtStorage(); } else if(operationState() == State::CheckingExtStorage) { setOperationState(State::ExtractingArchive); extractArchive(); } else if(operationState() == State::ExtractingArchive) { setOperationState(ReadingLocalManifest); readLocalManifest(); } else if(operationState() == State::ReadingLocalManifest) { setOperationState(CheckingDeviceManifest); checkForDeviceManifest(); } else if(operationState() == State::CheckingDeviceManifest) { setOperationState(ReadingDeviceManifest); readDeviceManifest(); } else if(operationState() == State::ReadingDeviceManifest) { setOperationState(State::BuildingFileLists); buildFileLists(); } else if(operationState() == State::BuildingFileLists) { setOperationState(State::DeletingFiles); deleteFiles(); } else if(operationState() == State::DeletingFiles) { setOperationState(State::WritingFiles); writeFiles(); } else if(operationState() == State::WritingFiles) { cleanup(); finish(); } } void AssetsDownloadOperation::checkForExtStorage() { auto *op = rpc()->storageInfo(QByteArrayLiteral("/ext")); connect(op, &AbstractOperation::finished, this, [=]() { if(op->isError()) { finishWithError(op->error(), QStringLiteral("Failed to perform stat operation: %1").arg(op->errorString())); } else if(!op->isPresent()) { qCDebug(CATEGORY_ASSETS) << "No external storage found, finishing early."; finish(); } else { qCDebug(CATEGORY_ASSETS) << "External storage is present," << op->sizeFree() << "bytes free."; advanceOperationState(); } }); } void AssetsDownloadOperation::extractArchive() { auto *uncompressor = new GZipUncompressor(m_compressedFile, m_uncompressedFile, this); if(uncompressor->isError()) { finishWithError(uncompressor->error(), uncompressor->errorString()); return; } connect(uncompressor, &GZipUncompressor::finished, this, [=]() { if(uncompressor->isError()) { finishWithError(uncompressor->error(), uncompressor->errorString()); } else { m_archive = new TarArchive(m_uncompressedFile, this); if(m_archive->isError()) { finishWithError(m_archive->error(), m_archive->errorString()); } else { advanceOperationState(); } } uncompressor->deleteLater(); }); } void AssetsDownloadOperation::readLocalManifest() { const auto text = m_archive->fileData(QStringLiteral("resources/Manifest")); if(text.isEmpty()) { return finishWithError(m_archive->error(), m_archive->errorString()); } m_localManifest = AssetManifest(text); if(m_localManifest.isError()) { return finishWithError(m_localManifest.error(), m_localManifest.errorString()); } advanceOperationState(); } void AssetsDownloadOperation::checkForDeviceManifest() { auto *operation = rpc()->storageStat(DEVICE_MANIFEST); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { return finishWithError(operation->error(), operation->errorString()); } else if(operation->type() != StorageStatOperation::FileType::RegularFile) { setOperationState(State::ReadingDeviceManifest); } else { m_isDeviceManifestPresent = true; } advanceOperationState(); }); } void AssetsDownloadOperation::readDeviceManifest() { auto *buf = new QBuffer(this); auto *operation = rpc()->storageRead(QByteArrayLiteral("/ext/Manifest"), buf); connect(operation, &AbstractOperation::finished, this, [=]() { if(!operation->isError()) { buf->open(QIODevice::ReadOnly); const auto test = buf->readAll(); m_deviceManifest = AssetManifest(test); } advanceOperationState(); }); } void AssetsDownloadOperation::buildFileLists() { FileNode::FileInfoList deleted, added, changed; FileNode::FileInfo manifestInfo; manifestInfo.name = QStringLiteral("Manifest"); manifestInfo.absolutePath = manifestInfo.name; manifestInfo.type = FileNode::Type::RegularFile; printFileList("<<<<< Local manifest:", m_localManifest.tree()->toPreOrderList()); if(!m_isDeviceManifestPresent || m_deviceManifest.isError()) { qCDebug(CATEGORY_ASSETS) << "Device manifest not present or corrupt, assumimg fresh install..."; changed.append(manifestInfo); added.append(m_localManifest.tree()->toPreOrderList().mid(1)); std::copy_if(added.cbegin(), added.cend(), std::back_inserter(deleted), [](const FileNode::FileInfo &arg) { return arg.type == FileNode::Type::RegularFile; }); } else { printFileList(">>>>> Device manifest:", m_deviceManifest.tree()->toPreOrderList()); deleted.append(m_localManifest.tree()->difference(m_deviceManifest.tree())); added.append(m_deviceManifest.tree()->difference(m_localManifest.tree())); changed.append(m_deviceManifest.tree()->changed(m_localManifest.tree())); deleted.erase(std::remove_if(deleted.begin(), deleted.end(), [](const FileNode::FileInfo &arg) { return arg.type != FileNode::Type::RegularFile; }), deleted.end()); if(!deleted.isEmpty() || !added.isEmpty() || !changed.isEmpty()) { changed.prepend(manifestInfo); } } if(!deleted.isEmpty()) { printFileList("----- Files deleted:", deleted); } if(!added.isEmpty()) { printFileList("+++++ Files added:", added); } if(!changed.isEmpty()) { printFileList("***** Files changed:", changed); } m_deleteList.append(deleted); m_deleteList.append(changed); m_writeList.append(added); m_writeList.append(changed); // Start deleting by the farthest nodes std::reverse(m_deleteList.begin(), m_deleteList.end()); advanceOperationState(); } void AssetsDownloadOperation::deleteFiles() { if(m_deleteList.isEmpty()) { qCDebug(CATEGORY_ASSETS) << "No files to delete, skipping to write"; advanceOperationState(); } deviceState()->setStatusString(tr("Deleting unneeded files...")); auto filesRemaining = m_deleteList.size(); const auto increment = 100.0 / filesRemaining; for(const auto &fileInfo : qAsConst(m_deleteList)) { const auto isLastFile = (--filesRemaining == 0); const auto fileName = QByteArrayLiteral("/ext/") + fileInfo.absolutePath.toLocal8Bit(); auto *operation = rpc()->storageRemove(fileName); connect(operation, &AbstractOperation::finished, this, [=]() { deviceState()->setProgress(100.0 - increment * filesRemaining); if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else if(isLastFile) { advanceOperationState(); } }); } } void AssetsDownloadOperation::writeFiles() { if(m_writeList.isEmpty()) { qCDebug(CATEGORY_ASSETS) << "No files to write, skipping to the end"; advanceOperationState(); } deviceState()->setStatusString(tr("Installing databases...")); auto filesRemaining = m_writeList.size(); const auto increment = 100.0 / filesRemaining; for(const auto &fileInfo : qAsConst(m_writeList)) { --filesRemaining; AbstractOperation *op; const auto filePath = QByteArrayLiteral("/ext/") + fileInfo.absolutePath.toLocal8Bit(); if(fileInfo.type == FileNode::Type::Directory) { op = rpc()->storageMkdir(filePath); } else if(fileInfo.type == FileNode::Type::RegularFile) { auto *buf = new QBuffer(this); if(!buf->open(QIODevice::ReadWrite)) { buf->deleteLater(); return finishWithError(BackendError::UnknownError, buf->errorString()); } const auto resourcePath = QStringLiteral("resources/") + fileInfo.absolutePath; if((buf->write(m_archive->fileData(resourcePath)) < 0)) { buf->deleteLater(); return finishWithError(BackendError::UnknownError, buf->errorString()); } else { buf->close(); } op = rpc()->storageWrite(filePath, buf); } else { return finishWithError(BackendError::UnknownError, QStringLiteral("Unexpected file type")); } connect(op, &AbstractOperation::finished, this, [=]() { deviceState()->setProgress(100.0 - increment * filesRemaining); if(op->isError()) { finishWithError(op->error(), op->errorString()); } else if(filesRemaining == 0) { advanceOperationState(); } }); } } void AssetsDownloadOperation::cleanup() { m_uncompressedFile->remove(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/assetsdownloadoperation.h000066400000000000000000000025151452337521700315700ustar00rootroot00000000000000#pragma once #include "tararchive.h" #include "abstractutilityoperation.h" #include "flipperzero/assetmanifest.h" class QIODevice; class QFile; namespace Flipper { namespace Zero { class AssetsDownloadOperation : public AbstractUtilityOperation { Q_OBJECT public: enum State { CheckingExtStorage = AbstractOperation::User, ExtractingArchive, ReadingLocalManifest, CheckingDeviceManifest, ReadingDeviceManifest, BuildingFileLists, DeletingFiles, WritingFiles }; AssetsDownloadOperation(ProtobufSession *rpc, DeviceState *deviceState, QIODevice *compressedFile, QObject *parent = nullptr); ~AssetsDownloadOperation(); const QString description() const override; private slots: void nextStateLogic() override; private: void checkForExtStorage(); void extractArchive(); void readLocalManifest(); void checkForDeviceManifest(); void readDeviceManifest(); void buildFileLists(); void deleteFiles(); void writeFiles(); void cleanup(); QIODevice *m_compressedFile; QFile *m_uncompressedFile; TarArchive *m_archive; AssetManifest m_localManifest; AssetManifest m_deviceManifest; bool m_isDeviceManifestPresent; FileNode::FileInfoList m_deleteList; FileNode::FileInfoList m_writeList; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/checksumverifyoperation.cpp000066400000000000000000000116471452337521700321260ustar00rootroot00000000000000#include "checksumverifyoperation.h" #include #include #include #include #include #include #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/storagemd5sumoperation.h" Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEBUG) using namespace Flipper; using namespace Zero; ChecksumVerifyOperation::ChecksumVerifyOperation(ProtobufSession *rpc, DeviceState *deviceState, const QList &urlsToCheck, const QByteArray &remoteRootPath, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_remoteRootPath(remoteRootPath), m_urlsToCheck(urlsToCheck) {} const QString ChecksumVerifyOperation::description() const { const auto numFiles = m_urlsToCheck.size(); return QStringLiteral("Verify checksum of %1 %2 @%3").arg(QString::number(numFiles), (numFiles == 1) ? "item" : "items", deviceState()->deviceInfo().name); } const QList &ChecksumVerifyOperation::changedUrls() const { return m_changedUrls; } void ChecksumVerifyOperation::nextStateLogic() { if(operationState() == Ready) { setOperationState(ReadingFileList); readFileList(); } else if(operationState() == ReadingFileList) { setOperationState(VerifyingMd5Sum); verifyMd5Sums(); } else if(operationState() == VerifyingMd5Sum) { finish(); } else { finishWithError(BackendError::UnknownError, QStringLiteral("Unexpected state")); } } void ChecksumVerifyOperation::readFileList() { for(const auto &url : qAsConst(m_urlsToCheck)) { const QFileInfo fileInfo(url.adjusted(QUrl::StripTrailingSlash).toLocalFile()); const QDir topmostDir = fileInfo.dir(); if(fileInfo.isFile()) { m_flatFileList.append({fileInfo, topmostDir}); } else if(fileInfo.isDir()) { QDir dir(fileInfo.absoluteFilePath()); dir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden); dir.setSorting(QDir::Name | QDir::DirsFirst); QDirIterator it(dir, QDirIterator::Subdirectories); while(it.hasNext()) { const QFileInfo fileInfo(it.next()); if(fileInfo.isFile()) { m_flatFileList.append({fileInfo, topmostDir}); } } } } advanceOperationState(); } void ChecksumVerifyOperation::verifyMd5Sums() { const auto totalSize = std::accumulate(m_flatFileList.cbegin(), m_flatFileList.cend(), (qint64)0, [](qint64 sum, const FileListElement &arg) { return sum + arg.fileInfo.size(); }); auto filesRemaining = m_flatFileList.size(); setProgress(0.0); for(const auto &entry : qAsConst(m_flatFileList)) { const auto &fileInfo = entry.fileInfo; const auto &topmostDir = entry.topmostDir; const auto absoluteLocalFilePath = fileInfo.absoluteFilePath(); const auto relativeLocalFilePath = topmostDir.relativeFilePath(absoluteLocalFilePath); const auto absoluteRemoteFilePath = m_remoteRootPath + QByteArrayLiteral("/") + relativeLocalFilePath.toLocal8Bit(); const auto isLastFile = (--filesRemaining == 0); auto *operation = rpc()->storageMd5Sum(absoluteRemoteFilePath); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); return; } const auto checksumRemote = operation->md5Sum(); if(checksumRemote.isEmpty()) { m_changedUrls.append(QUrl::fromLocalFile(fileInfo.absoluteFilePath())); qCDebug(CATEGORY_DEBUG) << "File does not exist:" << absoluteRemoteFilePath; } else { const auto checksumLocal = calculateMd5Sum(fileInfo); if(checksumRemote != checksumLocal) { m_changedUrls.append(QUrl::fromLocalFile(fileInfo.absoluteFilePath())); qCDebug(CATEGORY_DEBUG) << "File changed:" << absoluteRemoteFilePath << "old:" << checksumRemote << "new:" << checksumLocal; } else { qCDebug(CATEGORY_DEBUG) << "File is identical:" << absoluteRemoteFilePath; } } setProgress(progress() + 100.0 * fileInfo.size() / totalSize); if(isLastFile) { advanceOperationState(); } }); } } const QByteArray ChecksumVerifyOperation::calculateMd5Sum(const QFileInfo &fileInfo) { QFile file(fileInfo.absoluteFilePath()); if(!file.open(QIODevice::ReadOnly)) { return QByteArray(); } QCryptographicHash hash(QCryptographicHash::Md5); hash.addData(&file); return hash.result().toHex(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/checksumverifyoperation.h000066400000000000000000000020031452337521700315550ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" #include #include namespace Flipper { namespace Zero { class ChecksumVerifyOperation : public AbstractUtilityOperation { Q_OBJECT enum State { ReadingFileList = AbstractOperation::User, VerifyingMd5Sum }; struct FileListElement { QFileInfo fileInfo; QDir topmostDir; }; public: ChecksumVerifyOperation(ProtobufSession *rpc, DeviceState *deviceState, const QList &urlsToCheck, const QByteArray &remoteRootPath, QObject *parent = nullptr); const QString description() const override; const QList &changedUrls() const; private slots: void nextStateLogic() override; private: void readFileList(); void verifyMd5Sums(); static const QByteArray calculateMd5Sum(const QFileInfo &fileInfo); QByteArray m_remoteRootPath; QList m_urlsToCheck; QList m_flatFileList; QList m_changedUrls; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/directorydownloadoperation.cpp000066400000000000000000000102771452337521700326310ustar00rootroot00000000000000#include "directorydownloadoperation.h" #include #include #include #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/storagereadoperation.h" #include "getfiletreeoperation.h" using namespace Flipper; using namespace Zero; DirectoryDownloadOperation::DirectoryDownloadOperation(ProtobufSession *rpc, DeviceState *deviceState, const QString &targetPath, const QByteArray &remotePath, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_targetDir(targetPath), m_remotePath(remotePath), m_totalSize(0) {} const QString DirectoryDownloadOperation::description() const { return QStringLiteral("Download Directory %1").arg(QString(m_remotePath)); } void DirectoryDownloadOperation::nextStateLogic() { if(operationState() == BasicOperationState::Ready) { setOperationState(State::CreatingDirectory); createLocalDirectory(); } else if(operationState() == State::CreatingDirectory) { setOperationState(State::GettingFileTree); getFileTree(); } else if(operationState() == State::GettingFileTree) { setOperationState(State::ReadingFiles); readFiles(); } else if(operationState() == State::ReadingFiles) { finish(); } } void DirectoryDownloadOperation::createLocalDirectory() { const auto subdir = QUrl(m_remotePath).fileName(); if(m_targetDir.exists(subdir)) { const auto success = m_targetDir.cd(subdir) && m_targetDir.removeRecursively() && m_targetDir.cdUp(); if(!success) { finishWithError(BackendError::DiskError, QStringLiteral("Target directory exists, but cannot be removed")); return; } } if(!(m_targetDir.mkdir(subdir) && m_targetDir.cd(subdir))) { finishWithError(BackendError::DiskError, QStringLiteral("Failed to create directory")); } else { advanceOperationState(); } } void DirectoryDownloadOperation::getFileTree() { auto *operation = new GetFileTreeOperation(rpc(), deviceState(), m_remotePath, this); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::BackupError, operation->errorString()); } else { m_fileList = operation->files(); m_totalSize = std::accumulate(m_fileList.cbegin(), m_fileList.cend(), 0, [](qint64 total, const FileInfo &arg) { return arg.type == FileType::RegularFile ? total + arg.size : total; }); advanceOperationState(); } operation->deleteLater(); }); operation->start(); } void DirectoryDownloadOperation::readFiles() { auto filesRemaining = std::count_if(m_fileList.cbegin(), m_fileList.cend(), [](const FileInfo &arg) { return arg.type == FileType::RegularFile; }); auto baseProgress = 0.0; for(const auto &fileInfo: qAsConst(m_fileList)) { const auto filePath = fileInfo.absolutePath.mid(m_remotePath.size() + 1); if(fileInfo.type == FileType::Directory) { if(!m_targetDir.mkdir(filePath)) { finishWithError(BackendError::DiskError, QStringLiteral("Failed to create directory: %1").arg(QString(filePath))); return; } } else if(fileInfo.type == FileType::RegularFile) { auto *file = new QFile(m_targetDir.absoluteFilePath(filePath), this); auto *operation = rpc()->storageRead(fileInfo.absolutePath, file); const auto isLast = (--filesRemaining == 0); connect(operation, &AbstractOperation::progressChanged, this, [=]() { setProgress(baseProgress + operation->progress() * fileInfo.size / m_totalSize); }); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::BackupError, operation->errorString()); } else if(isLast) { advanceOperationState(); } }); baseProgress += fileInfo.size * 100.0 / m_totalSize; } } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/directorydownloadoperation.h000066400000000000000000000015141452337521700322700ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" #include #include "fileinfo.h" namespace Flipper { namespace Zero { class DirectoryDownloadOperation : public AbstractUtilityOperation { Q_OBJECT enum State { CreatingDirectory = AbstractOperation::User, GettingFileTree, ReadingFiles }; public: DirectoryDownloadOperation(ProtobufSession *rpc, DeviceState *deviceState, const QString &targetPath, const QByteArray &remotePath, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void createLocalDirectory(); void getFileTree(); void readFiles(); QDir m_targetDir; QByteArray m_remotePath; FileInfoList m_fileList; qint64 m_totalSize; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/factoryresetutiloperation.cpp000066400000000000000000000027661452337521700325110ustar00rootroot00000000000000#include "factoryresetutiloperation.h" #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/systemfactoryresetoperation.h" using namespace Flipper; using namespace Zero; FactoryResetUtilOperation::FactoryResetUtilOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent) {} const QString FactoryResetUtilOperation::description() const { return QStringLiteral("Factory reset (Utility) @%1").arg(deviceState()->name()); } void FactoryResetUtilOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(FactoryResetUtilOperation::ResettingDevice); resetDevice(); } else if(operationState() == FactoryResetUtilOperation::ResettingDevice) { finish(); } } void FactoryResetUtilOperation::onDeviceOnlineChanged() { if(deviceState()->isOnline()) { advanceOperationState(); } else { startTimeout(); } } void FactoryResetUtilOperation::resetDevice() { deviceState()->setStatusString(QStringLiteral("Performing factory reset...")); connect(deviceState(), &DeviceState::isOnlineChanged, this, &FactoryResetUtilOperation::onDeviceOnlineChanged); auto *operation = rpc()->factoryReset(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } }); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/factoryresetutiloperation.h000066400000000000000000000010441452337521700321420ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" namespace Flipper { namespace Zero { class FactoryResetUtilOperation : public AbstractUtilityOperation { Q_OBJECT enum OperationState { ResettingDevice = AbstractOperation::User }; public: FactoryResetUtilOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; void onDeviceOnlineChanged(); private: void resetDevice(); }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/filesuploadoperation.cpp000066400000000000000000000077061452337521700314070ustar00rootroot00000000000000#include "filesuploadoperation.h" #include #include #include #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/storagemkdiroperation.h" #include "flipperzero/rpc/storagewriteoperation.h" using namespace Flipper; using namespace Zero; FilesUploadOperation::FilesUploadOperation(ProtobufSession *rpc, DeviceState *deviceState, const QList &fileUrls, const QByteArray &remotePath, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_remotePath(remotePath), m_urlList(fileUrls), m_totalSize(0) {} const QString FilesUploadOperation::description() const { const auto numFiles = m_urlList.size(); return QStringLiteral("Upload %1 %2 @%3").arg(QString::number(numFiles), (numFiles == 1) ? "entry" : "entries", deviceState()->deviceInfo().name); } void FilesUploadOperation::nextStateLogic() { if(operationState() == Ready) { setOperationState(ReadingFileList); readFileList(); } else if(operationState() == ReadingFileList) { setOperationState(WritingFiles); writeFiles(); } else if(operationState() == WritingFiles) { finish(); } } void FilesUploadOperation::readFileList() { for(const auto &url: qAsConst(m_urlList)) { const QFileInfo fileInfo(url.adjusted(QUrl::StripTrailingSlash).toLocalFile()); const QDir topmostDir = fileInfo.dir(); m_fileList.append({fileInfo, topmostDir}); if(fileInfo.isFile()) { m_totalSize += fileInfo.size(); } else if(fileInfo.isDir()) { QDir dir(fileInfo.absoluteFilePath()); dir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden); dir.setSorting(QDir::Name | QDir::DirsFirst); QDirIterator it(dir, QDirIterator::Subdirectories); while(it.hasNext()) { const QFileInfo fileInfo(it.next()); m_fileList.append({fileInfo, topmostDir}); if(fileInfo.isFile()) { m_totalSize += fileInfo.size(); } } } } advanceOperationState(); } void FilesUploadOperation::writeFiles() { auto fileCountLeft = m_fileList.size(); auto fileProgress = 0.0; for(const auto &entry: qAsConst(m_fileList)) { const auto &fileInfo = entry.fileInfo; const auto &topmostDir = entry.topmostDir; const auto absoluteLocalPath = fileInfo.absoluteFilePath(); const auto relativeLocalPath = topmostDir.relativeFilePath(absoluteLocalPath); const auto absoluteRemotePath = m_remotePath + QByteArrayLiteral("/") + relativeLocalPath.toLocal8Bit(); const auto sizeRatio = (double)fileInfo.size() / m_totalSize; const auto isLastEntry = (--fileCountLeft == 0); if(fileInfo.isFile()) { auto *file = new QFile(absoluteLocalPath, this); auto *operation = rpc()->storageWrite(absoluteRemotePath, file); connect(operation, &AbstractOperation::progressChanged, this, [=]() { setProgress(fileProgress + operation->progress() * sizeRatio); }); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else if(isLastEntry) { advanceOperationState(); } }); } else if(fileInfo.isDir()) { auto *operation = rpc()->storageMkdir(absoluteRemotePath); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else if(isLastEntry) { advanceOperationState(); } }); } fileProgress += 100.0 * sizeRatio; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/filesuploadoperation.h000066400000000000000000000015711452337521700310460ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" #include #include #include namespace Flipper { namespace Zero { class FilesUploadOperation : public AbstractUtilityOperation { Q_OBJECT enum State { ReadingFileList = AbstractOperation::User, WritingFiles }; struct FileListElement { QFileInfo fileInfo; QDir topmostDir; }; public: FilesUploadOperation(ProtobufSession *rpc, DeviceState *deviceState, const QList &fileUrls, const QByteArray &remotePath, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void readFileList(); void writeFiles(); QByteArray m_remotePath; QList m_urlList; QList m_fileList; qint64 m_totalSize; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/getfiletreeoperation.cpp000066400000000000000000000031661452337521700313730ustar00rootroot00000000000000#include "getfiletreeoperation.h" #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/storagelistoperation.h" using namespace Flipper; using namespace Zero; GetFileTreeOperation::GetFileTreeOperation(ProtobufSession *rpc, DeviceState *deviceState, const QByteArray &rootPath, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_rootPath(rootPath), m_pendingCount(0) {} const QString GetFileTreeOperation::description() const { return QStringLiteral("Get File Tree @%1").arg(deviceState()->name()); } const FileInfoList &GetFileTreeOperation::files() const { return m_result; } void GetFileTreeOperation::nextStateLogic() { if(operationState() == BasicOperationState::Ready) { setOperationState(State::Running); listDirectory(m_rootPath); } else if(operationState() == State::Running) { --m_pendingCount; auto *op = qobject_cast(sender()); if(op->isError()) { finishWithError(op->error(), op->errorString()); return; } for(const auto &fileInfo : qAsConst(op->files())) { if(fileInfo.type == FileType::Directory) { listDirectory(fileInfo.absolutePath); } m_result.push_back(fileInfo); } if(!m_pendingCount) { finish(); } } } void GetFileTreeOperation::listDirectory(const QByteArray &path) { ++m_pendingCount; auto *op = rpc()->storageList(path); connect(op, &AbstractOperation::finished, this, &GetFileTreeOperation::nextStateLogic); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/getfiletreeoperation.h000066400000000000000000000013301452337521700310270ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" #include "fileinfo.h" class QSerialPort; namespace Flipper { namespace Zero { class GetFileTreeOperation : public AbstractUtilityOperation { Q_OBJECT enum State { Running = AbstractOperation::User }; public: GetFileTreeOperation(ProtobufSession *rpc, DeviceState *deviceState, const QByteArray &rootPath, QObject *parent = nullptr); const QString description() const override; const FileInfoList &files() const; private slots: void nextStateLogic() override; private: void listDirectory(const QByteArray &path); QByteArray m_rootPath; QByteArray m_currentPath; FileInfoList m_result; int m_pendingCount; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/pathcreateoperation.cpp000066400000000000000000000074271452337521700312200ustar00rootroot00000000000000#include "pathcreateoperation.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/storagestatoperation.h" #include "flipperzero/rpc/storagemkdiroperation.h" using namespace Flipper; using namespace Zero; PathCreateOperation::PathCreateOperation(ProtobufSession *rpc, DeviceState *deviceState, const QByteArray &remotePath, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_remotePath(remotePath), m_currentElementIndex(-1), m_lastExistingElementIndex(-1) {} const QString PathCreateOperation::description() const { return QStringLiteral("Create Path @%1").arg(QString(m_remotePath)); } bool PathCreateOperation::pathExists() const { return m_lastExistingElementIndex == m_remotePathElements.size(); } void PathCreateOperation::nextStateLogic() { if(operationState() == Ready) { setOperationState(CheckingRootElement); checkRootElement(); } else if(operationState() == CheckingRootElement) { setOperationState(CheckingRemotePath); checkRemotePath(); } else if(operationState() == CheckingRemotePath) { setOperationState(CreatingRemotePath); createRemotePath(); } else if(operationState() == CreatingRemotePath) { finish(); } else { finishWithError(BackendError::UnknownError, QStringLiteral("Unexpected state")); } } void PathCreateOperation::checkRootElement() { if(!m_remotePath.startsWith('/')) { finishWithError(BackendError::UnknownError, QStringLiteral("Path must start with the slash ('/') symbol")); return; } m_remotePathElements = m_remotePath.right(m_remotePath.size() - 1).split('/'); if(m_remotePathElements.isEmpty()) { finishWithError(BackendError::UnknownError, QStringLiteral("Path is empty")); return; } const auto &rootElement = m_remotePathElements.first(); if((rootElement != QByteArrayLiteral("ext")) && (rootElement != ("int"))) { finishWithError(BackendError::UnknownError, QStringLiteral("Invalid remote path: must start with \"int\" or \"ext\"")); } else if(m_remotePathElements.size() == 1) { finish(); } else { m_lastExistingElementIndex = 1; advanceOperationState(); } } void PathCreateOperation::checkRemotePath() { const auto currentPath = '/' + m_remotePathElements.mid(0, m_lastExistingElementIndex + 1).join('/'); auto *operation = rpc()->storageStat(currentPath); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); return; } else if(operation->type() == StorageStatOperation::RegularFile) { finishWithError(BackendError::UnknownError, QStringLiteral("Remote path %1 is a regular file").arg(QString(currentPath))); return; } else if(operation->type() == StorageStatOperation::Directory) { if(++m_lastExistingElementIndex == m_remotePathElements.size()) { finish(); } else { checkRemotePath(); } } else { m_currentElementIndex = m_lastExistingElementIndex; advanceOperationState(); } }); } void PathCreateOperation::createRemotePath() { const auto currentPath = '/' + m_remotePathElements.mid(0, m_currentElementIndex + 1).join('/'); auto *operation = rpc()->storageMkdir(currentPath); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else if(++m_currentElementIndex == m_remotePathElements.size()) { advanceOperationState(); } else { createRemotePath(); } }); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/pathcreateoperation.h000066400000000000000000000014501452337521700306530ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" namespace Flipper { namespace Zero { class PathCreateOperation : public AbstractUtilityOperation { Q_OBJECT enum OperationState { CheckingRootElement = AbstractOperation::User, CheckingRemotePath, CreatingRemotePath, }; public: PathCreateOperation(ProtobufSession *rpc, DeviceState *deviceState, const QByteArray &remotePath, QObject *parent = nullptr); const QString description() const override; bool pathExists() const; private: void nextStateLogic() override; void checkRootElement(); void checkRemotePath(); void createRemotePath(); QByteArray m_remotePath; QByteArrayList m_remotePathElements; int m_currentElementIndex; int m_lastExistingElementIndex; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/regionprovisioningoperation.cpp000066400000000000000000000125311452337521700330220ustar00rootroot00000000000000#include "regionprovisioningoperation.h" #include #include #include #include "regioninfo.h" #include "tempdirectories.h" #include "remotefilefetcher.h" #include "protobufplugininterface.h" #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/storagewriteoperation.h" Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEBUG) using namespace Flipper; using namespace Zero; RegionProvisioningOperation::RegionProvisioningOperation(ProtobufSession *rpc, DeviceState *_deviceState, QObject *parent): AbstractUtilityOperation(rpc, _deviceState, parent), m_regionInfoFile(globalTempDirs->createTempFile(this)), m_regionDataFile(globalTempDirs->createTempFile(this)) { connect(this, &AbstractOperation::started, this, [=]() { deviceState()->setStatusString(QStringLiteral("Setting up region data...")); }); } const QString RegionProvisioningOperation::description() const { return QStringLiteral("Region Provisioning @%1").arg(deviceState()->deviceInfo().name); } const QByteArray RegionProvisioningOperation::localeCountry() { const auto localeName = QLocale::system().name(); return localeName.split('_').value(1).toLocal8Bit(); } void RegionProvisioningOperation::nextStateLogic() { if(operationState() == Ready) { setOperationState(CheckingHardwareRegion); checkHardwareRegion(); } else if(operationState() == CheckingHardwareRegion) { setOperationState(FetchingRegionInfo); fetchRegionInfo(); } else if(operationState() == FetchingRegionInfo) { setOperationState(GeneratingRegionData); generateRegionData(); } else if(operationState() == GeneratingRegionData) { setOperationState(UploadingRegionData); uploadRegionData(); } else if(operationState() == UploadingRegionData) { finish(); } } void RegionProvisioningOperation::checkHardwareRegion() { const auto &hardwareInfo = deviceState()->deviceInfo().hardware; if(hardwareInfo.region == Region::Dev) { qCDebug(CATEGORY_DEBUG) << "Development hardware region detected, skipping region provisioning..."; setOperationState(UploadingRegionData); } advanceOperationState(); } void RegionProvisioningOperation::fetchRegionInfo() { static const auto apiUrl = QStringLiteral("https://update.flipperzero.one/regions/api/v0/bundle"); auto *fetcher = new RemoteFileFetcher(apiUrl, m_regionInfoFile, this); if(fetcher->isError()) { finishWithError(fetcher->error(), QStringLiteral("Failed to fetch region info file: %1").arg(fetcher->errorString())); return; } connect(fetcher, &RemoteFileFetcher::finished, this, [=]() { if(fetcher->isError()) { finishWithError(fetcher->error(), QStringLiteral("Failed to fetch region info file: %1").arg(fetcher->errorString())); } else { advanceOperationState(); } }); } void RegionProvisioningOperation::generateRegionData() { if(!m_regionInfoFile->open(QIODevice::ReadOnly)) { finishWithError(BackendError::DiskError, m_regionInfoFile->errorString()); return; } const RegionInfo regionInfo(m_regionInfoFile->readAll()); m_regionInfoFile->close(); if(!regionInfo.isValid()) { finishWithError(BackendError::DataError, QStringLiteral("Server returned invalid data")); return; } else if(regionInfo.isError()) { finishWithError(BackendError::DataError, regionInfo.errorString()); return; } const auto countryCode = regionInfo.hasCountryCode() ? regionInfo.detectedCountry() : localeCountry(); const auto bandKeys = regionInfo.countryBandKeys(countryCode); qCDebug(CATEGORY_DEBUG) << "Detected region:" << (countryCode.isEmpty() ? QByteArrayLiteral("Unknown") : countryCode); qCDebug(CATEGORY_DEBUG) << "Allowed bands:" << bandKeys; BandInfoList bands; // Convert RegionInfo::BandList to BandInfoList. Probably pointless, used only for decoupling reasons. const auto allowedBands = regionInfo.bandsByKeys(bandKeys); for(const auto &band : allowedBands) { bands.append({ band.start, band.end, band.powerLimit, band.dutyCycle }); } if(!m_regionDataFile->open(QIODevice::WriteOnly)) { finishWithError(BackendError::DiskError, m_regionDataFile->errorString()); return; } const auto regionData = rpc()->pluginInstance()->regionBands(countryCode, bands); if(regionData.isEmpty()) { finishWithError(BackendError::UnknownError, QStringLiteral("Failed to encode region data")); return; } const auto bytesWritten = m_regionDataFile->write(regionData); m_regionDataFile->close(); if((bytesWritten <= 0) || (bytesWritten != regionData.size())) { finishWithError(BackendError::DiskError, QStringLiteral("Failed to save region data to temporary file")); } else { advanceOperationState(); } } void RegionProvisioningOperation::uploadRegionData() { auto *operation = rpc()->storageWrite("/int/.region_data", m_regionDataFile); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else { advanceOperationState(); } }); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/regionprovisioningoperation.h000066400000000000000000000014571452337521700324740ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" class QFile; namespace Flipper { namespace Zero { class RegionProvisioningOperation : public AbstractUtilityOperation { Q_OBJECT enum OperationState { CheckingHardwareRegion = BasicOperationState::User, FetchingRegionInfo, GeneratingRegionData, UploadingRegionData, }; public: RegionProvisioningOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent = nullptr); const QString description() const override; private: static const QByteArray localeCountry(); void nextStateLogic() override; void checkHardwareRegion(); void fetchRegionInfo(); void generateRegionData(); void uploadRegionData(); QFile *m_regionInfoFile; QFile* m_regionDataFile; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/restartoperation.cpp000066400000000000000000000033251452337521700305550ustar00rootroot00000000000000#include "restartoperation.h" #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/systemrebootoperation.h" using namespace Flipper; using namespace Zero; RestartOperation::RestartOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent) {} const QString RestartOperation::description() const { return QStringLiteral("Restart device @%1").arg(deviceState()->name()); } void RestartOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(RestartOperation::WaitingForOSBoot); rebootDevice(); } else if(operationState() == RestartOperation::WaitingForOSBoot) { disconnect(deviceState(), &DeviceState::isOnlineChanged, this, &RestartOperation::onDeviceOnlineChanged); finish(); } else {} } void RestartOperation::onOperationTimeout() { finishWithError(BackendError::UnknownError, QStringLiteral("Failed to restart: timeout exceeded")); } void RestartOperation::onDeviceOnlineChanged() { if(deviceState()->isOnline()) { advanceOperationState(); } else { startTimeout(); } } void RestartOperation::rebootDevice() { deviceState()->setProgress(-1); deviceState()->setStatusString(QStringLiteral("Restarting device...")); connect(deviceState(), &DeviceState::isOnlineChanged, this, &RestartOperation::onDeviceOnlineChanged); auto *operation = rpc()->rebootToOS(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } }); startTimeout(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/restartoperation.h000066400000000000000000000010741452337521700302210ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" namespace Flipper { namespace Zero { class RestartOperation : public AbstractUtilityOperation { Q_OBJECT enum OperationState { WaitingForOSBoot = AbstractOperation::User }; public: RestartOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; void onOperationTimeout() override; void onDeviceOnlineChanged(); private: void rebootDevice(); }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/startrecoveryoperation.cpp000066400000000000000000000040221452337521700320000ustar00rootroot00000000000000#include "startrecoveryoperation.h" #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/systemrebootoperation.h" using namespace Flipper; using namespace Zero; StartRecoveryOperation::StartRecoveryOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent) { // Workaround for Windows taking too long to install the driver #ifdef Q_OS_WINDOWS setTimeout(120000); #endif } const QString StartRecoveryOperation::description() const { return QStringLiteral("Start Recovery Mode @%1").arg(deviceState()->name()); } void StartRecoveryOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(StartRecoveryOperation::WaitingForRecovery); startRecoveryMode(); } else if(operationState() == StartRecoveryOperation::WaitingForRecovery) { disconnect(deviceState(), &DeviceState::isOnlineChanged, this, &StartRecoveryOperation::onDeviceOnlineChanged); finish(); } else {} } void StartRecoveryOperation::onOperationTimeout() { finishWithError(BackendError::RecoveryAccessError, QStringLiteral("Failed to start recovery mode: operation timeout")); } void StartRecoveryOperation::onDeviceOnlineChanged() { if(deviceState()->isOnline()) { advanceOperationState(); } else { startTimeout(); } } void StartRecoveryOperation::startRecoveryMode() { if(deviceState()->isRecoveryMode()) { nextStateLogic(); return; } deviceState()->setStatusString(QStringLiteral("Starting Recovery mode...")); connect(deviceState(), &DeviceState::isOnlineChanged, this, &StartRecoveryOperation::onDeviceOnlineChanged); auto *operation = rpc()->rebootToRecovery(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else { startTimeout(); } }); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/startrecoveryoperation.h000066400000000000000000000011171452337521700314470ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" namespace Flipper { namespace Zero { class StartRecoveryOperation : public AbstractUtilityOperation { Q_OBJECT enum OperationState { WaitingForRecovery = AbstractOperation::User }; public: StartRecoveryOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; void onOperationTimeout() override; void onDeviceOnlineChanged(); private: void startRecoveryMode(); }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/startupdateroperation.cpp000066400000000000000000000057331452337521700316200ustar00rootroot00000000000000#include "startupdateroperation.h" #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/systemrebootoperation.h" #include "flipperzero/rpc/systemupdateoperation.h" using namespace Flipper; using namespace Zero; StartUpdaterOperation::StartUpdaterOperation(ProtobufSession *rpc, DeviceState *deviceState, const QByteArray &manifestPath, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_manifestPath(manifestPath) { // Waiting for the whole update process with no feedback setTimeout(1000*60*10); } const QString StartUpdaterOperation::description() const { return QStringLiteral("Start Update @%1").arg(deviceState()->deviceInfo().name); } void StartUpdaterOperation::onOperationTimeout() { finishWithError(BackendError::UnknownError, QStringLiteral("Failed to update: timeout exceeded")); } void StartUpdaterOperation::onDeviceOnlineChanged() { if(deviceState()->isOnline()) { advanceOperationState(); } else { startTimeout(); } } void StartUpdaterOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(StartUpdaterOperation::StartingUpdate); startUpdate(); } else if(operationState() == StartUpdaterOperation::StartingUpdate) { setOperationState(StartUpdaterOperation::RebootingToUpdater); rebootToUpdater(); } else if(operationState() == StartUpdaterOperation::RebootingToUpdater) { setOperationState(StartUpdaterOperation::WaitingForUpdate); waitForUpdate(); } else if(operationState() == StartUpdaterOperation::WaitingForUpdate) { finish(); } } void StartUpdaterOperation::startUpdate() { deviceState()->setProgress(-1.0); deviceState()->setStatusString(QStringLiteral("Initiating update procedure ...")); auto *operation = rpc()->systemUpdate(m_manifestPath); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else if(!operation->isResultOk()) { finishWithError(BackendError::UpdaterError, operation->resultString()); } else { advanceOperationState(); } }); } void StartUpdaterOperation::rebootToUpdater() { deviceState()->setStatusString(QStringLiteral("Rebooting to updater ...")); auto *operation = rpc()->rebootToUpdater(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(operation->error(), operation->errorString()); } else { advanceOperationState(); } }); } void StartUpdaterOperation::waitForUpdate() { deviceState()->setStatusString(QStringLiteral("Updating, follow the progress on your Flipper Zero")); connect(deviceState(), &DeviceState::isOnlineChanged, this, &StartUpdaterOperation::onDeviceOnlineChanged); startTimeout(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/startupdateroperation.h000066400000000000000000000013601452337521700312550ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" namespace Flipper { namespace Zero { class StartUpdaterOperation : public AbstractUtilityOperation { Q_OBJECT enum OperationState { StartingUpdate = AbstractOperation::User, RebootingToUpdater, WaitingForUpdate }; public: StartUpdaterOperation(ProtobufSession *rpc, DeviceState *deviceState, const QByteArray &manifestPath, QObject *parent = nullptr); const QString description() const override; private slots: void onOperationTimeout() override; void onDeviceOnlineChanged(); private: void nextStateLogic() override; void startUpdate(); void rebootToUpdater(); void waitForUpdate(); QByteArray m_manifestPath; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/storageinforefreshoperation.cpp000066400000000000000000000050171452337521700327700ustar00rootroot00000000000000#include "storageinforefreshoperation.h" #include #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/storageinfooperation.h" #include "flipperzero/rpc/storagestatoperation.h" using namespace Flipper; using namespace Zero; StorageInfoRefreshOperation::StorageInfoRefreshOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_storageInfo{} {} const QString StorageInfoRefreshOperation::description() const { return QStringLiteral("Refresh Storage Info @%1").arg(deviceState()->name()); } void StorageInfoRefreshOperation::nextStateLogic() { if(operationState() == AbstractOperation::Ready) { setOperationState(CheckingSDCard); checkSDCard(); } else if(operationState() == CheckingSDCard) { setOperationState(CheckingManifest); checkManifest(); } else if(operationState() == CheckingManifest) { updateStorageInfo(); finish(); } } void StorageInfoRefreshOperation::checkSDCard() { auto *operation = rpc()->storageInfo(QByteArrayLiteral("/ext")); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to check SD card: %1").arg(operation->errorString())); return; } m_storageInfo.isExternalPresent = operation->isPresent(); if(m_storageInfo.isExternalPresent) { m_storageInfo.externalFree = floor((double)operation->sizeFree() * 100.0 / (double)operation->sizeTotal()); } else { m_storageInfo.isAssetsInstalled = false; setOperationState(CheckingManifest); } advanceOperationState(); }); } void StorageInfoRefreshOperation::checkManifest() { auto *operation = rpc()->storageStat(QByteArrayLiteral("/ext/Manifest")); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::InvalidDevice, QStringLiteral("Failed to check resource manifest: %1").arg(operation->errorString())); return; } m_storageInfo.isAssetsInstalled = operation->hasFile() && (operation->type() == StorageStatOperation::RegularFile); advanceOperationState(); }); } void StorageInfoRefreshOperation::updateStorageInfo() { deviceState()->setStorageInfo(m_storageInfo); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/storageinforefreshoperation.h000066400000000000000000000012331452337521700324310ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" #include "flipperzero/deviceinfo.h" namespace Flipper { namespace Zero { class StorageInfoRefreshOperation : public AbstractUtilityOperation { Q_OBJECT enum OperationState { CheckingSDCard = AbstractOperation::User, CheckingManifest }; public: StorageInfoRefreshOperation(ProtobufSession *rpc, DeviceState *deviceState, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void checkSDCard(); void checkManifest(); void updateStorageInfo(); StorageInfo m_storageInfo; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/userbackupoperation.cpp000066400000000000000000000102111452337521700312250ustar00rootroot00000000000000#include "userbackupoperation.h" #include #include #include #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/storagereadoperation.h" #include "getfiletreeoperation.h" #include "tarzipcompressor.h" #include "tempdirectories.h" using namespace Flipper; using namespace Zero; UserBackupOperation::UserBackupOperation(ProtobufSession *rpc, DeviceState *deviceState, const QUrl &backupUrl, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_backupUrl(backupUrl), m_tempDir(QStringLiteral("%1/%2-backup-XXXXXX").arg(globalTempDirs->root().absolutePath(), deviceState->deviceInfo().name)), m_workDir(m_tempDir.path()), m_deviceDirName(QByteArrayLiteral("/int")) { m_workDir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden); m_workDir.setSorting(QDir::Name | QDir::DirsFirst); } const QString UserBackupOperation::description() const { return QStringLiteral("Backup %1 @%2").arg(m_deviceDirName, deviceState()->name()); } void UserBackupOperation::nextStateLogic() { if(operationState() == Ready) { deviceState()->setStatusString(QStringLiteral("Backing up internal storage...")); setOperationState(CreatingDirectory); createDirectory(); } else if(operationState() == CreatingDirectory) { setOperationState(GettingFileTree); getFileTree(); } else if(operationState() == GettingFileTree) { setOperationState(ReadingFiles); readFiles(); } else if(operationState() == ReadingFiles) { setOperationState(CreatingArchive); createArchive(); } else if(operationState() == CreatingArchive) { finish(); } } void UserBackupOperation::createDirectory() { if(!m_deviceDirName.startsWith('/')) { finishWithError(BackendError::UnknownError, QStringLiteral("Expecting absolute path for device directory")); } else if(!m_workDir.mkpath(m_deviceDirName.mid(1))) { finishWithError(BackendError::DiskError, QStringLiteral("Failed to create backup directory")); } else { advanceOperationState(); } } void UserBackupOperation::getFileTree() { auto *operation = new GetFileTreeOperation(rpc(), deviceState(), m_deviceDirName, this); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { finishWithError(BackendError::BackupError, operation->errorString()); } else { m_fileList = operation->files(); advanceOperationState(); } operation->deleteLater(); }); operation->start(); } void UserBackupOperation::readFiles() { auto numFiles = std::count_if(m_fileList.cbegin(), m_fileList.cend(), [](const FileInfo &arg) { return arg.type == FileType::RegularFile; }); for(const auto &fileInfo: qAsConst(m_fileList)) { const auto filePath = fileInfo.absolutePath.mid(1); if(fileInfo.type == FileType::Directory) { if(!m_workDir.mkdir(filePath)) { finishWithError(BackendError::DiskError, QStringLiteral("Failed to create directory: %1").arg(QString(filePath))); return; } } else if(fileInfo.type == FileType::RegularFile) { const auto isLastFile = (--numFiles == 0); auto *file = new QFile(m_workDir.absoluteFilePath(filePath), this); auto *op = rpc()->storageRead(fileInfo.absolutePath, file); connect(op, &AbstractOperation::finished, this, [=]() { if(op->isError()) { finishWithError(BackendError::BackupError, op->errorString()); } else if(isLastFile) { advanceOperationState(); } }); } } } void UserBackupOperation::createArchive() { auto *compressor = new TarZipCompressor(m_workDir, m_backupUrl, this); connect(compressor, &TarZipCompressor::finished, this, [=]() { if(compressor->isError()) { finishWithError(compressor->error(), compressor->errorString()); } else { advanceOperationState(); } }); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/userbackupoperation.h000066400000000000000000000015611452337521700307020ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" #include #include #include #include "fileinfo.h" namespace Flipper { namespace Zero { class UserBackupOperation : public AbstractUtilityOperation { Q_OBJECT enum State { CreatingDirectory = AbstractOperation::User, GettingFileTree, ReadingFiles, CreatingArchive, }; public: UserBackupOperation(ProtobufSession *rpc, DeviceState *deviceState, const QUrl &backupUrl, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: void createDirectory(); void getFileTree(); void readFiles(); void createArchive(); QUrl m_backupUrl; QTemporaryDir m_tempDir; QDir m_workDir; QByteArray m_deviceDirName; FileInfoList m_fileList; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/userrestoreoperation.cpp000066400000000000000000000114141452337521700314510ustar00rootroot00000000000000#include "userrestoreoperation.h" #include #include #include "flipperzero/devicestate.h" #include "flipperzero/protobufsession.h" #include "flipperzero/rpc/storagemkdiroperation.h" #include "flipperzero/rpc/storagewriteoperation.h" #include "flipperzero/rpc/storageremoveoperation.h" #include "tarzipuncompressor.h" #include "tempdirectories.h" using namespace Flipper; using namespace Zero; UserRestoreOperation::UserRestoreOperation(ProtobufSession *rpc, DeviceState *deviceState, const QUrl &backupUrl, QObject *parent): AbstractUtilityOperation(rpc, deviceState, parent), m_backupUrl(backupUrl), m_tempDir(QStringLiteral("%1/%2-backup-XXXXXX").arg(globalTempDirs->root().absolutePath(), deviceState->deviceInfo().name)), m_workDir(m_tempDir.path()), m_remoteDirName(QByteArrayLiteral("/int")) { m_workDir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden); m_workDir.setSorting(QDir::Name | QDir::DirsFirst); } const QString UserRestoreOperation::description() const { return QStringLiteral("Restore %1 @%2").arg(m_remoteDirName, deviceState()->name()); } void UserRestoreOperation::nextStateLogic() { if(operationState() == Ready) { setOperationState(UncompressingArchive); uncompressArchive(); } else if(operationState() == UncompressingArchive) { setOperationState(State::ReadingBackupDir); readBackupDir(); } else if(operationState() == State::ReadingBackupDir) { setOperationState(State::DeletingFiles); deleteFiles(); } else if(operationState() == State::DeletingFiles) { setOperationState(State::WritingFiles); writeFiles(); } else if(operationState() == State::WritingFiles) { finish(); } } void UserRestoreOperation::uncompressArchive() { auto *tarZipFile = new QFile(m_backupUrl.toLocalFile(), this); auto *uncompressor = new TarZipUncompressor(tarZipFile, m_workDir, this); if(uncompressor->isError()) { finishWithError(uncompressor->error(), uncompressor->errorString()); return; } connect(uncompressor, &TarZipUncompressor::finished, this, [=]() { if(uncompressor->isError()) { finishWithError(uncompressor->error(), uncompressor->errorString()); } else { advanceOperationState(); } }); } void UserRestoreOperation::readBackupDir() { if(!m_workDir.exists(m_remoteDirName.mid(1))) { finishWithError(BackendError::DiskError, QStringLiteral("No matching backup directory")); return; } QDirIterator it(m_workDir, QDirIterator::Subdirectories); while(it.hasNext()) { m_files.append(QFileInfo(it.next())); } if(m_files.isEmpty()) { finishWithError(BackendError::DiskError, QStringLiteral("Backup directory is empty")); } else { advanceOperationState(); } } void UserRestoreOperation::deleteFiles() { deviceState()->setStatusString(tr("Cleaning up...")); auto numFiles = m_files.size(); for(const auto &fileInfo : qAsConst(m_files)) { const auto filePath = QByteArrayLiteral("/") + m_workDir.relativeFilePath(fileInfo.absoluteFilePath()).toLocal8Bit(); const auto isLastFile = (--numFiles == 0); auto *op = rpc()->storageRemove(filePath); connect(op, &AbstractOperation::finished, this, [=]() { if(op->isError()) { finishWithError(BackendError::OperationError, op->errorString()); } else if(isLastFile) { advanceOperationState(); } }); } } void UserRestoreOperation::writeFiles() { deviceState()->setStatusString(tr("Restoring backup...")); auto numFiles = m_files.size(); for(const auto &fileInfo: qAsConst(m_files)) { const auto filePath = QByteArrayLiteral("/") + m_workDir.relativeFilePath(fileInfo.absoluteFilePath()).toLocal8Bit(); const auto isLastFile = (--numFiles == 0); AbstractOperation *op; if(fileInfo.isFile()) { auto *file = new QFile(fileInfo.absoluteFilePath(), this); op = rpc()->storageWrite(filePath, file); connect(op, &AbstractOperation::finished, this, [=]() { file->deleteLater(); }); } else if(fileInfo.isDir()) { op = rpc()->storageMkdir(filePath); } else { finishWithError(BackendError::UnknownError, QStringLiteral("Expected a file or a directory")); return; } connect(op, &AbstractOperation::finished, this, [=]() { if(op->isError()) { finishWithError(BackendError::OperationError, op->errorString()); } else if(isLastFile) { advanceOperationState(); } op->deleteLater(); }); } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utility/userrestoreoperation.h000066400000000000000000000015671452337521700311260ustar00rootroot00000000000000#pragma once #include "abstractutilityoperation.h" #include #include #include #include namespace Flipper { namespace Zero { class UserRestoreOperation : public AbstractUtilityOperation { Q_OBJECT enum State { UncompressingArchive = AbstractOperation::User, ReadingBackupDir, DeletingFiles, WritingFiles }; public: UserRestoreOperation(ProtobufSession *rpc, DeviceState *deviceState, const QUrl &backupUrl, QObject *parent = nullptr); const QString description() const override; private slots: void nextStateLogic() override; private: QUrl m_backupUrl; QTemporaryDir m_tempDir; QDir m_workDir; QByteArray m_remoteDirName; QFileInfoList m_files; void uncompressArchive(); void readBackupDir(); void deleteFiles(); void writeFiles(); }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/utilityinterface.cpp000066400000000000000000000101431452337521700270250ustar00rootroot00000000000000#include "utilityinterface.h" #include #include "flipperzero/utility/restartoperation.h" #include "flipperzero/utility/userbackupoperation.h" #include "flipperzero/utility/userrestoreoperation.h" #include "flipperzero/utility/startrecoveryoperation.h" #include "flipperzero/utility/assetsdownloadoperation.h" #include "flipperzero/utility/factoryresetutiloperation.h" #include "flipperzero/utility/filesuploadoperation.h" #include "flipperzero/utility/directorydownloadoperation.h" #include "flipperzero/utility/pathcreateoperation.h" #include "flipperzero/utility/startupdateroperation.h" #include "flipperzero/utility/storageinforefreshoperation.h" #include "flipperzero/utility/regionprovisioningoperation.h" #include "flipperzero/utility/checksumverifyoperation.h" Q_LOGGING_CATEGORY(LOG_UTILITY, "UTL") using namespace Flipper; using namespace Zero; UtilityInterface::UtilityInterface(DeviceState *deviceState, ProtobufSession *rpc, QObject *parent): AbstractOperationRunner(parent), m_deviceState(deviceState), m_rpc(rpc) {} StartRecoveryOperation *UtilityInterface::startRecoveryMode() { auto *operation = new StartRecoveryOperation(m_rpc, m_deviceState, this); enqueueOperation(operation); return operation; } AssetsDownloadOperation *UtilityInterface::downloadAssets(QIODevice *compressedFile) { auto *operation = new AssetsDownloadOperation(m_rpc, m_deviceState, compressedFile, this); enqueueOperation(operation); return operation; } UserBackupOperation *UtilityInterface::backupInternalStorage(const QUrl &backupUrl) { auto *operation = new UserBackupOperation(m_rpc, m_deviceState, backupUrl, this); enqueueOperation(operation); return operation; } UserRestoreOperation *UtilityInterface::restoreInternalStorage(const QUrl &backupUrl) { auto *operation = new UserRestoreOperation(m_rpc, m_deviceState, backupUrl, this); enqueueOperation(operation); return operation; } RestartOperation *UtilityInterface::restartDevice() { auto *operation = new RestartOperation(m_rpc, m_deviceState, this); enqueueOperation(operation); return operation; } FactoryResetUtilOperation *UtilityInterface::factoryReset() { auto *operation = new FactoryResetUtilOperation(m_rpc, m_deviceState, this); enqueueOperation(operation); return operation; } FilesUploadOperation *UtilityInterface::uploadFiles(const QList &fileUrls, const QByteArray &remotePath) { auto *operation = new FilesUploadOperation(m_rpc, m_deviceState, fileUrls, remotePath, this); enqueueOperation(operation); return operation; } DirectoryDownloadOperation *UtilityInterface::downloadDirectory(const QString &localDirectory, const QByteArray &remotePath) { auto *operation = new DirectoryDownloadOperation(m_rpc, m_deviceState, localDirectory, remotePath, this); enqueueOperation(operation); return operation; } PathCreateOperation *UtilityInterface::createPath(const QByteArray &remotePath) { auto *operation = new PathCreateOperation(m_rpc, m_deviceState, remotePath, this); enqueueOperation(operation); return operation; } StartUpdaterOperation *UtilityInterface::startUpdater(const QByteArray &manifestPath) { auto *operation = new StartUpdaterOperation(m_rpc, m_deviceState, manifestPath, this); enqueueOperation(operation); return operation; } StorageInfoRefreshOperation *UtilityInterface::refreshStorageInfo() { auto *operation = new StorageInfoRefreshOperation(m_rpc, m_deviceState, this); enqueueOperation(operation); return operation; } RegionProvisioningOperation *UtilityInterface::provisionRegionData() { auto *operation = new RegionProvisioningOperation(m_rpc, m_deviceState, this); enqueueOperation(operation); return operation; } ChecksumVerifyOperation *UtilityInterface::verifyChecksum(const QList &urlsToCheck, const QByteArray &remoteRootPath) { auto *operation = new ChecksumVerifyOperation(m_rpc, m_deviceState, urlsToCheck, remoteRootPath, this); enqueueOperation(operation); return operation; } const QLoggingCategory &UtilityInterface::loggingCategory() const { return LOG_UTILITY(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/utilityinterface.h000066400000000000000000000033731452337521700265010ustar00rootroot00000000000000#pragma once #include "abstractoperationrunner.h" class QIODevice; namespace Flipper { namespace Zero { class DeviceState; class ProtobufSession; class FilesUploadOperation; class DirectoryDownloadOperation; class FactoryResetUtilOperation; class StartRecoveryOperation; class AssetsDownloadOperation; class UserBackupOperation; class UserRestoreOperation; class RestartOperation; class PathCreateOperation; class StartUpdaterOperation; class StorageInfoRefreshOperation; class RegionProvisioningOperation; class ChecksumVerifyOperation; class UtilityInterface : public AbstractOperationRunner { Q_OBJECT public: UtilityInterface(DeviceState *deviceState, ProtobufSession *rpc, QObject *parent = nullptr); StartRecoveryOperation *startRecoveryMode(); AssetsDownloadOperation *downloadAssets(QIODevice *compressedFile); UserBackupOperation *backupInternalStorage(const QUrl &backupUrl); UserRestoreOperation *restoreInternalStorage(const QUrl &backupUrl); RestartOperation *restartDevice(); FactoryResetUtilOperation *factoryReset(); FilesUploadOperation *uploadFiles(const QList &fileUrls, const QByteArray &remotePath); DirectoryDownloadOperation *downloadDirectory(const QString &localDirectory, const QByteArray &remotePath); PathCreateOperation *createPath(const QByteArray &remotePath); StartUpdaterOperation *startUpdater(const QByteArray &manifestPath); StorageInfoRefreshOperation *refreshStorageInfo(); RegionProvisioningOperation *provisionRegionData(); ChecksumVerifyOperation *verifyChecksum(const QList &urlsToCheck, const QByteArray &remoteRootPath); private: const QLoggingCategory &loggingCategory() const override; DeviceState *m_deviceState; ProtobufSession *m_rpc; }; } } flipperdevices-qFlipper-bfce851/backend/flipperzero/virtualdisplay.cpp000066400000000000000000000052301452337521700265160ustar00rootroot00000000000000#include "virtualdisplay.h" #include #include #include "flipperzero.h" #include "devicestate.h" #include "protobufsession.h" #include "rpc/guistartvirtualdisplayoperation.h" #include "rpc/guistopvirtualdisplayoperation.h" #include "rpc/guiscreenframeoperation.h" Q_LOGGING_CATEGORY(LOG_VIRTDISPLAY, "DPY") using namespace Flipper; using namespace Zero; VirtualDisplay::VirtualDisplay(QObject *parent): QObject(parent), m_displayState(DisplayState::Stopped), m_device(nullptr) {} void VirtualDisplay::setDevice(FlipperZero *device) { if(device == m_device) { return; } m_device = device; if(device) { connect(device->rpc(), &ProtobufSession::sessionStateChanged, this, &VirtualDisplay::onProtobufSessionStateChanged); } } VirtualDisplay::DisplayState VirtualDisplay::displayState() const { return m_displayState; } void VirtualDisplay::start(const QByteArray &firstFrame) { if(m_displayState != DisplayState::Stopped) { return; } setDisplayState(DisplayState::Starting); auto *operation = m_device->rpc()->guiStartVirtualDisplay(firstFrame); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { qCDebug(LOG_VIRTDISPLAY).noquote() << "Failed to start virtual display:" << operation->errorString(); setDisplayState(DisplayState::Stopped); } else { setDisplayState(DisplayState::Running); } }); } void VirtualDisplay::sendFrame(const QByteArray &screenFrame) { auto *operation = m_device->rpc()->guiSendScreenFrame(screenFrame); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { qCDebug(LOG_VIRTDISPLAY).noquote() << "Failed to send screen frame:" << operation->errorString(); } }); } void VirtualDisplay::stop() { if(m_displayState != DisplayState::Running) { return; } setDisplayState(DisplayState::Stopping); auto *operation = m_device->rpc()->guiStopVirtualDisplay(); connect(operation, &AbstractOperation::finished, this, [=]() { if(operation->isError()) { qCDebug(LOG_VIRTDISPLAY).noquote() << "Failed to stop virtual display:" << operation->errorString(); } setDisplayState(DisplayState::Stopped); }); } void VirtualDisplay::onProtobufSessionStateChanged() { if(!m_device->rpc()->isSessionUp()) { setDisplayState(Stopped); } } void VirtualDisplay::setDisplayState(DisplayState newState) { if(newState == m_displayState) { return; } m_displayState = newState; emit displayStateChanged(); } flipperdevices-qFlipper-bfce851/backend/flipperzero/virtualdisplay.h000066400000000000000000000014441452337521700261660ustar00rootroot00000000000000#pragma once #include #include namespace Flipper { class FlipperZero; namespace Zero { class VirtualDisplay : public QObject { Q_OBJECT public: enum DisplayState { Starting, Running, Stopping, Stopped }; Q_ENUM(DisplayState) VirtualDisplay(QObject *parent = nullptr); void setDevice(FlipperZero *device); DisplayState displayState() const; signals: void displayStateChanged(); public slots: void start(const QByteArray &firstFrame = QByteArray()); void sendFrame(const QByteArray &screenFrame); void stop(); private slots: void onProtobufSessionStateChanged(); private: void setDisplayState(DisplayState newState); DisplayState m_displayState; FlipperZero *m_device; }; } } flipperdevices-qFlipper-bfce851/backend/gzipcompressor.cpp000066400000000000000000000056111452337521700241720ustar00rootroot00000000000000#include "gzipcompressor.h" #include #include #include #include #include #include Q_DECLARE_LOGGING_CATEGORY(LOG_UNZIP) #define CHUNK_SIZE 1024 GZipCompressor::GZipCompressor(QIODevice *in, QIODevice *out, QObject *parent): QObject(parent), m_in(in), m_out(out), m_progress(0) { if(!m_in->open(QIODevice::ReadOnly)) { setError(BackendError::DiskError, m_in->errorString()); return; } else if(!m_out->open(QIODevice::WriteOnly)) { setError(BackendError::DiskError, m_out->errorString()); return; } auto *watcher = new QFutureWatcher(this); connect(watcher, &QFutureWatcherBase::finished, this, [=]() { qCDebug(LOG_UNZIP).noquote() << "Compression finished:" << errorString(); watcher->deleteLater(); emit finished(); }); #if QT_VERSION < 0x060000 watcher->setFuture(QtConcurrent::run(this, &GZipCompressor::doCompress)); #else watcher->setFuture(QtConcurrent::run(&GZipCompressor::doCompress, this)); #endif } double GZipCompressor::progress() const { return m_progress; } void GZipCompressor::setProgress(double progress) { if(qFuzzyCompare(m_progress, progress)) { return; } m_progress = progress; emit progressChanged(); } void GZipCompressor::doCompress() { const auto totalSize = m_in->bytesAvailable(); if(!totalSize) { setError(BackendError::DataError, QStringLiteral("The input file is empty")); return; } qCDebug(LOG_UNZIP) << "Compressing file with size of" << totalSize << "bytes..."; z_stream stream; stream.zalloc = Z_NULL; stream.zfree = Z_NULL; stream.opaque = Z_NULL; const auto err = deflateInit2(&stream, Z_DEFAULT_COMPRESSION, Z_DEFLATED, 15 | 16, 8, Z_DEFAULT_STRATEGY); if(err != Z_OK) { setError(BackendError::UnknownError, QStringLiteral("Failed to initialise deflate method")); return; } char inbuf[CHUNK_SIZE]; char outbuf[CHUNK_SIZE]; int flushMode; do { const auto n = m_in->read(inbuf, CHUNK_SIZE); stream.avail_in = n; stream.next_in = (Bytef*)inbuf; flushMode = m_in->bytesAvailable() ? Z_NO_FLUSH : Z_FINISH; do { stream.avail_out = CHUNK_SIZE; stream.next_out = (Bytef*)outbuf; const auto err = deflate(&stream, flushMode); if(err == Z_STREAM_ERROR) { deflateEnd(&stream); setError(BackendError::DataError, QStringLiteral("Error during compression")); return; } m_out->write(outbuf, CHUNK_SIZE - stream.avail_out); } while(!stream.avail_out); } while(flushMode != Z_FINISH); deflateEnd(&stream); closeFiles(); } void GZipCompressor::closeFiles() { m_in->close(); m_out->close(); } flipperdevices-qFlipper-bfce851/backend/gzipcompressor.h000066400000000000000000000007501452337521700236360ustar00rootroot00000000000000#pragma once #include #include "failable.h" class QIODevice; class GZipCompressor : public QObject, public Failable { Q_OBJECT public: GZipCompressor(QIODevice *in, QIODevice *out, QObject *parent = nullptr); double progress() const; signals: void finished(); void progressChanged(); private: void setProgress(double progress); void doCompress(); void closeFiles(); QIODevice *m_in; QIODevice *m_out; double m_progress; }; flipperdevices-qFlipper-bfce851/backend/gzipuncompressor.cpp000066400000000000000000000060501452337521700245330ustar00rootroot00000000000000#include "gzipuncompressor.h" #include #include #include #include #include #include Q_LOGGING_CATEGORY(LOG_UNZIP, "ZIP") #define CHUNK_SIZE 1024 GZipUncompressor::GZipUncompressor(QIODevice *in, QIODevice *out, QObject *parent): QObject(parent), m_in(in), m_out(out), m_progress(0) { if(!m_in->open(QIODevice::ReadOnly)) { setError(BackendError::DiskError, m_in->errorString()); return; } else if(!m_out->open(QIODevice::WriteOnly)) { setError(BackendError::DiskError, m_out->errorString()); return; } auto *watcher = new QFutureWatcher(this); connect(watcher, &QFutureWatcherBase::finished, this, [=]() { qCDebug(LOG_UNZIP).noquote() << "Uncompression finished :" << errorString(); watcher->deleteLater(); emit finished(); }); #if QT_VERSION < 0x060000 watcher->setFuture(QtConcurrent::run(this, &GZipUncompressor::doUncompress)); #else watcher->setFuture(QtConcurrent::run(&GZipUncompressor::doUncompress, this)); #endif } GZipUncompressor::~GZipUncompressor() {} double GZipUncompressor::progress() const { return m_progress; } void GZipUncompressor::setProgress(double progress) { if(qFuzzyCompare(m_progress, progress)) { return; } m_progress = progress; emit progressChanged(); } void GZipUncompressor::doUncompress() { if(m_in->bytesAvailable() <= 4) { setError(BackendError::DataError, QStringLiteral("The input file is empty")); return; } const auto totalSize = m_in->bytesAvailable(); qCDebug(LOG_UNZIP) << "Uncompressing file with size of" << totalSize << "bytes..."; z_stream stream; stream.zalloc = Z_NULL; stream.zfree = Z_NULL; stream.opaque = Z_NULL; stream.avail_in = 0; stream.next_in = Z_NULL; const auto err = inflateInit2(&stream, 15 + 16); if(err != Z_OK) { setError(BackendError::UnknownError, QStringLiteral("Failed to initialise deflate method")); return; } char inbuf[CHUNK_SIZE]; char outbuf[CHUNK_SIZE]; do { const auto n = m_in->read(inbuf, CHUNK_SIZE); stream.avail_in = n; stream.next_in = (Bytef*)inbuf; do { stream.avail_out = CHUNK_SIZE; stream.next_out = (Bytef*)outbuf; const auto err = inflate(&stream, Z_NO_FLUSH); const auto errorOccured = (err == Z_MEM_ERROR) || (err == Z_DATA_ERROR) || (err == Z_NEED_DICT); if(errorOccured) { inflateEnd(&stream); setError(BackendError::DataError, QStringLiteral("Error during uncompression")); return; } m_out->write(outbuf, CHUNK_SIZE - stream.avail_out); } while(!stream.avail_out); setProgress(progress() + (100.0 * n) / totalSize); } while(m_in->bytesAvailable()); inflateEnd(&stream); closeFiles(); } void GZipUncompressor::closeFiles() { m_in->close(); m_out->close(); } flipperdevices-qFlipper-bfce851/backend/gzipuncompressor.h000066400000000000000000000010101452337521700241670ustar00rootroot00000000000000#pragma once #include #include "failable.h" class QIODevice; class GZipUncompressor : public QObject, public Failable { Q_OBJECT public: GZipUncompressor(QIODevice *in, QIODevice* out, QObject *parent = nullptr); ~GZipUncompressor(); double progress() const; signals: void finished(); void progressChanged(); private: void setProgress(double progress); void doUncompress(); void closeFiles(); QIODevice *m_in; QIODevice *m_out; double m_progress; }; flipperdevices-qFlipper-bfce851/backend/inputevent.h000066400000000000000000000012571452337521700227540ustar00rootroot00000000000000#pragma once #include class InputEvent : public QObject { Q_OBJECT public: enum Key { Up, Down, Right, Left, Ok, Back, }; Q_ENUM(Key) enum Type { Press, /* Press event, emitted after debounce */ Release, /* Release event, emitted after debounce */ Short, /* Short event, emitted after InputTypeRelease done withing INPUT_LONG_PRESS interval */ Long, /* Long event, emitted after INPUT_LONG_PRESS interval, asynchronous to InputTypeRelease */ Repeat, /* Repeat event, emitted with INPUT_REPEAT_PRESS period after InputTypeLong event */ }; Q_ENUM(Type) }; flipperdevices-qFlipper-bfce851/backend/logger.cpp000066400000000000000000000105001452337521700223540ustar00rootroot00000000000000#include "logger.h" #include #include #include #include #include #include #include Q_LOGGING_CATEGORY(CATEGORY_LOGGER, "LOG") Logger::Logger(QObject *parent): QObject(parent), m_logDir(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation)), m_logFile(new QFile(this)), m_updateTimer(new QTimer(this)), m_stderr(stderr, QIODevice::WriteOnly), m_fileOut(m_logFile), m_startTime(QDateTime::currentDateTime()), m_logLevel(Default), m_maxLineCount(200), m_errorCount(0) { m_updateTimer->setSingleShot(true); m_updateTimer->setInterval(100); connect(m_updateTimer, &QTimer::timeout, this, &Logger::logTextChanged); m_logDir.mkdir(APP_NAME); if(!m_logDir.exists(APP_NAME)) { fallbackMessageOutput(QStringLiteral("Failed to create logs directory")); return; } else if(!m_logDir.cd(APP_NAME)) { fallbackMessageOutput(QStringLiteral("Failed to access logs directory")); return; } else if(!removeOldFiles()) { fallbackMessageOutput(QStringLiteral("Failed to remove old files")); return; } const auto fileName = QStringLiteral("%1-%2.txt").arg(APP_NAME, m_startTime.toString(QStringLiteral("yyyyMMdd-hhmmss"))); const auto filePath = m_logDir.absoluteFilePath(fileName); m_logFile->setFileName(filePath); if(!m_logFile->open(QIODevice::WriteOnly)) { fallbackMessageOutput(QStringLiteral("Failed to open log file: %1").arg(m_logFile->errorString())); } } Logger *Logger::instance() { static auto *logger = new Logger(); return logger; } void Logger::messageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) { const auto text = QStringLiteral("[%1] %2").arg(context.category, msg); const auto criticalText = QStringLiteral("%1"); const auto timestamp = QString::number(globalLogger->m_startTime.msecsTo(QDateTime::currentDateTime())); // Writing everything in the file regardless of the log level if(globalLogger->m_logFile->isOpen()) { globalLogger->m_fileOut << timestamp << ' ' << text << Qt::endl; } const auto filterNonError = globalLogger->m_logLevel == ErrorsOnly && type != QtCriticalMsg; const auto filterDebug = globalLogger->m_logLevel == Terse && type == QtDebugMsg; if(filterNonError || filterDebug) { return; } globalLogger->m_stderr << timestamp << ' ' << text << Qt::endl; const auto filterWithoutCategory = !strcmp(context.category, "default"); const auto filterPretty = type == QtDebugMsg; if(filterWithoutCategory || filterPretty) { return; } globalLogger->append(type == QtCriticalMsg ? criticalText.arg(text) : text); globalLogger->setErrorCount(globalLogger->errorCount() + (type == QtCriticalMsg ? 1 : 0)); } const QUrl Logger::logsPath() const { return QUrl::fromLocalFile(m_logDir.absolutePath()); } const QUrl Logger::logsFile() const { return QUrl::fromLocalFile(m_logFile->fileName()); } int Logger::errorCount() const { return m_errorCount; } void Logger::setErrorCount(int count) { if(m_errorCount == count) { return; } m_errorCount = count; emit errorCountChanged(); } QString Logger::logText() const { return m_logText.join("
"); } void Logger::setLogLevel(LogLevel level) { m_logLevel = level; } void Logger::append(const QString &line) { m_logText.append(line); if(m_logText.size() > m_maxLineCount) { m_logText.removeFirst(); } if(!m_updateTimer->isActive()) { m_updateTimer->start(); } } void Logger::fallbackMessageOutput(const QString &msg) { m_stderr << '[' << CATEGORY_LOGGER().categoryName() << "] " << msg << Qt::endl; } bool Logger::removeOldFiles() { constexpr auto maxFileCount = 99; const auto files = m_logDir.entryInfoList(QDir::Files, QDir::Time | QDir::Reversed); const auto excessFileCount = files.size() - maxFileCount; for(auto i = 0; i < excessFileCount; ++i) { const auto &fileInfo = files.at(i); if(!m_logDir.remove(fileInfo.fileName())) { fallbackMessageOutput(QStringLiteral("Failed to remove file: %1").arg(fileInfo.fileName())); return false; } } return true; } flipperdevices-qFlipper-bfce851/backend/logger.h000066400000000000000000000027471452337521700220370ustar00rootroot00000000000000#pragma once #include #include #include #include #include #include class QFile; class QTimer; class Logger : public QObject { Q_OBJECT Q_PROPERTY(QUrl logsPath READ logsPath CONSTANT) Q_PROPERTY(QUrl logsFile READ logsFile CONSTANT) Q_PROPERTY(int errorCount READ errorCount WRITE setErrorCount NOTIFY errorCountChanged) Q_PROPERTY(QString logText READ logText NOTIFY logTextChanged) Logger(QObject *parent = nullptr); public: enum LogLevel { ErrorsOnly, //< Only display qCritical messages Terse, //< No qDebug messages Default //< Display everything }; static Logger *instance(); static void messageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg); const QUrl logsPath() const; const QUrl logsFile() const; int errorCount() const; void setErrorCount(int count); QString logText() const; void setLogLevel(LogLevel level); signals: void logTextChanged(); void errorCountChanged(); private: void append(const QString &line); void fallbackMessageOutput(const QString &msg); bool removeOldFiles(); QDir m_logDir; QFile *m_logFile; QTimer *m_updateTimer; QTextStream m_stderr; QTextStream m_fileOut; QDateTime m_startTime; LogLevel m_logLevel; QStringList m_logText; int m_maxLineCount; int m_errorCount; }; #define globalLogger (Logger::instance()) flipperdevices-qFlipper-bfce851/backend/preferences.cpp000066400000000000000000000056561452337521700234160ustar00rootroot00000000000000#include "preferences.h" #include #define FIRMWARE_UPDATE_CHANNEL_KEY (QStringLiteral("FirmwareUpdateChannel")) #define APPLICATION_UPDATE_CHANNEL_KEY (QStringLiteral("ApplicationUpdateChannel")) #define CHECK_APPLICATION_UPDATES_KEY (QStringLiteral("CheckApplicatonUpdates")) #define SHOW_HIDDEN_FILES_KEY (QStringLiteral("ShowHiddenFiles")) #define LAST_FOLDER_URL_KEY (QStringLiteral("LastFolderUrl")) #define SET_DEFAULT_VALUE(key, value)\ if(!m_settings.contains(key)) {\ m_settings.setValue(key, value);\ } Preferences::Preferences(QObject *parent): QObject(parent) { SET_DEFAULT_VALUE(FIRMWARE_UPDATE_CHANNEL_KEY, QStringLiteral("release")); SET_DEFAULT_VALUE(APPLICATION_UPDATE_CHANNEL_KEY, QStringLiteral("release")); SET_DEFAULT_VALUE(CHECK_APPLICATION_UPDATES_KEY, true); SET_DEFAULT_VALUE(SHOW_HIDDEN_FILES_KEY, false); SET_DEFAULT_VALUE(LAST_FOLDER_URL_KEY, QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); } Preferences *Preferences::instance() { static auto *prefs = new Preferences(); return prefs; } const QString Preferences::firmwareUpdateChannel() const { return m_settings.value(FIRMWARE_UPDATE_CHANNEL_KEY).toString(); } void Preferences::setFirmwareUpdateChannel(const QString &newUpdateChannel) { if(newUpdateChannel == firmwareUpdateChannel()) { return; } m_settings.setValue(FIRMWARE_UPDATE_CHANNEL_KEY, newUpdateChannel); emit firmwareUpdateChannelChanged(); } const QString Preferences::applicationUpdateChannel() const { return m_settings.value(APPLICATION_UPDATE_CHANNEL_KEY).toString(); } void Preferences::setApplicationUpdateChannel(const QString &newUpdateChannel) { if(newUpdateChannel == applicationUpdateChannel()) { return; } m_settings.setValue(APPLICATION_UPDATE_CHANNEL_KEY, newUpdateChannel); emit applicationUpdateChannelChanged(); } bool Preferences::checkApplicationUpdates() const { #ifndef DISABLE_APPLICATION_UPDATES return m_settings.value(CHECK_APPLICATION_UPDATES_KEY).toBool(); #else return false; #endif } void Preferences::setCheckApplicationUpdates(bool set) { if(set == checkApplicationUpdates()) { return; } m_settings.setValue(CHECK_APPLICATION_UPDATES_KEY, set); emit checkApplicationUpdatesChanged(); } bool Preferences::showHiddenFiles() const { return m_settings.value(SHOW_HIDDEN_FILES_KEY).toBool(); } void Preferences::setShowHiddenFiles(bool set) { if(set == showHiddenFiles()) { return; } m_settings.setValue(SHOW_HIDDEN_FILES_KEY, set); emit showHiddenFilesChanged(); } QUrl Preferences::lastFolderUrl() const { return QUrl::fromLocalFile(m_settings.value(LAST_FOLDER_URL_KEY).toString()); } void Preferences::setLastFolderUrl(const QUrl &url) { if(url == lastFolderUrl()) { return; } m_settings.setValue(LAST_FOLDER_URL_KEY, url.toLocalFile()); emit lastFolderUrlChanged(); } flipperdevices-qFlipper-bfce851/backend/preferences.h000066400000000000000000000027511452337521700230540ustar00rootroot00000000000000#pragma once #include #include #include class Preferences : public QObject { Q_OBJECT Q_PROPERTY(QString updateChannel READ firmwareUpdateChannel WRITE setFirmwareUpdateChannel NOTIFY firmwareUpdateChannelChanged) Q_PROPERTY(QString appUpdateChannel READ applicationUpdateChannel WRITE setApplicationUpdateChannel NOTIFY applicationUpdateChannelChanged) Q_PROPERTY(bool checkAppUpdates READ checkApplicationUpdates WRITE setCheckApplicationUpdates NOTIFY checkApplicationUpdatesChanged) Q_PROPERTY(bool showHiddenFiles READ showHiddenFiles WRITE setShowHiddenFiles NOTIFY showHiddenFilesChanged) Preferences(QObject *parent = nullptr); public: static Preferences *instance(); const QString firmwareUpdateChannel() const; void setFirmwareUpdateChannel(const QString &newUpdateChannel); const QString applicationUpdateChannel() const; void setApplicationUpdateChannel(const QString &newUpdateChannel); bool checkApplicationUpdates() const; void setCheckApplicationUpdates(bool set); bool showHiddenFiles() const; void setShowHiddenFiles(bool set); QUrl lastFolderUrl() const; void setLastFolderUrl(const QUrl &url); signals: void firmwareUpdateChannelChanged(); void applicationUpdateChannelChanged(); void checkApplicationUpdatesChanged(); void showHiddenFilesChanged(); void lastFolderUrlChanged(); private: QSettings m_settings; }; #define globalPrefs (Preferences::instance()) flipperdevices-qFlipper-bfce851/backend/regioninfo.cpp000066400000000000000000000155241452337521700232470ustar00rootroot00000000000000#include "regioninfo.h" #include #include #include #include #include Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEBUG) RegionInfo::RegionInfo(): m_isValid(false) {} RegionInfo::RegionInfo(const QByteArray &text) { const auto doc = QJsonDocument::fromJson(text); if(doc.isNull()) { qCCritical(CATEGORY_DEBUG) << "Failed to parse the document"; return; } else if(!doc.isObject()) { qCCritical(CATEGORY_DEBUG) << "Json document is not an object"; return; } static const auto errorKey = QStringLiteral("error"); static const auto successKey = QStringLiteral("success"); const auto obj = doc.object(); if(obj.contains(errorKey)) { parseError(obj.value(errorKey)); } else if(obj.contains(successKey)) { parseSuccess(obj.value(successKey)); } else { qCCritical(CATEGORY_DEBUG) << "Got valid JSON object, but neither success nor error info"; } } bool RegionInfo::isValid() const { return m_isValid; } bool RegionInfo::isError() const { return m_isError; } bool RegionInfo::hasCountryCode() const { return !m_country.isEmpty(); } const QString &RegionInfo::errorString() const { return m_errorString; } int RegionInfo::errorCode() const { return m_errorCode; } const RegionInfo::CountryKey &RegionInfo::detectedCountry() const { return m_country; } const RegionInfo::BandKeyList &RegionInfo::defaultBandKeys() const { return m_defaultBandKeys; } const RegionInfo::BandKeyList RegionInfo::countryBandKeys(const CountryKey &key) const { return m_countries.contains(key) ? m_countries[key] : m_defaultBandKeys; } const RegionInfo::BandList RegionInfo::bandsByKeys(const BandKeyList &keys) const { BandList ret; for(const auto &key : keys) { ret.append(m_bands.value(key)); } return ret; } const RegionInfo::BandList RegionInfo::bandsByCountry(const CountryKey &key) const { return bandsByKeys(countryBandKeys(key)); } void RegionInfo::parseError(const QJsonValue &val) { if(!val.isObject()) { qCCritical(CATEGORY_DEBUG) << "Error info is not an object"; return; } const auto obj = val.toObject(); static const auto codeKey = QStringLiteral("code"); static const auto textKey = QStringLiteral("text"); const auto isComplete = obj.contains(codeKey) && obj.contains(textKey); if(!isComplete) { qCCritical(CATEGORY_DEBUG) << "Error object is missing one or more fields"; return; } m_errorCode = obj[codeKey].toInt(); m_errorString = obj[textKey].toString(); m_isValid = true; m_isError = true; } void RegionInfo::parseSuccess(const QJsonValue &val) { if(!val.isObject()) { qCCritical(CATEGORY_DEBUG) << "Success info is not an object"; return; } const auto obj = val.toObject(); const auto bandsKey = QStringLiteral("bands"); const auto countriesKey = QStringLiteral("countries"); const auto countryKey = QStringLiteral("country"); const auto defaultKey = QStringLiteral("default"); const auto isComplete = obj.contains(bandsKey) && obj.contains(countriesKey) && obj.contains(countryKey) && obj.contains(defaultKey); if(!isComplete) { qCCritical(CATEGORY_DEBUG) << "Success object is missing one or more fields"; return; } m_isError = false; m_isValid = parseBands(obj[bandsKey]) && parseCountries(obj[countriesKey]) && parseCountry(obj[countryKey]) && parseDefault(obj[defaultKey]); } bool RegionInfo::parseBands(const QJsonValue &val) { if(!val.isObject()) { qCCritical(CATEGORY_DEBUG) << "Bands info is not an object"; return false; } const auto obj = val.toObject(); if(obj.isEmpty()) { qCCritical(CATEGORY_DEBUG) << "Bands info is an empty object"; return false; } const auto keys = obj.keys(); for(const auto &key : keys) { if(!insertBand(key.toLocal8Bit(), obj[key])) { return false; } } return true; } bool RegionInfo::parseCountries(const QJsonValue &val) { if(!val.isObject()) { qCCritical(CATEGORY_DEBUG) << "Countries info is not an object"; return false; } const auto obj = val.toObject(); if(obj.isEmpty()) { qCCritical(CATEGORY_DEBUG) << "Countries info is an empty object"; return false; } const auto keys = obj.keys(); for(const auto &key : keys) { if(!insertCountry(key.toLocal8Bit(), obj[key])) { return false; } } return true; } bool RegionInfo::parseCountry(const QJsonValue &val) { if(!val.isString() && !val.isNull()) { qCCritical(CATEGORY_DEBUG) << "Country is not a string"; return false; } else { m_country = val.toString().toLocal8Bit(); return true; } } bool RegionInfo::parseDefault(const QJsonValue &val) { if(!val.isArray()) { qCCritical(CATEGORY_DEBUG) << "Default bands list is not an array"; return false; } const QJsonArray arr = val.toArray(); if(arr.isEmpty()) { qCCritical(CATEGORY_DEBUG) << "Default bands is an empty array"; return false; } for(const auto &el : arr) { m_defaultBandKeys.append(el.toString().toLocal8Bit()); } return true; } bool RegionInfo::insertBand(const BandKey &key, const QJsonValue &val) { if(!val.isObject()) { qCCritical(CATEGORY_DEBUG) << "Band info is not an object"; return false; } const auto obj = val.toObject(); const auto startKey = QStringLiteral("start"); const auto endKey = QStringLiteral("end"); const auto dutyCycleKey = QStringLiteral("duty_cycle"); const auto maxPowerKey = QStringLiteral("max_power"); const auto isComplete = obj.contains(startKey) && obj.contains(endKey) && obj.contains(dutyCycleKey) && obj.contains(maxPowerKey); if(!isComplete) { qCCritical(CATEGORY_DEBUG) << "Band object is missing one or more fields"; return false; } const Band band = { (unsigned)obj[startKey].toInt(), (unsigned)obj[endKey].toInt(), obj[maxPowerKey].toInt(), (unsigned)obj[dutyCycleKey].toInt(), }; m_bands.insert(key, band); return true; } bool RegionInfo::insertCountry(const CountryKey &key, const QJsonValue &val) { if(!val.isArray()) { qCCritical(CATEGORY_DEBUG) << "Country bands list is not an array"; return false; } const QJsonArray arr = val.toArray(); if(arr.isEmpty()) { qCCritical(CATEGORY_DEBUG) << "Country bands is an empty array"; return false; } BandKeyList bandKeys; for(const auto &el : arr) { bandKeys.append(el.toString().toLocal8Bit()); } m_countries.insert(key, bandKeys); return true; } flipperdevices-qFlipper-bfce851/backend/regioninfo.h000066400000000000000000000030171452337521700227060ustar00rootroot00000000000000#pragma once #include #include #include class QJsonValue; class RegionInfo { public: struct Band { uint32_t start; uint32_t end; int32_t powerLimit; uint32_t dutyCycle; }; using BandList = QList; using CountryKey = QByteArray; using BandKey = QByteArray; using BandKeyList = QList; RegionInfo(); RegionInfo(const QByteArray &text); bool isValid() const; bool isError() const; bool hasCountryCode() const; const QString &errorString() const; int errorCode() const; const CountryKey &detectedCountry() const; const BandKeyList &defaultBandKeys() const; const BandKeyList countryBandKeys(const CountryKey &key) const; const BandList bandsByKeys(const BandKeyList &keys) const; const BandList bandsByCountry(const CountryKey &key) const; private: void parseError(const QJsonValue &val); void parseSuccess(const QJsonValue &val); bool parseBands(const QJsonValue &val); bool parseCountries(const QJsonValue &val); bool parseCountry(const QJsonValue &val); bool parseDefault(const QJsonValue &val); bool insertBand(const BandKey &key, const QJsonValue &val); bool insertCountry(const CountryKey &key, const QJsonValue &val); CountryKey m_country; BandKeyList m_defaultBandKeys; QHash m_countries; QHash m_bands; bool m_isValid; bool m_isError; QString m_errorString; int m_errorCode; }; flipperdevices-qFlipper-bfce851/backend/remotefilefetcher.cpp000066400000000000000000000054641452337521700246060ustar00rootroot00000000000000#include "remotefilefetcher.h" #include #include #include #include "debug.h" using namespace Flipper; RemoteFileFetcher::RemoteFileFetcher(QObject *parent): QObject(parent), m_manager(new QNetworkAccessManager(this)) {} RemoteFileFetcher::RemoteFileFetcher(const QString &remoteUrl, QIODevice *outputFile, QObject *parent): RemoteFileFetcher(parent) { fetch(remoteUrl, outputFile); } RemoteFileFetcher::RemoteFileFetcher(const Flipper::Updates::FileInfo &fileInfo, QIODevice *outputFile, QObject *parent): RemoteFileFetcher(parent) { fetch(fileInfo, outputFile); } bool RemoteFileFetcher::fetch(const QString &remoteUrl, QIODevice *outputFile) { if(!outputFile->open(QIODevice::WriteOnly)) { setError(BackendError::DiskError, QStringLiteral("Failed to open file for writing: %1.").arg(outputFile->errorString())); return false; } auto *reply = m_manager->get(QNetworkRequest(remoteUrl)); if(reply->error() != QNetworkReply::NoError) { setError(BackendError::InternetError, QStringLiteral("Network error: %1").arg(reply->errorString())); reply->deleteLater(); return false; } const auto onReplyReadyRead = [=]() { outputFile->write(reply->readAll()); }; connect(reply, &QNetworkReply::finished, this, [=]() { // In case there was any leftover data onReplyReadyRead(); outputFile->close(); reply->deleteLater(); if(reply->error() != QNetworkReply::NoError) { setError(BackendError::InternetError, QStringLiteral("Network error: %1").arg(reply->errorString())); } else if(!m_expectedChecksum.isEmpty()) { if(!outputFile->open(QIODevice::ReadOnly)) { setError(BackendError::DiskError, QStringLiteral("Failed to open file for reading: %1.").arg(outputFile->errorString())); return; } QCryptographicHash hash(QCryptographicHash::Sha256); hash.addData(outputFile); if(hash.result().toHex() != m_expectedChecksum) { setError(BackendError::UnknownError, QStringLiteral("File integrity check failed")); } outputFile->close(); } emit finished(); }); connect(reply, &QNetworkReply::readyRead, this, onReplyReadyRead); connect(reply, &QNetworkReply::downloadProgress, this, &RemoteFileFetcher::onDownloadProgress); return true; } bool RemoteFileFetcher::fetch(const Flipper::Updates::FileInfo &fileInfo, QIODevice *outputFile) { m_expectedChecksum = fileInfo.sha256(); return fetch(fileInfo.url(), outputFile); } void RemoteFileFetcher::onDownloadProgress(qint64 received, qint64 total) { emit progressChanged(((double)received / (double)total) * 100.0); } flipperdevices-qFlipper-bfce851/backend/remotefilefetcher.h000066400000000000000000000015071452337521700242450ustar00rootroot00000000000000#pragma once #include #include "failable.h" #include "flipperupdates.h" class QNetworkAccessManager; class RemoteFileFetcher : public QObject, public Failable { Q_OBJECT public: RemoteFileFetcher(QObject *parent = nullptr); RemoteFileFetcher(const QString &remoteUrl, QIODevice *outputFile, QObject *parent = nullptr); RemoteFileFetcher(const Flipper::Updates::FileInfo &fileInfo, QIODevice *outputFile, QObject *parent = nullptr); bool fetch(const QString &remoteUrl, QIODevice *outputFile); bool fetch(const Flipper::Updates::FileInfo &fileInfo, QIODevice *outputFile); signals: void progressChanged(double); void finished(); private slots: void onDownloadProgress(qint64 received, qint64 total); private: QNetworkAccessManager *m_manager; QByteArray m_expectedChecksum; }; flipperdevices-qFlipper-bfce851/backend/screenframe.h000066400000000000000000000003251452337521700230400ustar00rootroot00000000000000#pragma once #include #include #include struct ScreenFrame { QByteArray pixelData; QSize size; Qt::ScreenOrientation orientation; }; Q_DECLARE_METATYPE(ScreenFrame) flipperdevices-qFlipper-bfce851/backend/serialfinder.cpp000066400000000000000000000023541452337521700235540ustar00rootroot00000000000000#include "serialfinder.h" #include #include #include Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEBUG) SerialFinder::SerialFinder(const QString &serialNumber, QObject *parent): QObject(parent), m_timer(new QTimer(this)), m_serialNumber(serialNumber), m_numTries(100), m_periodMs(15) { connect(m_timer, &QTimer::timeout, this, &SerialFinder::findMatchingPort); m_timer->setSingleShot(true); m_timer->start(0); } void SerialFinder::setNumberOfTries(int numTries) { m_numTries = numTries; } void SerialFinder::setTryPeriod(int periodMs) { m_periodMs = periodMs; } void SerialFinder::findMatchingPort() { if(!(--m_numTries)) { emit finished(QSerialPortInfo()); return; } const auto portInfos = QSerialPortInfo::availablePorts(); const auto it = std::find_if(portInfos.cbegin(), portInfos.cend(), [&](const QSerialPortInfo &info) { qCDebug(CATEGORY_DEBUG).noquote() << "Trying serial port" << info.serialNumber() << "at" << info.systemLocation(); return info.serialNumber() == m_serialNumber; }); if(it != portInfos.cend() && !(*it).isNull()) { emit finished(*it); return; } m_timer->start(m_periodMs); } flipperdevices-qFlipper-bfce851/backend/serialfinder.h000066400000000000000000000010451452337521700232150ustar00rootroot00000000000000#ifndef SERIALFINDER_H #define SERIALFINDER_H #include #include class QTimer; class SerialFinder : public QObject { Q_OBJECT public: SerialFinder(const QString &serialNumber, QObject *parent = nullptr); void setNumberOfTries(int numTries); void setTryPeriod(int periodMs); signals: void finished(const QSerialPortInfo&); private slots: void findMatchingPort(); private: QTimer *m_timer; QString m_serialNumber; int m_numTries; int m_periodMs; }; #endif // SERIALFINDER_H flipperdevices-qFlipper-bfce851/backend/simpleserialoperation.cpp000066400000000000000000000031171452337521700255150ustar00rootroot00000000000000#include "simpleserialoperation.h" #include SimpleSerialOperation::SimpleSerialOperation(QSerialPort *serialPort, QObject *parent): AbstractSerialOperation(serialPort, parent) {} const QByteArray &SimpleSerialOperation::receivedData() const { return m_receivedData; } QByteArray SimpleSerialOperation::commandLine() const { // Empty default implementation return QByteArray(); } uint32_t SimpleSerialOperation::flags() const { // Empty default implementation return 0; } void SimpleSerialOperation::onSerialPortReadyRead() { startTimeout(); m_receivedData += serialPort()->readAll(); if(m_receivedData.endsWith(endOfMessageToken())) { if(!parseReceivedData()) { finishWithError(BackendError::SerialError, QStringLiteral("Failed to parse received data")); } else { finish(); } } } void SimpleSerialOperation::onOperationTimeout() { finishWithError(BackendError::SerialError, QStringLiteral("Device is not responding")); } bool SimpleSerialOperation::begin() { auto success = true; if(flags() & DTR) { success &= serialPort()->setDataTerminalReady(true); } if(flags() & RTS) { success &= serialPort()->setRequestToSend(flags() & RTS); } if(!commandLine().isEmpty()) { success &= (serialPort()->write(commandLine()) == commandLine().size()) && serialPort()->flush(); } if(success) { startTimeout(); } return success; } bool SimpleSerialOperation::parseReceivedData() { // Empty default implementation return true; } flipperdevices-qFlipper-bfce851/backend/simpleserialoperation.h000066400000000000000000000013101452337521700251530ustar00rootroot00000000000000#pragma once #include "abstractserialoperation.h" #include class SimpleSerialOperation : public AbstractSerialOperation { Q_OBJECT public: enum Flags { DTR = (1 << 0), RTS = (1 << 2) }; SimpleSerialOperation(QSerialPort *serialPort, QObject *parent = nullptr); protected: const QByteArray &receivedData() const; virtual QByteArray endOfMessageToken() const = 0; virtual QByteArray commandLine() const; virtual uint32_t flags() const; virtual bool parseReceivedData(); private slots: void onSerialPortReadyRead() override; void onOperationTimeout() override; private: bool begin() override; QByteArray m_receivedData; }; flipperdevices-qFlipper-bfce851/backend/tararchive.cpp000066400000000000000000000164121452337521700232350ustar00rootroot00000000000000#include "tararchive.h" #include #include #include #include #include #include #include #define BLOCK_SIZE 512 #define CHUNK_SIZE (4 * 1024 * 1024) struct TarHeader { char name[100]; char mode[8]; char owner[8]; char group[8]; char size[12]; char mtime[12]; char checksum[8]; char typeflag; char linkname[100]; char unused[255]; }; static_assert(sizeof(TarHeader) == BLOCK_SIZE, "Check TarHeader alignment"); static bool isMemZeros(char *p, size_t len) { while(len--) { if(*(p++)) { return false; } } return true; } static uint32_t calculateChecksum(const TarHeader *header) { uint32_t ret = 256; const auto *p = (unsigned char*)header; for(size_t i = 0; i < offsetof(TarHeader, checksum); ++i) { ret += p[i]; } for(size_t i = offsetof(TarHeader, typeflag); i < sizeof(TarHeader); ++i) { ret += p[i]; } return ret; } TarArchive::TarArchive(QIODevice *inputFile, QObject *parent): QObject(parent), m_tarFile(inputFile), m_root(new FileNode("", FileNode::Type::Directory)) { if(!m_tarFile->open(QIODevice::ReadOnly)) { setError(BackendError::DiskError, m_tarFile->errorString()); } else { readTarFile(); } } TarArchive::TarArchive(const QDir &inputDir, QIODevice *outputFile, QObject *parent): QObject(parent), m_tarFile(outputFile), m_root(new FileNode("", FileNode::Type::Directory)) { if(!m_tarFile->open(QIODevice::WriteOnly)) { setError(BackendError::DiskError, m_tarFile->errorString()); return; } auto *watcher = new QFutureWatcher(this); connect(watcher, &QFutureWatcherBase::finished, this, [=]() { watcher->deleteLater(); emit ready(); }); #if QT_VERSION < 0x060000 watcher->setFuture(QtConcurrent::run(this, &TarArchive::assembleTarFile, inputDir)); #else watcher->setFuture(QtConcurrent::run(&TarArchive::assembleTarFile, this, inputDir)); #endif } FileNode *TarArchive::root() const { return m_root.get(); } FileNode *TarArchive::file(const QString &fullName) { return m_root->find(fullName); } QByteArray TarArchive::fileData(const QString &fullName) { if(!m_tarFile) { setError(BackendError::UnknownError, QStringLiteral("Archive file not set")); return QByteArray(); } else if(!m_tarFile->isOpen()) { setError(BackendError::UnknownError, QStringLiteral("Archive file is not open")); return QByteArray(); } auto *node = file(fullName); if(!node) { setError(BackendError::UnknownError, QStringLiteral("File not found")); return QByteArray(); } if(!node->userData().canConvert()) { setError(BackendError::DataError, QStringLiteral("No valid FileData found in the node.")); return QByteArray(); } const auto data = node->userData().value(); const auto success = m_tarFile->seek(data.offset); if(success) { return m_tarFile->read(data.size); } else { setError(BackendError::DiskError, m_tarFile->errorString()); return QByteArray(); } } void TarArchive::readTarFile() { TarHeader header; int emptyCounter = 0; do { const auto n = m_tarFile->read((char*)&header, sizeof(TarHeader)); if(n != sizeof(TarHeader)) { setError(BackendError::DataError, QStringLiteral("Archive file is truncated")); return; } else if(isMemZeros((char*)&header, sizeof(TarHeader))) { if(++emptyCounter == 2) { break; } else { continue; } } const auto fileSize = strtol(header.size, nullptr, 8); const auto fileName = QString(header.name); if(header.typeflag == '0') { FileInfo data; data.offset = m_tarFile->pos(); data.size = fileSize; m_root->addFile(fileName, QVariant::fromValue(data)); } else if(header.typeflag == '5') { m_root->addDirectory(fileName.chopped(1)); } else { setError(BackendError::DataError, QStringLiteral("Only regular files and directories are supported")); return; } // Blocks are always padded to BLOCK_SIZE const auto padding = fileSize % BLOCK_SIZE ? BLOCK_SIZE - (fileSize % BLOCK_SIZE) : 0; m_tarFile->skip(fileSize + padding); } while(m_tarFile->bytesAvailable()); } void TarArchive::assembleTarFile(const QDir &inputDir) { TarHeader header = {}; QDirIterator it(inputDir, QDirIterator::Subdirectories); while(it.hasNext()) { const QFileInfo fileInfo(it.next()); const auto relativeFilePath = inputDir.relativeFilePath(fileInfo.absoluteFilePath()).toLocal8Bit(); if(fileInfo.isFile()) { snprintf(header.name, sizeof(header.name), "%s", relativeFilePath.data()); snprintf(header.mode, sizeof(header.mode), "%07o", 0664); snprintf(header.size, sizeof(header.size), "%011o", (unsigned int)fileInfo.size()); header.typeflag = '0'; } else if(fileInfo.isDir()) { snprintf(header.name, sizeof(header.name), "%s/", relativeFilePath.data()); snprintf(header.mode, sizeof(header.mode), "%07o", 0755); snprintf(header.size, sizeof(header.size), "%011o", 0); header.typeflag = '5'; } snprintf(header.owner, sizeof(header.owner), "%07o", 1000); snprintf(header.group, sizeof(header.group), "%07o", 1000); snprintf(header.mtime, sizeof(header.mtime), "%011o", (unsigned int)fileInfo.metadataChangeTime().toSecsSinceEpoch()); snprintf(header.checksum, sizeof(header.checksum), "%06o", calculateChecksum(&header)); if(m_tarFile->write((const char*)&header, sizeof(TarHeader)) != sizeof(TarHeader)) { setError(BackendError::DiskError, m_tarFile->errorString()); break; } if(fileInfo.isFile() && fileInfo.size() > 0) { QFile file(fileInfo.absoluteFilePath()); if(!file.open(QIODevice::ReadOnly)) { setError(BackendError::DiskError, file.errorString()); break; } qint64 bytesProcessed = 0; while(file.bytesAvailable() > 0) { const auto chunk = file.read(CHUNK_SIZE); if(chunk.isEmpty()) { setError(BackendError::DiskError, QStringLiteral("Failed to read from file: %1").arg(file.errorString())); break; } if(m_tarFile->write(chunk) != chunk.size()) { setError(BackendError::DiskError, QStringLiteral("Failed to write to file: %1").arg(m_tarFile->errorString())); break; } bytesProcessed += chunk.size(); } if(bytesProcessed != fileInfo.size()) { break; } // Blocks are always padded to BLOCK_SIZE const auto padding = BLOCK_SIZE - (fileInfo.size() % BLOCK_SIZE); if(padding) { m_tarFile->write(QByteArray(padding, 0)); } } } m_tarFile->close(); } flipperdevices-qFlipper-bfce851/backend/tararchive.h000066400000000000000000000015131452337521700226760ustar00rootroot00000000000000#pragma once #include #include #include #include #include #include "filenode.h" #include "failable.h" class QDir; class QIODevice; class TarArchive : public QObject, public Failable { Q_OBJECT public: struct FileInfo { qint64 offset; qint64 size; }; TarArchive(QIODevice *inputFile, QObject *parent = nullptr); TarArchive(const QDir &inputDir, QIODevice *outputFile, QObject *parent = nullptr); FileNode *root() const; FileNode *file(const QString &fullName); QByteArray fileData(const QString &fullName); signals: void ready(); private: void readTarFile(); void assembleTarFile(const QDir &inputDir); QIODevice *m_tarFile; QSharedPointer m_root; }; Q_DECLARE_METATYPE(TarArchive::FileInfo) flipperdevices-qFlipper-bfce851/backend/tarziparchive.cpp000066400000000000000000000047131452337521700237610ustar00rootroot00000000000000#include "tarziparchive.h" #include #include #include "tararchive.h" #include "gzipcompressor.h" #include "gzipuncompressor.h" #include "tempdirectories.h" TarZipArchive::TarZipArchive(QFile *inputFile, QObject *parent): QObject(parent), m_tarArchive(nullptr) { const QFileInfo tzFileInfo(*inputFile); const auto tzFileDir = tzFileInfo.absoluteDir(); const auto fileName = tzFileInfo.baseName() + QStringLiteral(".tar"); m_tarFile = new QFile(tzFileDir.absoluteFilePath(fileName), this); auto *uncompressor = new GZipUncompressor(inputFile, m_tarFile, this); if(uncompressor->isError()) { setError(uncompressor->error(), QStringLiteral("Failed to uncompress *tar.gz file: %1").arg(uncompressor->errorString())); return; } connect(uncompressor, &GZipUncompressor::finished, this, [=]() { if(uncompressor->isError()) { setError(uncompressor->error(), QStringLiteral("Failed to uncompress *tar.gz file: %1").arg(uncompressor->errorString())); } else { m_tarArchive = new TarArchive(m_tarFile, this); if(m_tarArchive->isError()) { setError(m_tarArchive->error(), QStringLiteral("Failed to build archive index: %1").arg(m_tarArchive->errorString())); } } emit ready(); }); } TarZipArchive::TarZipArchive(const QDir &inputDir, QFile *outputFile, QObject *parent): QObject(parent), m_tarFile(globalTempDirs->createTempFile(this)), m_tarArchive(new TarArchive(inputDir, m_tarFile, this)) { if(m_tarArchive->isError()) { setError(m_tarArchive->error(), m_tarArchive->errorString()); return; } connect(m_tarArchive, &TarArchive::ready, this, [=]() { auto *compressor = new GZipCompressor(m_tarFile, outputFile, this); if(compressor->isError()) { setError(compressor->error(), QStringLiteral("Failed to compress *tar.gz file: %1").arg(compressor->errorString())); emit ready(); return; } connect(compressor, &GZipCompressor::finished, this, [=]() { if(compressor->isError()) { setError(compressor->error(), QStringLiteral("Failed to compress *tar.gz file: %1").arg(compressor->errorString())); } emit ready(); }); }); } TarZipArchive::~TarZipArchive() { m_tarFile->remove(); } TarArchive *TarZipArchive::archiveIndex() const { return m_tarArchive; } flipperdevices-qFlipper-bfce851/backend/tarziparchive.h000066400000000000000000000007461452337521700234300ustar00rootroot00000000000000#pragma once #include #include "failable.h" class QDir; class QFile; class TarArchive; class TarZipArchive : public QObject, public Failable { Q_OBJECT public: TarZipArchive(QFile *inputFile, QObject *parent = nullptr); TarZipArchive(const QDir &inputDir, QFile *outputFile, QObject *parent = nullptr); ~TarZipArchive(); TarArchive *archiveIndex() const; signals: void ready(); private: QFile *m_tarFile; TarArchive *m_tarArchive; }; flipperdevices-qFlipper-bfce851/backend/tarzipcompressor.cpp000066400000000000000000000012721452337521700245310ustar00rootroot00000000000000#include "tarzipcompressor.h" #include #include "tarziparchive.h" TarZipCompressor::TarZipCompressor(const QDir &inputDir, const QUrl &outputFileUrl, QObject *parent): QObject(parent) { auto *outputFile = new QFile(outputFileUrl.toLocalFile(), this); auto *tarZipArchive = new TarZipArchive(inputDir, outputFile, this); if(tarZipArchive->isError()) { setError(tarZipArchive->error(), tarZipArchive->errorString()); return; } connect(tarZipArchive, &TarZipArchive::ready, this, [=]() { if(tarZipArchive->isError()) { setError(tarZipArchive->error(), tarZipArchive->errorString()); } emit finished(); }); } flipperdevices-qFlipper-bfce851/backend/tarzipcompressor.h000066400000000000000000000004561452337521700242010ustar00rootroot00000000000000#pragma once #include #include #include #include "failable.h" class TarZipCompressor : public QObject, public Failable { Q_OBJECT public: TarZipCompressor(const QDir &inputDir, const QUrl &outputFileUrl, QObject *parent = nullptr); signals: void finished(); }; flipperdevices-qFlipper-bfce851/backend/tarzipuncompressor.cpp000066400000000000000000000040661452337521700251000ustar00rootroot00000000000000#include "tarzipuncompressor.h" #include #include #include #include "tararchive.h" #include "tarziparchive.h" #include "tempdirectories.h" TarZipUncompressor::TarZipUncompressor(QFile *tarZipFile, const QDir &targetDir, QObject *parent): QObject(parent), m_tarZipArchive(new TarZipArchive(tarZipFile, this)), m_targetDir(targetDir) { connect(m_tarZipArchive, &TarZipArchive::ready, this, &TarZipUncompressor::onArchiveReady); } void TarZipUncompressor::onArchiveReady() { auto *watcher = new QFutureWatcher(this); connect(watcher, &QFutureWatcherBase::finished, this, &TarZipUncompressor::finished); #if QT_VERSION < 0x060000 watcher->setFuture(QtConcurrent::run(this, &TarZipUncompressor::extractFiles)); #else watcher->setFuture(QtConcurrent::run(&TarZipUncompressor::extractFiles, this)); #endif } void TarZipUncompressor::extractFiles() { const auto fileInfos = m_tarZipArchive->archiveIndex()->root()->toPreOrderList(); for(const auto &fileInfo : fileInfos) { const auto &absolutePath = fileInfo.absolutePath; if(absolutePath.isEmpty()) { continue; } else if(fileInfo.type == FileNode::Type::Directory) { m_targetDir.mkpath(absolutePath); } else if(!extractFile(absolutePath, m_targetDir.absoluteFilePath(absolutePath))) { break; } } } bool TarZipUncompressor::extractFile(const QString &src, const QString &dst) { // TODO: Write files to disk in chunks // Preferably rewrite all tar.gz operations in stream-friendly style // with no intermediate files QFile file(dst); // TODO: check for errors if(!file.open(QIODevice::WriteOnly)) { setError(BackendError::DiskError, file.errorString()); return false; } const auto fileData = m_tarZipArchive->archiveIndex()->fileData(src); if(file.write(fileData) != fileData.size()) { setError(BackendError::DiskError, file.errorString()); return false; } file.close(); return true; } flipperdevices-qFlipper-bfce851/backend/tarzipuncompressor.h000066400000000000000000000010061452337521700245340ustar00rootroot00000000000000#pragma once #include #include #include "failable.h" class QFile; class TarZipArchive; class TarZipUncompressor : public QObject, public Failable { Q_OBJECT public: TarZipUncompressor(QFile *tarZipFile, const QDir &targetDir, QObject *parent = nullptr); signals: void finished(); private slots: void onArchiveReady(); private: void extractFiles(); bool extractFile(const QString &src, const QString &dst); TarZipArchive *m_tarZipArchive; QDir m_targetDir; }; flipperdevices-qFlipper-bfce851/backend/tempdirectories.cpp000066400000000000000000000022211452337521700243000ustar00rootroot00000000000000#include "tempdirectories.h" #include #include #include TempDirectories::TempDirectories(): m_root(QDir::temp().absoluteFilePath(QStringLiteral("%1-XXXXXXXX").arg(APP_NAME))) {} TempDirectories *TempDirectories::instance() { static TempDirectories instance; return &instance; } QDir TempDirectories::root() const { return QDir(m_root.path()); } QDir TempDirectories::subdir(const QString &subdirName) const { auto subdir = root(); bool success; if(!root().exists(subdirName)) { success = subdir.mkdir(subdirName) && subdir.cd(subdirName); } else { success = subdir.cd(subdirName); } return success ? subdir : QDir(); } QUrl TempDirectories::fileUrl(const QString &fileName) const { return QUrl::fromLocalFile(root().absoluteFilePath(fileName)); } QFile *TempDirectories::createFile(const QString &fileName, QObject *parent) const { return new QFile(root().absoluteFilePath(fileName), parent); } QFile *TempDirectories::createTempFile(QObject *parent) const { return new QTemporaryFile(root().absoluteFilePath(QStringLiteral("temp-XXXXXXXX")), parent); } flipperdevices-qFlipper-bfce851/backend/tempdirectories.h000066400000000000000000000010541452337521700237500ustar00rootroot00000000000000#pragma once #include #include #include class QFile; class QObject; class TempDirectories { TempDirectories(); public: static TempDirectories *instance(); QDir root() const; QDir subdir(const QString &subdirName) const; QUrl fileUrl(const QString &fileName) const; QFile *createFile(const QString &fileName, QObject *parent = nullptr) const; QFile *createTempFile(QObject *parent = nullptr) const; private: QTemporaryDir m_root; }; #define globalTempDirs (TempDirectories::instance()) flipperdevices-qFlipper-bfce851/backend/updateregistry.cpp000066400000000000000000000115111452337521700241530ustar00rootroot00000000000000#include "updateregistry.h" #include #include #include #include #include #include #include #include #include #include "remotefilefetcher.h" Q_LOGGING_CATEGORY(CATEGORY_UPDATES, "UPD") using namespace Flipper; UpdateRegistry::UpdateRegistry(const QString &directoryUrl, QObject *parent): QAbstractListModel(parent), m_directoryUrl(directoryUrl), m_checkTimer(new QTimer(this)), m_state(State::Unknown) { connect(this, &UpdateRegistry::stateChanged, this, &UpdateRegistry::latestVersionChanged); connect(m_checkTimer, &QTimer::timeout, this, &UpdateRegistry::check); check(); } void UpdateRegistry::setDirectoryUrl(const QString &directoryUrl) { m_directoryUrl = directoryUrl; check(); } void UpdateRegistry::fillFromJson(const QByteArray &text) { beginRemoveRows(QModelIndex(), 0, m_channels.size() - 1); m_channels.clear(); endRemoveRows(); const auto doc = QJsonDocument::fromJson(text); if(doc.isNull()) { qCCritical(CATEGORY_UPDATES) << "Failed to parse the document"; return; } else if(!doc.isObject()) { qCCritical(CATEGORY_UPDATES) << "Json document is not an object"; return; } const auto &obj = doc.object(); if(!obj.contains("channels")) { qCCritical(CATEGORY_UPDATES) << "No channels data in json file"; return; } else if(!obj["channels"].isArray()) { qCCritical(CATEGORY_UPDATES) << "Expected to get an array of channels"; return; } const auto &arr = obj["channels"].toArray(); try { for(const auto &val : arr) { const Updates::ChannelInfo info(val); beginInsertRows(QModelIndex(), m_channels.size(), m_channels.size()); m_channels.insert(info.name(), info); endInsertRows(); } } catch(std::runtime_error &e) { qCCritical(CATEGORY_UPDATES) << "Failed to parse update information:" << e.what(); } } const QStringList UpdateRegistry::channelNames() const { auto names = m_channels.keys(); // Move Development channel to the bottom of the list if(names.first().startsWith(QStringLiteral("dev"))) { names.move(0, names.size() - 1); } return names; } UpdateRegistry::State UpdateRegistry::state() const { return m_state; } const Updates::VersionInfo UpdateRegistry::latestVersion() const { return channel(updateChannel()).latestVersion(); } const Updates::ChannelInfo UpdateRegistry::channel(const QString &channelName) const { return m_channels.value(channelName); } int UpdateRegistry::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent) return m_channels.size(); } QVariant UpdateRegistry::data(const QModelIndex &index, int role) const { const auto row = index.row(); if(row >= m_channels.size()) { qCDebug(CATEGORY_UPDATES) << "Invalid row index:" << row; return QVariant(); } const auto key = channelNames()[row]; const auto &channel = m_channels[key]; switch(role) { case NameRole: return channel.name(); case TitleRole: return channel.title(); case DescriptionRole: return channel.description(); default: return QVariant(); } } QHash UpdateRegistry::roleNames() const { return { { NameRole, QByteArrayLiteral("name") }, { TitleRole, QByteArrayLiteral("title") }, { DescriptionRole, QByteArrayLiteral("description") } }; } void UpdateRegistry::check() { if(m_directoryUrl.isEmpty()) { setState(State::ErrorOccured); return; } setState(State::Checking); auto *fetcher = new RemoteFileFetcher(this); auto *buf = new QBuffer(this); fetcher->connect(fetcher, &RemoteFileFetcher::finished, this, [=]() { if(fetcher->isError()) { qCCritical(CATEGORY_UPDATES).noquote() << "Failed to fetch update information:" << fetcher->errorString(); setState(State::ErrorOccured); } else { qCDebug(CATEGORY_UPDATES).noquote() << "Fetched update information from" << m_directoryUrl; buf->open(QIODevice::ReadOnly); fillFromJson(buf->readAll()); setState(m_channels.isEmpty() ? State::ErrorOccured : State::Ready); } fetcher->deleteLater(); buf->deleteLater(); }); if(!fetcher->fetch(m_directoryUrl, buf)) { qCCritical(CATEGORY_UPDATES).noquote() << "Failed to fetch update information:" << fetcher->errorString(); setState(State::ErrorOccured); buf->deleteLater(); } m_checkTimer->start(std::chrono::minutes(10)); } void UpdateRegistry::setState(State newState) { if(m_state == newState) { return; } m_state = newState; emit stateChanged(); } flipperdevices-qFlipper-bfce851/backend/updateregistry.h000066400000000000000000000025711452337521700236260ustar00rootroot00000000000000#pragma once #include #include #include "flipperupdates.h" class QTimer; namespace Flipper { class UpdateRegistry : public QAbstractListModel { Q_OBJECT using ChannelMap = QMap; enum DataRole { NameRole, TitleRole, DescriptionRole }; public: enum class State { Unknown, Checking, Ready, ErrorOccured }; UpdateRegistry(const QString &directoryUrl, QObject *parent = nullptr); void setDirectoryUrl(const QString &directoryUrl); void fillFromJson(const QByteArray &text); State state() const; const QStringList channelNames() const; const Flipper::Updates::VersionInfo latestVersion() const; const Flipper::Updates::ChannelInfo channel(const QString &channelName) const; // Model API functions int rowCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QHash roleNames() const override; signals: void stateChanged(); void latestVersionChanged(); public slots: void check(); private: virtual const QString updateChannel() const = 0; void setState(State newState); QString m_directoryUrl; QTimer *m_checkTimer; ChannelMap m_channels; State m_state; }; } flipperdevices-qFlipper-bfce851/backend/versioninfo.cpp000066400000000000000000000120711452337521700234430ustar00rootroot00000000000000#include "versioninfo.h" #include #include Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEBUG) VersionInfo::VersionInfo(): VersionInfo(-1, -1, -1) {} VersionInfo::VersionInfo(int major, int minor, int sub): m_version{major, minor, sub}, m_rc(-1) {} VersionInfo::VersionInfo(const QString &versionString): VersionInfo() { const auto tokens = versionString.toLower().split('-'); const auto versionTokens = tokens[0].split('.'); if(versionTokens.size() != 3) { qCDebug(CATEGORY_DEBUG) << "Malformed version string"; return; } bool canConvert; for(auto it = versionTokens.cbegin(); it != versionTokens.cend(); ++it) { const auto num = (*it).toInt(&canConvert); if(canConvert) { const auto idx = std::distance(versionTokens.cbegin(), it); m_version[idx] = num; } else { qCDebug(CATEGORY_DEBUG) << "Illegal characters in version"; return; } } if(tokens.size() == 2) { const auto &suffix = tokens[1]; if(suffix.startsWith(QStringLiteral("rc"))) { if(suffix.length() == 2) { m_rc = 0; return; } #if QT_VERSION < 0x060000 const auto rc = suffix.midRef(2).toInt(&canConvert); #else const auto rc = QStringView(suffix).sliced(2).toInt(&canConvert); #endif if(canConvert) { m_rc = rc; } else { qCDebug(CATEGORY_DEBUG) << "Illegal characters in release candidate suffix"; } } } else { qCDebug(CATEGORY_DEBUG) << "Malformed release candidate suffix"; } } VersionInfo VersionInfo::withCommit(const QString &commit) const { auto ret = *this; ret.m_commit = commit; return ret; } VersionInfo VersionInfo::withBranch(const QString &branch) const { auto ret = *this; ret.m_branch = branch; return ret; } VersionInfo VersionInfo::withRcNumber(int candidateNum) const { auto ret = *this; ret.m_rc = candidateNum; return ret; } VersionInfo VersionInfo::withDate(const QDate &date) const { auto ret = *this; ret.m_date = date; return ret; } bool VersionInfo::isValid() const { return isVersionValid() || isCommitValid(); } bool VersionInfo::isVersionValid() const { for(const auto num: m_version) { if(num < 0) { return false; } } return true; } bool VersionInfo::isCommitValid() const { return !m_commit.isEmpty(); } bool VersionInfo::isDevelopment() const { return !isVersionValid() && isCommitValid(); } bool VersionInfo::isReleaseCandidate() const { return m_rc >= 0; } int VersionInfo::major() const { return m_version[VersionMajor]; } int VersionInfo::minor() const { return m_version[VersionMinor]; } int VersionInfo::sub() const { return m_version[VersionSub]; } int VersionInfo::rc() const { return m_rc; } const QDate &VersionInfo::date() const { return m_date; } const QString &VersionInfo::commit() const { return m_commit; } const QString &VersionInfo::branch() const { return m_branch; } QString VersionInfo::toString() const { if(!isValid()) { return QStringLiteral("invalid"); } else if(isDevelopment()) { return m_commit; } QStringList ver; for(const auto num: m_version) { ver.append(QString::number(num)); } const auto ret = ver.join('.'); if(isReleaseCandidate()) { return m_rc ? QStringLiteral("%1-rc%2").arg(ret, m_rc) : QStringLiteral("%1-rc").arg(ret); } else { return ret; } } bool VersionInfo::isVersionGreaterThan(const VersionInfo &other) const { return (major() > other.major()) || ((major() == other.major()) && (minor() > other.minor() || (minor() == other.minor() && sub() > other.sub()))); } bool VersionInfo::isRCNumGreaterThan(const VersionInfo &other) const { return rc() > other.rc(); } bool VersionInfo::isDateGreaterThan(const VersionInfo &other) const { return other.date().daysTo(date()) > 0; } bool VersionInfo::isCommitDifferent(const VersionInfo &other) const { return commit() != other.commit(); } bool VersionInfo::operator >(const VersionInfo &other) const { if(!isValid() || !other.isValid()) { return false; } else if(other.isDevelopment()) { if(isDevelopment()) { return isCommitDifferent(other) || isDateGreaterThan(other); } else { return isDateGreaterThan(other); } } else if(other.isReleaseCandidate()) { if(isDevelopment()) { return isDateGreaterThan(other); } else if(isReleaseCandidate()) { return isVersionGreaterThan(other) || isRCNumGreaterThan(other); } else { return isVersionGreaterThan(other); } } else { if(isDevelopment()) { return isDateGreaterThan(other); } else if(isReleaseCandidate()) { return isVersionGreaterThan(other); } else { return isVersionGreaterThan(other); } } } flipperdevices-qFlipper-bfce851/backend/versioninfo.h000066400000000000000000000024411452337521700231100ustar00rootroot00000000000000#pragma once #include #include class VersionInfo { enum VersionIndex { VersionMajor = 0, VersionMinor, VersionSub }; public: VersionInfo(); VersionInfo(int major, int minor, int sub); VersionInfo(const QString &versionString); VersionInfo withCommit(const QString &commit) const; VersionInfo withBranch(const QString &branch) const; VersionInfo withRcNumber(int candidateNum) const; VersionInfo withDate(const QDate &date) const; bool isValid() const; bool isVersionValid() const; bool isCommitValid() const; bool isDevelopment() const; bool isReleaseCandidate() const; int major() const; int minor() const; int sub() const; int rc() const; const QDate &date() const; const QString &commit() const; const QString &branch() const; QString toString() const; bool operator >(const VersionInfo &other) const; private: bool isVersionGreaterThan(const VersionInfo &other) const; bool isRCNumGreaterThan(const VersionInfo &other) const; bool isDateGreaterThan(const VersionInfo &other) const; bool isCommitDifferent(const VersionInfo &other) const; QVector m_version; int m_rc; QDate m_date; QString m_commit; QString m_branch; }; flipperdevices-qFlipper-bfce851/build_linux.sh000077500000000000000000000015171452337521700216670ustar00rootroot00000000000000#!/bin/bash set -euxo pipefail; TARGET="qFlipper" BUILDDIR="build" APPDIR_PREFIX="$PWD/$BUILDDIR/AppDir/usr" LIBSSL1_OVERRIDE="$(ldconfig -p | grep x86-64 | grep -oP '/[^\s]+/libssl.so.1.1' | head -n1)" LIBWAYLAND_EXCLUDE="libwayland*" LIBXCB_EXCLUDE="libxcb*" LIBXKB_EXCLUDE="libxkb*" LIBX11_EXCLUDE="libX*" export OUTPUT="$TARGET-x86_64.AppImage" mkdir -p "$BUILDDIR" && cd "$BUILDDIR" qmake "../$TARGET.pro" -spec linux-g++ "CONFIG+=release qtquickcompiler" PREFIX="$APPDIR_PREFIX" make qmake_all make -j"$(nproc)" make install linuxdeploy --appdir=AppDir -o appimage \ --custom-apprun="../installer-assets/appimage/AppRun" \ --library="$LIBSSL1_OVERRIDE" \ --exclude-library="$LIBWAYLAND_EXCLUDE" \ --exclude-library="$LIBXCB_EXCLUDE" \ --exclude-library="$LIBXKB_EXCLUDE" \ --exclude-library="$LIBX11_EXCLUDE" flipperdevices-qFlipper-bfce851/build_mac.sh000077500000000000000000000055711452337521700212740ustar00rootroot00000000000000#!/bin/bash # shellcheck disable=SC2207 set -exuo pipefail; PROJECT="qFlipper"; BUILD_DIRECTORY="build_mac"; if [ -d ".git" ]; then git submodule update --init; fi if [[ "$(uname -s)" != "Darwin" ]]; then echo "This script needs to be run under MacOS"; exit 1; fi if [[ "$(uname -m)" == "arm64" ]]; then eval "$(/opt/homebrew/bin/brew shellenv)"; else eval "$(/usr/local/Homebrew/bin/brew shellenv)"; fi if ! brew --version; then echo "Brew isn't installed!"; exit 1; fi if ! brew --prefix libusb_universal; then echo "Please install libusb_universal first!"; printf "\tbrew install flipperdevices/homebrew-flipper/libusb_universal\n"; exit 1; fi if ! brew --prefix qt_universal; then echo "Please install qt_universal first!"; printf "\tbrew install flipperdevices/homebrew-flipper/qt_universal\n"; exit 1; fi rm -rf "$BUILD_DIRECTORY"; mkdir "$BUILD_DIRECTORY"; cd "$BUILD_DIRECTORY"; qmake \ -spec macx-clang \ CONFIG+="release qtquickcompiler" \ -o Makefile \ ../$PROJECT.pro \ QMAKE_APPLE_DEVICE_ARCHS="x86_64 arm64"; make qmake_all; make "-j$(sysctl -n hw.ncpu)" > /dev/null 2>&1; make install; # bundle libusb mkdir -p "$PROJECT.app/Contents/Frameworks"; cp "$(brew --prefix libusb_universal)/lib/libusb-1.0.0.dylib" "$PROJECT.app/Contents/Frameworks"; relink_framework() { local FILE; local LIB; local REL_PATH; FILE="$1"; LIB="$2"; REL_PATH="$3"; PATHS=( $(otool -L "$FILE" | grep "$LIB" | awk '{print $1}' ) ); for CUR in "${PATHS[@]}"; do install_name_tool -change "$CUR" "$REL_PATH" "$FILE"; done } relink_framework \ "$PROJECT.app/Contents/Frameworks/libusb-1.0.0.dylib" \ "libusb-1.0.0.dylib" \ "@loader_path/libusb-1.0.0.dylib"; relink_framework \ "$PROJECT.app/Contents/MacOS/qFlipper" \ "libusb-1.0.0.dylib" \ "@loader_path/../Frameworks/libusb-1.0.0.dylib"; relink_framework \ "$PROJECT.app/Contents/MacOS/qFlipper-cli" \ "libusb-1.0.0.dylib" \ "@loader_path/../Frameworks/libusb-1.0.0.dylib"; # Sign if [ -n "${MAC_OS_SIGNING_KEY_ID:-""}" ]; then security default-keychain -s "$MAC_OS_KEYCHAIN_NAME"; security unlock-keychain -p "$MAC_OS_KEYCHAIN_PASSWORD" "$MAC_OS_KEYCHAIN_NAME"; xattr -cr "$PROJECT.app"; codesign --force --options=runtime -s "$MAC_OS_SIGNING_KEY_ID" --deep -v "$PROJECT.app"; /usr/bin/ditto -c -k --keepParent "$PROJECT.app" "$PROJECT.zip"; xcrun altool \ --notarize-app \ --primary-bundle-id "$MAC_OS_SIGNING_BUNDLE_ID" \ --username "$MAC_OS_SIGNING_USERNAME" \ --password "$MAC_OS_SIGNING_PASSWORD" \ --asc-provider "$MAC_OS_SIGNING_ASC_PROVIDER" \ --file "$PROJECT.zip"; fi # build DMG dmgbuild \ -s "../installer-assets/macos/dmgbuild-config.py" \ -D "app=$PROJECT.app" \ "$PROJECT-$(git describe --tags --abbrev=0)" \ "$PROJECT.dmg"; flipperdevices-qFlipper-bfce851/build_windows.bat000066400000000000000000000061411452337521700223510ustar00rootroot00000000000000@echo off setlocal EnableDelayedExpansion set ARCH_BITS=64 set MSVC_VERSION=2019 set "MSVC_DIR=%programfiles(x86)%\Microsoft Visual Studio\%MSVC_VERSION%" rem Import build environment for %%s in (Community Professional Enterprise) do ( set "MSVC_VCVARS_PATH=%MSVC_DIR%\%%s\VC\Auxiliary\Build\vcvars%ARCH_BITS%.bat" if exist !MSVC_VCVARS_PATH! ( goto foundmsvc ) ) echo Could not find MSVC && goto error :foundmsvc call "!MSVC_VCVARS_PATH!" set QT_DIR=C:\Qt set QT_VERSION=6.4.2 set QT_COMPILER=msvc2019_%ARCH_BITS% set QT_BIN_DIR=%QT_DIR%\%QT_VERSION%\%QT_COMPILER%\bin rem Download here https://cdn.flipperzero.one/STM32_DFU_USB_Driver.zip set STM32_DRIVER_DIR="C:\STM32 Driver" set QMAKE=%QT_BIN_DIR%\qmake.exe set WINDEPLOYQT=%QT_BIN_DIR%\windeployqt.exe set JOM=%QT_DIR%\Tools\QtCreator\bin\jom\jom.exe set TARGET=qFlipper set TARGET_CLI=%TARGET%-cli set PROTO_TARGET=flipperproto set DRIVER_TOOL=FlipperDriverTool set PROJECT_DIR=%cd% set BUILD_DIR=%PROJECT_DIR%\build set QML_DIR=%PROJECT_DIR%\Application set DIST_DIR=%BUILD_DIR%\%TARGET% set PLUGINS_DIR=%DIST_DIR%\plugins set DRIVER_TOOL_DIR=%PROJECT_DIR%\driver-tool set OPENSSL_DIR=%QT_DIR%\Tools\OpenSSL\Win_x%ARCH_BITS%\bin set VCREDIST_DIR=%QT_DIR%\vcredist set NSIS="%programfiles(x86)%\NSIS\makensis.exe" set VCREDIST2019_EXE=%VCREDIST_DIR%\vcredist_msvc%MSVC_VERSION%_x%ARCH_BITS%.exe rem Visual C++ 2010 from Qt5 package is outdated and have exe sign from 2014. rem It should be replaced with new version that have year 2021 signature, downloaded from Microsoft website set VCREDIST2010_EXE=%VCREDIST_DIR%\vcredist_x%ARCH_BITS%.exe rem if exist %BUILD_DIR% (rmdir /S /Q %BUILD_DIR%) rem Build the application mkdir %BUILD_DIR% cd %BUILD_DIR% %QMAKE% %PROJECT_DIR%\%TARGET%.pro -spec win32-msvc "CONFIG+=qtquickcompiler" &&^ %JOM% qmake_all && %JOM% && %JOM% install || goto error rem Deploy the application cd %DIST_DIR% %WINDEPLOYQT% --release --no-compiler-runtime --dir %DIST_DIR% %PLUGINS_DIR%/%PROTO_TARGET%0.dll &&^ %WINDEPLOYQT% --release --no-compiler-runtime --qmldir %QML_DIR% %TARGET%.exe &&^ %WINDEPLOYQT% --release --no-compiler-runtime %TARGET_CLI%.exe || goto error rem Copy OpenSSL binaries copy /Y %OPENSSL_DIR%\*.dll . rem Copy the driver xcopy /Y /E /I %STM32_DRIVER_DIR% %DIST_DIR%\"STM32 Driver" rem Copy Microsoft Visual C++ redistributable packages copy /Y %VCREDIST2019_EXE% . copy /Y %VCREDIST2010_EXE% . if defined SIGNING_TOOL ( rem Sign the executables call %SIGNING_TOOL% %DIST_DIR%\%TARGET%.exe || goto error call %SIGNING_TOOL% %DIST_DIR%\%TARGET_CLI%.exe || goto error ) rem Make the zip archive as well tar -a -cf %BUILD_DIR%\%TARGET%-%ARCH_BITS%bit.zip * rem Make the installer cd %PROJECT_DIR% %NSIS% /DNAME=%TARGET% /DARCH_BITS=%ARCH_BITS% installer_windows.nsi || goto error timeout /T 5 /NOBREAK > nul if defined SIGNING_TOOL ( rem Sign the installer call %SIGNING_TOOL% %BUILD_DIR%\%TARGET%Setup-%ARCH_BITS%bit.exe || goto error ) echo The resulting installer is %BUILD_DIR%\%TARGET%Setup-%ARCH_BITS%bit.exe. echo Finished. exit 0 :error echo There were errors during the build process! exit 1 flipperdevices-qFlipper-bfce851/cli/000077500000000000000000000000001452337521700175555ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/cli/README.md000066400000000000000000000031061452337521700210340ustar00rootroot00000000000000# qFlipper-cli ### A non-interactive text mode interface for qFlipper This program is mostly meant for testing purposes, although it can also provide all of the qFlipper's features from the comfort of the terminal emulator. ## Running: ### Windows: `\qFlipper\qFlipper-cli.exe [args] [parameters]` ### MacOS: `/qFlipper.app/Contents/MacOS/qFlipper-cli [args] [parameters]` ### Linux: `/qFlipper-x86_64-x.y.z.AppImage cli [args] [parameters]` ## Command syntax: Run without any arguments to perform a quick update/repair. ### Commands: * `backup ` - Backup Internal Memory contents. * `restore ` - Restore Internal Memory contents. * `erase` - Erase Internal Memory contents (Factory reset). * `wipe` - Wipe entire MCU Flash Memory (Not implemented yet). * `firmware ` - Flash Core1 Firmware. * `core2radio ` - Flash Core2 Radio stack. * `core2fus <0xaddress>` - Flash Core2 Firmware Update Service **(WARNING! It WILL invalidate your secure enclave!)** ### Options: * `-d , --debug-level ` - Set debug output level, 0 - errors only, 1 - terse, 2 - everything. Default is 1. * `-n , --repeat-number ` - Repeat an operation *n* times, 0 - indefinitely, default - once. * `-c , --update-channel ` - Set the update channel (may be one of: `release`, `release-candidate`, `development`). The choice is saved in the configuration file, default is `release`. * `-v, --version` - Show program version. * `-h, --help` - Show help. flipperdevices-qFlipper-bfce851/cli/cli.cpp000066400000000000000000000267531452337521700210450ustar00rootroot00000000000000#include "cli.h" #include #include #include "logger.h" #include "preferences.h" #include "flipperzero/flipperzero.h" #include "flipperzero/devicestate.h" Q_LOGGING_CATEGORY(LOG_CLI, "CLI") Cli::Cli(int argc, char *argv[]): QCoreApplication(argc, argv), m_pendingOperation(NoOperation), m_repeatCount(1) { initConnections(); initLogger(); initParser(); processOptions(); processArguments(); qCInfo(LOG_CLI) << "Waiting for devices..."; } Cli::~Cli() {} void Cli::onBackendStateChanged() { const auto state = m_backend.backendState(); if(state == ApplicationBackend::BackendState::ErrorOccured) { qCCritical(LOG_CLI).nospace() << "An error has occurred: " << m_backend.errorType() << ". Exiting."; return exit(-1); } else if(state == ApplicationBackend::BackendState::WaitingForDevices) { qCCritical(LOG_CLI) << "All devices disconnected. Exiting."; return exit(0); } else if(state == ApplicationBackend::BackendState::Ready) { // Start the pending operation as soon as the device is ready... if(m_pendingOperation != DefaultAction) { startPendingOperation(); return; } else if(m_backend.firmwareUpdateState() == ApplicationBackend::FirmwareUpdateState::ErrorOccured) { qCCritical(LOG_CLI) << "Failed to get firmware updates. Exiting."; return exit(-1); } const auto isFirmwareReady = m_backend.firmwareUpdateState() != ApplicationBackend::FirmwareUpdateState::Checking && m_backend.firmwareUpdateState() != ApplicationBackend::FirmwareUpdateState::Unknown; if(isFirmwareReady) { startPendingOperation(); } else { // ... But there are special cases when we might have to wait for the firmware update to become available. connect(&m_backend, &ApplicationBackend::firmwareUpdateStateChanged, this, &Cli::onUpdateStateChanged); } } else if(state == ApplicationBackend::BackendState::Finished) { m_backend.finalizeOperation(); } } void Cli::onUpdateStateChanged() { if(m_backend.firmwareUpdateState() == ApplicationBackend::FirmwareUpdateState::ErrorOccured) { qCCritical(LOG_CLI) << "Failed to get firmware updates. Exiting."; return exit(-1); } const auto isFirmwareReady = m_backend.firmwareUpdateState() != ApplicationBackend::FirmwareUpdateState::Checking && m_backend.firmwareUpdateState() != ApplicationBackend::FirmwareUpdateState::Unknown; if(isFirmwareReady) { disconnect(&m_backend, &ApplicationBackend::firmwareUpdateStateChanged, this, &Cli::onUpdateStateChanged); startPendingOperation(); } } void Cli::initConnections() { connect(&m_backend, &ApplicationBackend::backendStateChanged, this, &Cli::onBackendStateChanged); } void Cli::initLogger() { qInstallMessageHandler(Logger::messageOutput); globalLogger->setLogLevel(Logger::Terse); } void Cli::initParser() { m_parser.addPositionalArgument(QStringLiteral("backup"), QStringLiteral("Backup Internal Memory contents"), QStringLiteral("{backup ,")); m_parser.addPositionalArgument(QStringLiteral("restore"), QStringLiteral("Restore Internal Memory contents"), QStringLiteral("restore ,")); m_parser.addPositionalArgument(QStringLiteral("erase"), QStringLiteral("Erase Internal Memory contents"), QStringLiteral("erase,")); m_parser.addPositionalArgument(QStringLiteral("wipe"), QStringLiteral("Wipe entire MCU Flash Memory"), QStringLiteral("wipe,")); m_parser.addPositionalArgument(QStringLiteral("firmware"), QStringLiteral("Flash Core1 Firmware"), QStringLiteral("firmware ,")); m_parser.addPositionalArgument(QStringLiteral("core2radio"), QStringLiteral("Flash Core2 Radio stack"), QStringLiteral("core2radio ,")); m_parser.addPositionalArgument(QStringLiteral("core2fus"), QStringLiteral("Flash Core2 Firmware Update Service"), QStringLiteral("core2fus }")); m_options.append(QCommandLineOption({QStringLiteral("d"), QStringLiteral("debug-level")}, QStringLiteral("0 - Errors Only, 1 - Terse, 2 - Full"), QStringLiteral("1"))); m_options.append(QCommandLineOption({QStringLiteral("n"), QStringLiteral("repeat-number")}, QStringLiteral("Number of times to repeat the operation, 0 - indefinitely"), QStringLiteral("1"))); m_options.append(QCommandLineOption({QStringLiteral("c"), QStringLiteral("update-channel")}, QStringLiteral("Update channel for Firmware Update/Repair"), globalPrefs->firmwareUpdateChannel())); m_parser.setApplicationDescription(QStringLiteral("A text mode non-interactive qFlipper counterpart. Run without arguments to quickly perform Firmware Update/Repair.")); m_parser.addOptions(m_options); m_parser.addVersionOption(); m_parser.addHelpOption(); m_parser.process(*this); } void Cli::processOptions() { processDebugLevelOption(); processRepeatNumberOption(); processUpdateChannelOption(); } void Cli::processArguments() { const auto args = m_parser.positionalArguments(); if(args.isEmpty()) { beginDefaultAction(); } else if(args.startsWith(QStringLiteral("backup"))) { beginBackup(); } else if(args.startsWith(QStringLiteral("restore"))) { beginRestore(); } else if(args.startsWith(QStringLiteral("erase"))) { beginErase(); } else if(args.startsWith(QStringLiteral("wipe"))) { beginWipe(); } else if(args.startsWith(QStringLiteral("firmware"))) { beginFirmware(); } else if(args.startsWith(QStringLiteral("core2radio"))) { beginCore2Radio(); } else if(args.startsWith(QStringLiteral("core2fus"))) { beginCore2FUS(); } else { m_parser.showHelp(-1); } } void Cli::processDebugLevelOption() { const auto &debugLevelOption = m_options[DebugLevelOption]; if(!m_parser.isSet(debugLevelOption)) { return; } bool canConvert; const auto num = m_parser.value(debugLevelOption).toInt(&canConvert); if(!canConvert || (num < 0 || num > 2)) { qCCritical(LOG_CLI) << "Debug level must be one of the following values: 0, 1, 2."; std::exit(-1); } globalLogger->setLogLevel((Logger::LogLevel)num); } void Cli::processRepeatNumberOption() { const auto &repeatNumberOption = m_options[RepeatNumberOption]; if(!m_parser.isSet(repeatNumberOption)) { return; } bool canConvert; const auto num = m_parser.value(repeatNumberOption).toInt(&canConvert); if(!canConvert || (num < 0)) { qCCritical(LOG_CLI) << "Repeat number must be a whole non-negative number."; std::exit(-1); } qCInfo(LOG_CLI).noquote() << "Will repeat the operation" << (num ? QStringLiteral("%1 times.").arg(num) : QStringLiteral("indefinitely.")); m_repeatCount = num ? num : -1; } void Cli::processUpdateChannelOption() { const auto &updateChannelOption = m_options[UpdateChannelOption]; if(!m_parser.isSet(updateChannelOption)) { return; } static const QStringList allowedChannelNames = { QStringLiteral("release"), QStringLiteral("release-candidate"), QStringLiteral("development") }; const auto channelName = m_parser.value(updateChannelOption); if(!allowedChannelNames.contains(channelName)) { qCCritical(LOG_CLI) << "Unknown update channel. Possible channels are:" << allowedChannelNames; std::exit(-1); } globalPrefs->setFirmwareUpdateChannel(channelName); } void Cli::beginDefaultAction() { qCInfo(LOG_CLI) << "Performing full firmware update..."; m_pendingOperation = DefaultAction; } void Cli::beginBackup() { verifyArgumentCount(2); m_fileParameter = QUrl::fromLocalFile(m_parser.positionalArguments().at(1)); qCInfo(LOG_CLI).noquote().nospace() << "Performing internal storage backup to " << m_fileParameter.toLocalFile() << "..."; m_pendingOperation = Backup; } void Cli::beginRestore() { verifyArgumentCount(2); m_fileParameter = QUrl::fromLocalFile(m_parser.positionalArguments().at(1)); qCInfo(LOG_CLI).noquote().nospace() << "Performing internal restore from " << m_fileParameter.toLocalFile() << "..."; m_pendingOperation = Restore; } void Cli::beginErase() { verifyArgumentCount(1); qCInfo(LOG_CLI) << "Performing device factory reset..."; m_pendingOperation = Erase; } void Cli::beginWipe() { qCCritical(LOG_CLI) << "Wipe is not implemented yet. Sorry!"; std::exit(-1); } void Cli::beginFirmware() { verifyArgumentCount(2); const auto arg = m_parser.positionalArguments().at(1); if(!arg.endsWith(QStringLiteral(".dfu"), Qt::CaseInsensitive)) { qCCritical(LOG_CLI) << "Please provide a firmware file in DFUse format."; std::exit(-1); } m_fileParameter = QUrl::fromLocalFile(arg); qCInfo(LOG_CLI).noquote().nospace() << "Performing Firmware installation from " << m_fileParameter.toLocalFile() << "..."; m_pendingOperation = Firmware; } void Cli::beginCore2Radio() { verifyArgumentCount(2); const auto arg = m_parser.positionalArguments().at(1); if(!arg.endsWith(QStringLiteral(".bin"), Qt::CaseInsensitive)) { qCCritical(LOG_CLI) << "Please provide a firmware file in .bin format."; std::exit(-1); } m_fileParameter = QUrl::fromLocalFile(arg); qCInfo(LOG_CLI).noquote().nospace() << "Performing Radio Firmware installation from " << m_fileParameter.toLocalFile() << "..."; m_pendingOperation = Core2Radio; } void Cli::beginCore2FUS() { verifyArgumentCount(3); const auto args = m_parser.positionalArguments(); const auto &arg1 = args[1]; const auto &arg2 = args[2]; if(!arg1.endsWith(QStringLiteral(".bin"), Qt::CaseInsensitive)) { qCCritical(LOG_CLI) << "Please provide a firmware file in .bin format."; std::exit(-1); } m_fileParameter = QUrl::fromLocalFile(arg1); bool canConvert; m_core2Address = arg2.toULong(&canConvert, 16); if(!canConvert) { qCCritical(LOG_CLI) << "Please provide a valid hexadecimal address."; std::exit(-1); } m_pendingOperation = Core2FUS; } void Cli::startPendingOperation() { if(m_repeatCount == 0) { qCInfo(LOG_CLI) << "All done! Thank you."; return exit(0); } else if(m_repeatCount > 0) { --m_repeatCount; } if(m_pendingOperation == DefaultAction) { m_backend.mainAction(); } else if(m_pendingOperation == Backup) { m_backend.createBackup(m_fileParameter); } else if(m_pendingOperation == Restore) { m_backend.restoreBackup(m_fileParameter); } else if(m_pendingOperation == Erase) { m_backend.factoryReset(); } else if(m_pendingOperation == Wipe) { // Not implemented yet } else if(m_pendingOperation == Firmware) { m_backend.installFirmware(m_fileParameter); } else if(m_pendingOperation == Core2Radio) { m_backend.installWirelessStack(m_fileParameter); } else if(m_pendingOperation == Core2FUS) { m_backend.installFUS(m_fileParameter, m_core2Address); } else { qCCritical(LOG_CLI) << "Unhandled operation. Probably a bug!"; exit(-1); } } void Cli::verifyArgumentCount(int num) { const auto argCount = m_parser.positionalArguments().size(); if(argCount != num) { qCCritical(LOG_CLI).nospace() << "Expected " << num << " arguments, got " << argCount << ". Exiting."; std::exit(-1); } } flipperdevices-qFlipper-bfce851/cli/cli.h000066400000000000000000000025511452337521700205000ustar00rootroot00000000000000#pragma once #include #include #include #include "applicationbackend.h" class Cli : public QCoreApplication { Q_OBJECT enum OperationType { NoOperation, DefaultAction, Backup, Restore, Erase, Wipe, Firmware, Core2Radio, Core2FUS }; enum OptionIndex { DebugLevelOption = 0, RepeatNumberOption, UpdateChannelOption }; public: Cli(int argc, char *argv[]); ~Cli(); private slots: void onBackendStateChanged(); void onUpdateStateChanged(); private: void initConnections(); void initLogger(); void initParser(); void processOptions(); void processArguments(); void processDebugLevelOption(); void processRepeatNumberOption(); void processUpdateChannelOption(); void beginDefaultAction(); void beginBackup(); void beginRestore(); void beginErase(); void beginWipe(); void beginFirmware(); void beginCore2Radio(); void beginCore2FUS(); void startPendingOperation(); void verifyArgumentCount(int num); QCommandLineParser m_parser; QList m_options; ApplicationBackend m_backend; OperationType m_pendingOperation; QUrl m_fileParameter; uint32_t m_core2Address; int m_repeatCount; }; flipperdevices-qFlipper-bfce851/cli/cli.pro000066400000000000000000000031161452337521700210470ustar00rootroot00000000000000QT -= gui QT += serialport network include(../qflipper_common.pri) TARGET = $${NAME}-cli DESTDIR = $$OUT_PWD/.. CONFIG += c++11 console CONFIG -= app_bundle win32:!win32-g++ { PRE_TARGETDEPS += \ $$OUT_PWD/../backend/backend.lib \ $$OUT_PWD/../dfu/dfu.lib } else:unix|win32-g++ { PRE_TARGETDEPS += \ $$OUT_PWD/../backend/libbackend.a \ $$OUT_PWD/../dfu/libdfu.a contains(CONFIG, static): PRE_TARGETDEPS += \ $$OUT_PWD/../plugins/libflipperproto0.a \ $$OUT_PWD/../3rdparty/lib3rdparty.a } unix|win32 { LIBS += \ -L$$OUT_PWD/../backend/ -lbackend \ -L$$OUT_PWD/../dfu/ -ldfu contains(CONFIG, static): LIBS += \ -L$$OUT_PWD/../plugins/ -lflipperproto0 \ -L$$OUT_PWD/../3rdparty/ -l3rdparty } win32 { equals(HAS_VERSION, 0) { RC_SUFFIX = -rc contains(GIT_VERSION, .*$${RC_SUFFIX}.*) { # Remove -rc suffix as it isn't allowed in Windows manifest TOKENS = $$split(GIT_VERSION, -) VERSION = $$first(TOKENS) } else { VERSION = $$GIT_VERSION } } else: VERSION = 0.0.0 } macx: ICON = $$PWD/../application/assets/icons/$${NAME}.icns else:win32: RC_ICONS = $$PWD/../application/assets/icons/$${NAME}-cli.ico INCLUDEPATH += \ $$PWD/../dfu \ $$PWD/../backend SOURCES += \ main.cpp \ cli.cpp HEADERS += \ cli.h unix:!macx { target.path = $$PREFIX/bin } else:macx { target.path = $$DESTDIR/$${NAME}.app/Contents/MacOS } else:win32 { target.path = $$DESTDIR/$$NAME } INSTALLS += target flipperdevices-qFlipper-bfce851/cli/main.cpp000066400000000000000000000007431452337521700212110ustar00rootroot00000000000000#include "cli.h" #include int main(int argc, char *argv[]) { QSettings::setDefaultFormat(QSettings::IniFormat); QCoreApplication::setApplicationName(QStringLiteral("%1-cli").arg(APP_NAME)); QCoreApplication::setApplicationVersion(APP_VERSION); QCoreApplication::setOrganizationName(QStringLiteral("Flipper Devices Inc")); QCoreApplication::setOrganizationDomain(QStringLiteral("flipperdevices.com")); Cli a(argc, argv); return a.exec(); } flipperdevices-qFlipper-bfce851/contrib/000077500000000000000000000000001452337521700204465ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/contrib/README.md000066400000000000000000000003161452337521700217250ustar00rootroot00000000000000# Contributed packages This directory contains community-contributed files for various package management systems. None of them were tested by Flipper QA. For each system, see the respective subdirectory. flipperdevices-qFlipper-bfce851/contrib/nix/000077500000000000000000000000001452337521700212445ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/contrib/nix/README.md000066400000000000000000000025441452337521700225300ustar00rootroot00000000000000# Nix packaging for qFlipper ## Building __Check that you have at least Nix 2.6.__ You can build qFlipper via Nix with one command. ``` nix build --experimental-features "nix-command flakes" 'github:flipperdevices/qFlipper?dir=contrib/nix&submodules=1' ``` For simplicity, I will leave out `--experimental-features "nix-command flakes"` in further examples. [Enable flakes](#Enabling%20flakes) to leave those options out. If you wish to use a different version of qFlipper, just specify the commit hash or revision after the repo path. ``` nix build 'github:flipperdevices/qFlipper/COMMIT_HASH_OR_REVISION?dir=contrib/nix&submodules=1' ``` _Note that it won't work for revisions not containing Nix Flake files_ Built binaries will be located in `./result/bin` folder. ## Development Run `nix develop 'contrib/nix?submodules=1'` This will drop you in the shell with all required build dependencies. After this, you can proceed as usual: ``` mkdir build cd build qmake .. make -j30 ``` You may also need to run `makeQtWrapper ./binary ./wrapper` on built binaries to generate wrapper shell script, which would load all the required QT environment variables. ### Enabling flakes If you wish to never again write `--experimental-features "nix-command flakes"`: ``` mkdir -p ~/.config/nix echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf ``` flipperdevices-qFlipper-bfce851/contrib/nix/default.nix000066400000000000000000000044151452337521700234140ustar00rootroot00000000000000{ stdenv , lib , fetchFromGitHub , pkg-config , zlib , libusb1 , libGL , qmake , wrapQtAppsHook , mkDerivation , qttools , qtbase , qt3d , qtsvg , qtserialport , qtdeclarative , qtquickcontrols , qtquickcontrols2 , qtgraphicaleffects , qtwayland }: let version = "0.8.2"; timestamp = "99999999999"; commit = "nix-${version}"; udev_rules = '' #Flipper Zero serial port SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ATTRS{manufacturer}=="Flipper Devices Inc.", TAG+="uaccess" #Flipper Zero DFU SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", ATTRS{manufacturer}=="STMicroelectronics", TAG+="uaccess" ''; in mkDerivation { name = "qFlipper"; inherit version; src = ../..; nativeBuildInputs = [ pkg-config qmake qttools ]; buildInputs = [ zlib libusb1 libGL wrapQtAppsHook qtbase qt3d qtsvg qtserialport qtdeclarative qtquickcontrols qtquickcontrols2 qtgraphicaleffects ] ++ lib.optionals (stdenv.isLinux) [ qtwayland ]; qmakeFlags = [ "DEFINES+=DISABLE_APPLICATION_UPDATES" ]; preBuild = '' substituteInPlace qflipper_common.pri \ --replace 'GIT_VERSION = unknown' 'GIT_VERSION = "${version}"' \ --replace 'GIT_TIMESTAMP = 0' 'GIT_TIMESTAMP = ${timestamp}' \ --replace 'GIT_COMMIT = unknown' 'GIT_COMMIT = "${commit}"' ''; installPhase = '' mkdir -p $out/bin '' + ( if stdenv.isLinux then '' cp qFlipper $out/bin '' else '' cp qFlipper.app/Contents/MacOS/qFlipper $out/bin '' ) + '' cp qFlipperTool $out/bin mkdir -p $out/share/applications cp installer-assets/appimage/qFlipper.desktop $out/share/applications mkdir -p $out/share/icons cp application/assets/icons/qFlipper.png $out/share/icons mkdir -p $out/etc/udev/rules.d tee $out/etc/udev/rules.d/42-flipperzero.rules << EOF ${udev_rules} EOF ''; meta = with lib; { description = "Cross-platform desktop tool to manage your flipper device"; homepage = "https://flipperzero.one/"; license = licenses.gpl3; maintainers = with maintainers; [ cab404 ]; platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; # qtbase doesn't build yet on aarch64-darwin }; } flipperdevices-qFlipper-bfce851/contrib/nix/flake.lock000066400000000000000000000016641452337521700232070ustar00rootroot00000000000000{ "nodes": { "nixpkgs": { "locked": { "lastModified": 1644033087, "narHash": "sha256-beskas17YPhrcnanzywake9/z+k+xOWmavW24YUN8ng=", "owner": "nixos", "repo": "nixpkgs", "rev": "9f697d60e4d9f08eacf549502528bfaed859d33b", "type": "github" }, "original": { "id": "nixpkgs", "type": "indirect" } }, "root": { "inputs": { "nixpkgs": "nixpkgs", "utils": "utils" } }, "utils": { "locked": { "lastModified": 1644229661, "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "owner": "numtide", "repo": "flake-utils", "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { "owner": "numtide", "repo": "flake-utils", "type": "github" } } }, "root": "root", "version": 7 } flipperdevices-qFlipper-bfce851/contrib/nix/flake.nix000066400000000000000000000004611452337521700230470ustar00rootroot00000000000000{ inputs = { utils.url = "github:numtide/flake-utils"; }; outputs = { nixpkgs, self, utils }: utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; in { defaultPackage = pkgs.libsForQt515.callPackage ./. { }; nixpkgs = pkgs; }); } flipperdevices-qFlipper-bfce851/dfu/000077500000000000000000000000001452337521700175645ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/dfu/debug.cpp000066400000000000000000000000761452337521700213610ustar00rootroot00000000000000#include "debug.h" Q_LOGGING_CATEGORY(CATEGORY_DEBUG, "DBG") flipperdevices-qFlipper-bfce851/dfu/debug.h000066400000000000000000000022111452337521700210170ustar00rootroot00000000000000#pragma once #include #include Q_DECLARE_LOGGING_CATEGORY(CATEGORY_DEBUG) #define check_return_bool(condition, failMsg) \ if(!(condition)) { \ qCDebug(CATEGORY_DEBUG).noquote() << (failMsg); \ return false; \ } #define check_return_void(condition, failMsg) \ if(!(condition)) { \ qCDebug(CATEGORY_DEBUG).noquote() << (failMsg); \ return; \ } #define check_return_val(condition, failMsg, val) \ if(!(condition)) { \ qCDebug(CATEGORY_DEBUG).noquote() << (failMsg); \ return val; \ } #define check_continue(condition, failMsg) \ if(!(condition)) { \ qCDebug(CATEGORY_DEBUG).noquote() << (failMsg); \ } #define error_msg(msg) \ qCDebug(CATEGORY_DEBUG).noquote() << (msg); #define debug_msg(msg) \ qCDebug(CATEGORY_DEBUG).noquote() << (msg); #define begin_ignore_block() \ qCDebug(CATEGORY_DEBUG).noquote() << "vvv ATTENTION: Ignore errors below until matching closing message. vvv"; #define end_ignore_block() \ qCDebug(CATEGORY_DEBUG).noquote() << "^^^ ATTENTION: Ignore errors above until matching opening message. ^^^"; flipperdevices-qFlipper-bfce851/dfu/device/000077500000000000000000000000001452337521700210235ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55.h000066400000000000000000000000561452337521700226500ustar00rootroot00000000000000#pragma once #include "stm32wb55/stm32wb55.h" flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55/000077500000000000000000000000001452337521700224765ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55/fusstate.cpp000066400000000000000000000033371452337521700250460ustar00rootroot00000000000000#include "fusstate.h" namespace STM32 { namespace WB55 { FUSState::FUSState(Status s, Error e): m_status(s), m_error(e) { // Some statuses will have a range of values, normalising them here const auto regular = m_status == Idle || m_status == ErrorOccured || m_status == Invalid; m_status = regular? m_status : static_cast(m_status & 0xFFFFFFF0U); } FUSState::Status FUSState::status() const { return m_status; } FUSState::Error FUSState::error() const { return m_error; } bool FUSState::isValid() const { return m_status != Invalid; } const QString FUSState::statusString() const { switch(m_status) { case Idle: return "Idle"; case FWUpgradeOngoing: return "Firmware upgrade ongoing"; case ServiceOngoing: return "Service Ongoing"; case ErrorOccured: return "Error occurred"; case Invalid: default: return "Invalid state"; } } const QString FUSState::errorString() const { switch (m_error) { case NoError: return "No error"; case ImageNotFound: return "Image not found"; case ImageCorrupt: return "Image corrupt"; case ImageNotAuthentic: return "Image not authentic"; case NotEnoughSpace: return "Not enough space"; case UserAbort: return "User abort"; case EraseError: return "Erase error"; case WriteError: return "Write error"; case STTagNotFound: return "ST Microelectronics tag not found"; case CustomTagNotFound: return "User-specified tag not found"; case AuthKeyLocked: return "Auth key locked"; case RollBackError: return "Rollback error"; case NotRunning: return "Not running"; case Unknown: default: return "Unknown error"; } } }} flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55/fusstate.h000066400000000000000000000017151452337521700245110ustar00rootroot00000000000000#pragma once #include namespace STM32 { namespace WB55 { class FUSState { public: enum Status : uint32_t { Idle = 0x00, FWUpgradeOngoing = 0x10, FUSUpgradeOngoing = 0x20, ServiceOngoing = 0x30, ErrorOccured = 0xFF, Invalid = 0x0BADF00D }; enum Error : uint32_t { NoError = 0x00, ImageNotFound, ImageCorrupt, ImageNotAuthentic, NotEnoughSpace, UserAbort, EraseError, WriteError, STTagNotFound, CustomTagNotFound, AuthKeyLocked, RollBackError = 0x11, NotRunning = 0xFE, Unknown = 0xFF }; FUSState() = default; FUSState(Status s, Error e); Status status() const; Error error() const; bool isValid() const; const QString statusString() const; const QString errorString() const; private: Status m_status = Invalid; Error m_error = Unknown; }; }} flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55/infotable.h000066400000000000000000000035101452337521700246110ustar00rootroot00000000000000#pragma once #include // AN5185 by STM32, pg. 19-20 // https://www.st.com/resource/en/application_note/dm00513965-st-firmware-upgrade-services-for-stm32wb-series-stmicroelectronics.pdf namespace STM32 { namespace WB55 { #pragma pack(push) namespace Subtables { struct VersionInfo { uint8_t build:4; uint8_t branch:4; uint8_t sub; uint8_t minor; uint8_t major; }; struct MemoryInfo { uint8_t flashSectorsUsed; uint8_t reserved; uint8_t SRAM2aSectorsUsed; uint8_t SRAM2bSectorsUsed; }; } struct FUSDeviceInfoTable { uint32_t magic; uint8_t reserved1; uint8_t lastFUSActiveState; uint8_t lastWirelessStackState; uint8_t wirelessStackType; Subtables::VersionInfo safeBootVersion; Subtables::VersionInfo FUSVersion; Subtables::MemoryInfo FUSMemorySize; Subtables::VersionInfo wirelessStackVersion; Subtables::MemoryInfo wirelessStackMemorySize; uint32_t wirelessFirmwareBleInfo; uint32_t wirelessFirmwareThreadInfo; uint32_t reserved2; uint64_t UID64; uint16_t deviceID; uint32_t padding_ /* padding for 32 bits build */; }; struct DeviceInfoTable { Subtables::VersionInfo safeBootVersion; struct { Subtables::VersionInfo version; Subtables::MemoryInfo memory; uint32_t info; } FUS; struct { Subtables::VersionInfo version; Subtables::MemoryInfo memory; uint32_t info; uint32_t reserved; } WirelessStack; }; #pragma pack(pop) static_assert (sizeof(Subtables::VersionInfo) == 4, "Check your struct packing!"); static_assert (sizeof(Subtables::MemoryInfo) == 4, "Check your struct packing!"); static_assert (sizeof(FUSDeviceInfoTable) == 56, "Check your struct packing!"); static_assert (sizeof(DeviceInfoTable) == 32, "Check your struct packing!"); }} flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55/optionbytes.cpp000066400000000000000000000272431452337521700255710ustar00rootroot00000000000000#include "optionbytes.h" #include #include #include "debug.h" #define OPTION_BYTES_SIZE 128 #define NORMAL 0 #define COMPLEMENT 1 namespace STM32 { namespace WB55 { OptionBytes::OptionBytes(): m_isValid(false) {} OptionBytes::OptionBytes(const QByteArray &data): OptionBytes() { setData(data); } OptionBytes::OptionBytes(QIODevice *file): OptionBytes() { while(!file->atEnd()) { const auto tokens = file->readLine().split(':'); check_return_void(tokens.size() == 3, "Malformed Option Bytes file"); QRegExp alphanum("[^A-Za-z0-9_]"); QRegExp hex("[^0-9xXA-Fa-f]"); const auto &fieldName = tokens[0]; const auto &hexValue = tokens[1]; check_return_void(alphanum.indexIn(fieldName) < 0, QString("Illegal character(s) in the field name: ") + fieldName); check_return_void(hex.indexIn(hexValue) < 0, QString("Illegal character(s) in the field value: ") + hexValue); check_return_void(fieldNames().contains(fieldName), QString("Illegal field name: ") + fieldName); bool canConvert; const auto value = hexValue.toUInt(&canConvert, 16); check_return_void(canConvert, QString("Cannot convert given register value to a number: ") + hexValue); m_data.insert(fieldName, value); } m_isValid = true; } OptionBytes OptionBytes::invalid() { return OptionBytes(); } qint64 OptionBytes::size() { return OPTION_BYTES_SIZE; } const QVector &OptionBytes::fieldNames() { const static QVector names { "RDP", "BOR_LEV", "nBOOT0", "nBOOT1", "nSWBOOT0", "SRAM2RST", "SRAM2PE", "nRST_STOP", "nRST_STDBY", "nRSTSHDW", "WWDGSW", "IWDGSTDBY", "IWGDSTDBY", // correcting for STM's derp "IWDGSTOP", "IWDGSW", "IPCCDBA", "ESE", "SFSA", "FSD", "DDS", "C2OPT", "NBRSD", "SNBRSA", "BRSD", "SBRSA", "SBRV", "PCROP1A_STRT", "PCROP1A_END", "PCROP_RDP", "PCROP1B_STRT", "PCROP1B_END", "WRP1A_STRT", "WRP1A_END", "WRP1B_STRT", "WRP1B_END", "AGC_TRIM" }; return names; } bool OptionBytes::isValid() const { return m_isValid; } QByteArray OptionBytes::data() const { OptionBytesData ds; for(auto it = m_data.constKeyValueBegin(); it != m_data.constKeyValueEnd(); ++it) { const auto &fieldName = (*it).first; const auto value = (*it).second; if(fieldName == fieldNames()[0]) { ds.word1[NORMAL].RDP = value; ds.word1[COMPLEMENT].RDP = ~value; } else if(fieldName == fieldNames()[1]) { ds.word1[NORMAL].BOR_LEV = value; ds.word1[COMPLEMENT].BOR_LEV = ~value; } else if(fieldName == fieldNames()[2]) { ds.word1[NORMAL].nBOOT0 = value; ds.word1[COMPLEMENT].nBOOT0 = !value; } else if(fieldName == fieldNames()[3]) { ds.word1[NORMAL].nBOOT1 = value; ds.word1[COMPLEMENT].nBOOT1 = !value; } else if(fieldName == fieldNames()[4]) { ds.word1[NORMAL].nSWBOOT0 = value; ds.word1[COMPLEMENT].nSWBOOT0 = !value; } else if(fieldName == fieldNames()[5]) { ds.word1[NORMAL].SRAM2RST = value; ds.word1[COMPLEMENT].SRAM2RST = !value; } else if(fieldName == fieldNames()[6]) { ds.word1[NORMAL].SRAM2PE = value; ds.word1[COMPLEMENT].SRAM2PE = !value; } else if(fieldName == fieldNames()[7]) { ds.word1[NORMAL].nRST_STOP = value; ds.word1[COMPLEMENT].nRST_STOP = !value; } else if(fieldName == fieldNames()[8]) { ds.word1[NORMAL].nRST_STDBY = value; ds.word1[COMPLEMENT].nRST_STDBY = !value; } else if(fieldName == fieldNames()[9]) { ds.word1[NORMAL].nRSTSHDW = value; ds.word1[COMPLEMENT].nRSTSHDW = !value; } else if(fieldName == fieldNames()[10]) { ds.word1[NORMAL].WWDGSW = value; ds.word1[COMPLEMENT].WWDGSW = !value; } else if(fieldName == fieldNames()[11]) { ds.word1[NORMAL].IWDGSTDBY = value; ds.word1[COMPLEMENT].IWDGSTDBY = !value; } else if(fieldName == fieldNames()[13]) { // no index 12 is intentional ds.word1[NORMAL].IWDGSTOP = value; ds.word1[COMPLEMENT].IWDGSTOP = !value; } else if(fieldName == fieldNames()[14]) { ds.word1[NORMAL].IWDGSW = value; ds.word1[COMPLEMENT].IWDGSW = !value; } else if(fieldName == fieldNames()[15]) { ds.word8[NORMAL].IPCCDBA = value; ds.word8[COMPLEMENT].IPCCDBA = ~value; } else if(fieldName == fieldNames()[16]) { ds.word1[NORMAL].ESE = value; ds.word1[COMPLEMENT].ESE = !value; } else if(fieldName == fieldNames()[17]) { ds.word9[NORMAL].SFSA = value; ds.word9[COMPLEMENT].SFSA = ~value; } else if(fieldName == fieldNames()[18]) { ds.word9[NORMAL].FSD = value; ds.word9[COMPLEMENT].FSD = !value; } else if(fieldName == fieldNames()[19]) { ds.word9[NORMAL].DDS = value; ds.word9[COMPLEMENT].DDS = !value; } else if(fieldName == fieldNames()[20]) { ds.word10[NORMAL].C2OPT = value; ds.word10[COMPLEMENT].C2OPT = !value; } else if(fieldName == fieldNames()[21]) { ds.word10[NORMAL].NBRSD = value; ds.word10[COMPLEMENT].NBRSD = !value; } else if(fieldName == fieldNames()[22]) { ds.word10[NORMAL].SNBRSA = value; ds.word10[COMPLEMENT].SNBRSA = ~value; } else if(fieldName == fieldNames()[23]) { ds.word10[NORMAL].BRSD = value; ds.word10[COMPLEMENT].BRSD = !value; } else if(fieldName == fieldNames()[24]) { ds.word10[NORMAL].SBRSA = value; ds.word10[COMPLEMENT].SBRSA = ~value; } else if(fieldName == fieldNames()[25]) { ds.word10[NORMAL].SBRV = value; ds.word10[COMPLEMENT].SBRV = ~value; } else if(fieldName == fieldNames()[26]) { ds.word2[NORMAL].PCROP1A_STRT = value; ds.word2[COMPLEMENT].PCROP1A_STRT = ~value; } else if(fieldName == fieldNames()[27]) { ds.word3[NORMAL].PCROP1A_END = value; ds.word3[COMPLEMENT].PCROP1A_END = ~value; } else if(fieldName == fieldNames()[28]) { ds.word3[NORMAL].PCROP_RDP = value; ds.word3[COMPLEMENT].PCROP_RDP = !value; } else if(fieldName == fieldNames()[29]) { ds.word6[NORMAL].PCROP1B_STRT = value; ds.word6[COMPLEMENT].PCROP1B_STRT = ~value; } else if(fieldName == fieldNames()[30]) { ds.word7[NORMAL].PCROP1B_END = value; ds.word7[COMPLEMENT].PCROP1B_END = ~value; } else if(fieldName == fieldNames()[31]) { ds.word4[NORMAL].WRP1A_STRT = value; ds.word4[COMPLEMENT].WRP1A_STRT = ~value; } else if(fieldName == fieldNames()[32]) { ds.word4[NORMAL].WRP1A_END = value; ds.word4[COMPLEMENT].WRP1A_END = ~value; } else if(fieldName == fieldNames()[33]) { ds.word5[NORMAL].WRP1B_STRT = value; ds.word5[COMPLEMENT].WRP1B_STRT = ~value; } else if(fieldName == fieldNames()[34]) { ds.word5[NORMAL].WRP1B_END = value; ds.word5[COMPLEMENT].WRP1B_END = ~value; } else if(fieldName == fieldNames()[35]) { ds.word1[NORMAL].AGC_TRIM = value; ds.word1[COMPLEMENT].AGC_TRIM = ~value; } else {} } return QByteArray((const char*)(&ds), sizeof(OptionBytesData)); } void OptionBytes::setData(const QByteArray &data) { m_isValid = data.size() == OPTION_BYTES_SIZE; check_return_void(m_isValid, "Unexpected data size"); m_data.clear(); const auto ds = *((OptionBytesData*)data.data()); m_data.insert(fieldNames()[ 0], ds.word1[NORMAL].RDP); m_data.insert(fieldNames()[ 1], ds.word1[NORMAL].BOR_LEV); m_data.insert(fieldNames()[ 2], ds.word1[NORMAL].nBOOT0); m_data.insert(fieldNames()[ 3], ds.word1[NORMAL].nBOOT1); m_data.insert(fieldNames()[ 4], ds.word1[NORMAL].nSWBOOT0); m_data.insert(fieldNames()[ 5], ds.word1[NORMAL].SRAM2RST); m_data.insert(fieldNames()[ 6], ds.word1[NORMAL].SRAM2PE); m_data.insert(fieldNames()[ 7], ds.word1[NORMAL].nRST_STOP); m_data.insert(fieldNames()[ 8], ds.word1[NORMAL].nRST_STDBY); m_data.insert(fieldNames()[ 9], ds.word1[NORMAL].nRSTSHDW); m_data.insert(fieldNames()[10], ds.word1[NORMAL].WWDGSW); m_data.insert(fieldNames()[11], ds.word1[NORMAL].IWDGSTDBY); m_data.insert(fieldNames()[12], ds.word1[NORMAL].IWDGSTDBY); // correcting for STM's derp m_data.insert(fieldNames()[13], ds.word1[NORMAL].IWDGSTOP); m_data.insert(fieldNames()[14], ds.word1[NORMAL].IWDGSW); m_data.insert(fieldNames()[15], ds.word8[NORMAL].IPCCDBA); m_data.insert(fieldNames()[16], ds.word1[NORMAL].ESE); m_data.insert(fieldNames()[17], ds.word9[NORMAL].SFSA); m_data.insert(fieldNames()[18], ds.word9[NORMAL].FSD); m_data.insert(fieldNames()[19], ds.word9[NORMAL].DDS); m_data.insert(fieldNames()[20], ds.word10[NORMAL].C2OPT); m_data.insert(fieldNames()[21], ds.word10[NORMAL].NBRSD); m_data.insert(fieldNames()[22], ds.word10[NORMAL].SNBRSA); m_data.insert(fieldNames()[23], ds.word10[NORMAL].BRSD); m_data.insert(fieldNames()[24], ds.word10[NORMAL].SBRSA); m_data.insert(fieldNames()[25], ds.word10[NORMAL].SBRV); m_data.insert(fieldNames()[26], ds.word2[NORMAL].PCROP1A_STRT); m_data.insert(fieldNames()[27], ds.word3[NORMAL].PCROP1A_END); m_data.insert(fieldNames()[28], ds.word3[NORMAL].PCROP_RDP); m_data.insert(fieldNames()[29], ds.word6[NORMAL].PCROP1B_STRT); m_data.insert(fieldNames()[30], ds.word7[NORMAL].PCROP1B_END); m_data.insert(fieldNames()[31], ds.word4[NORMAL].WRP1A_STRT); m_data.insert(fieldNames()[32], ds.word4[NORMAL].WRP1A_END); m_data.insert(fieldNames()[33], ds.word5[NORMAL].WRP1B_STRT); m_data.insert(fieldNames()[34], ds.word5[NORMAL].WRP1B_END); m_data.insert(fieldNames()[35], ds.word1[NORMAL].AGC_TRIM); } uint32_t OptionBytes::value(const QByteArray &fieldName) const { check_return_val(fieldNames().contains(fieldName), QString("Illegal field name: ") + fieldName, std::numeric_limits::max()); check_return_val(m_data.contains(fieldName), QString("Field name allowed, but not set: ") + fieldName, std::numeric_limits::max()); return m_data[fieldName]; } void OptionBytes::setValue(const QByteArray &fieldName, uint32_t value) { check_return_void(fieldNames().contains(fieldName), QString("Illegal field name: ") + fieldName); m_data[fieldName] = value; } OptionBytes::DataMap OptionBytes::compare(const OptionBytes &other) const { DataMap cmp; for(auto it = other.m_data.constKeyValueBegin(); it != other.m_data.constKeyValueEnd(); ++it) { const auto &fieldName = (*it).first; if(m_data.contains(fieldName)) { const auto right = (*it).second; const auto left = m_data[fieldName]; if(left != right) { cmp.insert(fieldName, right); } } else { cmp.insert(fieldName, (*it).second); } } return cmp; } OptionBytes OptionBytes::corrected(const DataMap &diff) const { OptionBytes res = (*this); for(auto it = diff.constKeyValueBegin(); it != diff.constKeyValueEnd(); ++it) { res.setValue((*it).first, (*it).second); } return res; } } } flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55/optionbytes.h000066400000000000000000000061641452337521700252350ustar00rootroot00000000000000#pragma once #include #include #include #include class QIODevice; namespace STM32 { namespace WB55 { class OptionBytes { #pragma pack(push,1) struct OptionBytesData { struct Word1 { unsigned RDP:8; unsigned ESE:1; unsigned BOR_LEV:3; unsigned nRST_STOP:1; unsigned nRST_STDBY:1; unsigned nRSTSHDW:1; unsigned UNUSED1:1; unsigned IWDGSW:1; unsigned IWDGSTOP:1; unsigned IWDGSTDBY:1; unsigned WWDGSW:1; unsigned UNUSED2:3; unsigned nBOOT1:1; unsigned SRAM2PE:1; unsigned SRAM2RST:1; unsigned nSWBOOT0:1; unsigned nBOOT0:1; unsigned UNUSED3:1; unsigned AGC_TRIM:3; }; struct Word2 { unsigned PCROP1A_STRT:9; unsigned UNUSED:23; }; struct Word3 { unsigned PCROP1A_END:9; unsigned UNUSED:22; unsigned PCROP_RDP:1; }; struct Word4 { uint8_t WRP1A_STRT; uint8_t UNUSED1; uint8_t WRP1A_END; uint8_t UNUSED2; }; struct Word5 { uint8_t WRP1B_STRT; uint8_t UNUSED1; uint8_t WRP1B_END; uint8_t UNUSED2; }; struct Word6 { unsigned PCROP1B_STRT:9; unsigned UNUSED:23; }; struct Word7 { unsigned PCROP1B_END:9; unsigned UNUSED:23; }; struct Word8 { unsigned IPCCDBA:14; unsigned UNUSED:18; }; struct Word9 { unsigned SFSA:8; unsigned FSD:1; unsigned UNUSED1:3; unsigned DDS:1; unsigned UNUSED2:19; }; struct Word10 { unsigned SBRV:18; unsigned SBRSA:5; unsigned BRSD:1; unsigned UNUSED1:1; unsigned SNBRSA:5; unsigned NBRSD:1; unsigned C2OPT:1; }; Word1 word1[2]; Word2 word2[2]; Word3 word3[2]; Word4 word4[2]; Word5 word5[2]; Word6 word6[2]; Word7 word7[2]; uint32_t UNUSED[12]; Word8 word8[2]; Word9 word9[2]; Word10 word10[2]; }; static_assert (sizeof(OptionBytesData) == 128, "Check your struct packing!"); #pragma pack(pop) OptionBytes(); public: using DataMap = QHash; OptionBytes(const QByteArray &data); OptionBytes(QIODevice *file); static OptionBytes invalid(); static qint64 size(); static const QVector &fieldNames(); bool isValid() const; QByteArray data() const; void setData(const QByteArray &data); uint32_t value(const QByteArray &fieldName) const; void setValue(const QByteArray &fieldName, uint32_t value); DataMap compare(const OptionBytes &other) const; OptionBytes corrected(const DataMap &diff) const; private: DataMap m_data; bool m_isValid; }; } } flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55/stm32wb55.cpp000066400000000000000000000123741452337521700246640ustar00rootroot00000000000000#include "stm32wb55.h" #include #include #include "debug.h" #include "infotable.h" #define OTP_ADDR 0x1FFF7000UL #define OTP_MAX_SIZE 1024 #define OPTION_BYTES_ADDR 0x1FFF8000UL #define FUS_STATUS_ADDR 0xFFFF0054UL #define FUS_STATUS_SIZE 2 #define SRAM2A_BASE 0x20030000UL #define DIT_FUS_MAGIC_NUMBER 0xa94656b namespace STM32 { using namespace WB55; STM32WB55::STM32WB55(const USBDeviceInfo &info, QObject *parent): DfuseDevice(info, parent) {} OptionBytes STM32WB55::optionBytes() { QBuffer buf; check_return_val(buf.open(QIODevice::WriteOnly), "Failed to create buffer", QByteArray()); upload(&buf, OPTION_BYTES_ADDR, OptionBytes::size(), (uint8_t)Partition::OptionBytes); buf.close(); check_return_val(buf.bytesAvailable() == OptionBytes::size(), "Failed to read option bytes", QByteArray()); return buf.data(); } bool STM32WB55::setOptionBytes(const OptionBytes &ob) { QBuffer buf; check_return_bool(buf.open(QIODevice::ReadWrite), "Failed to create buffer"); const auto success = (buf.write(ob.data()) == OptionBytes::size()) && buf.reset(); if(success) { begin_ignore_block(); download(&buf, OPTION_BYTES_ADDR, (uint8_t)Partition::OptionBytes); end_ignore_block(); } else { error_msg("Failed to fill buffer"); return false; } buf.close(); return true; } VersionInfo STM32WB55::versionInfo() { QBuffer buf; VersionInfo ret; if(!buf.open(QIODevice::WriteOnly)) { qCDebug(CATEGORY_DEBUG) << "Failed to open a buffer for writing:" << buf.errorString(); return ret; } auto success = upload(&buf, SRAM2A_BASE, sizeof(uint32_t), (uint8_t)Partition::Flash); if(!success || buf.data().size() != sizeof(uint32_t)) { qCDebug(CATEGORY_DEBUG) << "Failed to read device information table location"; return ret; } const auto addr = qFromLittleEndian(buf.data().data()); if(addr < SRAM2A_BASE) { qCDebug(CATEGORY_DEBUG).noquote().nospace() << "Invalid address 0x" << QString::number(addr, 16); return ret; } buf.reset(); const auto size = qMax(sizeof(FUSDeviceInfoTable), sizeof(DeviceInfoTable)); qCDebug(CATEGORY_DEBUG).noquote().nospace() << "Reading " << size << " bytes from address 0x" << QString::number(addr, 16); // Not checking IPCCDBA since it's always 0 success = upload(&buf, addr, size, (uint8_t)Partition::Flash); buf.close(); if(!success || buf.data().size() != size) { qCDebug(CATEGORY_DEBUG) << "Failed to read device information table"; return ret; } const auto *fusInfoTable = (const FUSDeviceInfoTable*)buf.data().data(); if(fusInfoTable->magic == DIT_FUS_MAGIC_NUMBER) { ret.FUSVersion = QStringLiteral("%1.%2.%3") .arg(fusInfoTable->FUSVersion.major) .arg(fusInfoTable->FUSVersion.minor) .arg(fusInfoTable->FUSVersion.sub); ret.WirelessVersion = QStringLiteral("%1.%2.%3") .arg(fusInfoTable->wirelessStackVersion.major) .arg(fusInfoTable->wirelessStackVersion.minor) .arg(fusInfoTable->wirelessStackVersion.sub); } else { const auto *wirelessInfoTable = (const DeviceInfoTable*)buf.data().data(); ret.FUSVersion = QStringLiteral("%1.%2.%3") .arg(wirelessInfoTable->FUS.version.major) .arg(wirelessInfoTable->FUS.version.minor) .arg(wirelessInfoTable->FUS.version.sub); ret.WirelessVersion = QStringLiteral("%1.%2.%3") .arg(wirelessInfoTable->WirelessStack.version.major) .arg(wirelessInfoTable->WirelessStack.version.minor) .arg(wirelessInfoTable->WirelessStack.version.sub); } return ret; } QByteArray STM32WB55::OTPData(qint64 len) { len = qMin(len, OTP_MAX_SIZE); QBuffer buf; check_return_val(buf.open(QIODevice::WriteOnly), "Failed to create buffer", QByteArray()); const auto success = upload(&buf, OTP_ADDR, len, (uint8_t)Partition::OTP); buf.close(); check_return_val(success && (buf.bytesAvailable() == len), "Failed to read option bytes", QByteArray()); return buf.data(); } FUSState STM32WB55::FUSGetState() { QBuffer buf; check_return_val(buf.open(QIODevice::WriteOnly), "Failed to create buffer", FUSState()); upload(&buf, FUS_STATUS_ADDR, FUS_STATUS_SIZE, (uint8_t)Partition::Flash); buf.close(); check_return_val(buf.bytesAvailable() == FUS_STATUS_SIZE, "Failed to read FUS status", FUSState()); // Casting to unsigned char to prevent sign extension return FUSState(static_cast((unsigned char)buf.data().at(0)), static_cast((unsigned char)buf.data().at(1))); } bool STM32WB55::FUSFwDelete() { const QByteArray data(1, 0x52); check_return_bool(download(data), "Failed to send FW_DELETE command"); return true; } bool STM32WB55::FUSFwUpgrade() { const QByteArray data(1, 0x53); check_return_bool(download(data), "Failed to send FW_UPGRADE command"); return true; } bool STM32WB55::FUSStartWirelessStack() { const QByteArray data(1, 0x5A); check_return_bool(download(data), "Failed to start wireless stack"); return true; } } flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55/stm32wb55.h000066400000000000000000000012011452337521700243140ustar00rootroot00000000000000#pragma once #include "dfusedevice.h" #include "versioninfo.h" #include "optionbytes.h" #include "fusstate.h" namespace STM32 { class STM32WB55 : public DfuseDevice { Q_OBJECT public: enum class Partition { Flash = 0, OptionBytes, OTP }; STM32WB55(const USBDeviceInfo &info, QObject *parent = nullptr); WB55::OptionBytes optionBytes(); bool setOptionBytes(const WB55::OptionBytes &ob); WB55::VersionInfo versionInfo(); QByteArray OTPData(qint64 len); WB55::FUSState FUSGetState(); bool FUSFwDelete(); bool FUSFwUpgrade(); bool FUSStartWirelessStack(); }; } flipperdevices-qFlipper-bfce851/dfu/device/stm32wb55/versioninfo.h000066400000000000000000000002271452337521700252110ustar00rootroot00000000000000#pragma once #include namespace STM32 { namespace WB55 { struct VersionInfo { QString FUSVersion; QString WirelessVersion; }; }} flipperdevices-qFlipper-bfce851/dfu/dfu.pro000066400000000000000000000021201452337521700210570ustar00rootroot00000000000000QT -= gui TEMPLATE = lib CONFIG += staticlib c++11 include(../qflipper_common.pri) SOURCES += \ debug.cpp \ device/stm32wb55/fusstate.cpp \ device/stm32wb55/optionbytes.cpp \ device/stm32wb55/stm32wb55.cpp \ dfumemorylayout.cpp \ dfusedevice.cpp \ dfusefile.cpp \ usbdeviceinfo.cpp HEADERS += \ debug.h \ device/stm32wb55.h \ device/stm32wb55/fusstate.h \ device/stm32wb55/infotable.h \ device/stm32wb55/optionbytes.h \ device/stm32wb55/stm32wb55.h \ device/stm32wb55/versioninfo.h \ dfumemorylayout.h \ dfusedevice.h \ dfusefile.h \ usbdevice.h \ usbdeviceinfo.h contains(DEFINES, USB_BACKEND_LIBUSB) { SOURCES += libusb/usbdevice.cpp \ libusb/usbdevicedetector.cpp HEADERS += libusb/usbdevice.h \ libusb/usbdevicedetector.h } else:contains(DEFINES, USB_BACKEND_WIN32) { SOURCES += win32/usbdevice.cpp \ win32/usbdevicedetector.cpp HEADERS += win32/usbdevice.h \ win32/usbdevicedetector.h } else { error("No USB backend configured") } flipperdevices-qFlipper-bfce851/dfu/dfumemorylayout.cpp000066400000000000000000000043101452337521700235330ustar00rootroot00000000000000#include "dfumemorylayout.h" #include #include "debug.h" // TODO: Try optimising it DFUMemoryLayout DFUMemoryLayout::fromStringDescriptor(const QByteArray &desc) { DFUMemoryLayout ret; const auto fields = desc.split('/'); if(fields.size() != 3) { error_msg("bad descriptor syntax"); return ret; } ret.m_name = fields.at(0).trimmed(); ret.m_address = fields.at(1).toULong(nullptr, 16); const auto banks = fields.at(2).split(','); for(const auto &bank : banks) { const auto bankFields = bank.split('*'); if(bankFields.size() != 2) { error_msg("bad page bank syntax"); return ret; } const auto pageCount = bankFields.first(); const auto pageSize = bankFields.last(); const auto sizeMultiplier = (pageSize.at(pageSize.length() - 2) == 'K' ? 1024 : 1); PageBank elem; elem.pageCount = pageCount.toULong(); elem.type = pageSize.back(); elem.pageSize = pageSize.chopped(2).toULong() * sizeMultiplier; ret.m_pageBanks.append(elem); } return ret; } const QString &DFUMemoryLayout::name() const { return m_name; } uint32_t DFUMemoryLayout::address() const { return m_address; } const QList &DFUMemoryLayout::pageBanks() const { return m_pageBanks; } // TODO: Try optimising it, the function will traverse all banks regardless of the start const QList DFUMemoryLayout::pageAddresses(uint32_t start, uint32_t end) const { QList ret; if((start < m_address) || (start > end)) { error_msg("address error"); return ret; } else if(m_pageBanks.isEmpty()) { error_msg("page banks empty"); return ret; } else {} ret.append(start); uint32_t currentAddress = m_address; for(const auto &bank : m_pageBanks) { for(size_t i = 0; i < bank.pageCount; ++i) { currentAddress += (uint32_t)bank.pageSize; if((currentAddress > start) && (currentAddress < end)) { ret.append(currentAddress); } else if(currentAddress >= end) { return ret; } } } return ret; } flipperdevices-qFlipper-bfce851/dfu/dfumemorylayout.h000066400000000000000000000011611452337521700232010ustar00rootroot00000000000000#ifndef DFUMEMORYLAYOUT_H #define DFUMEMORYLAYOUT_H #include #include #include class DFUMemoryLayout { public: struct PageBank { size_t pageSize; size_t pageCount; char type; }; static DFUMemoryLayout fromStringDescriptor(const QByteArray &desc); const QString &name() const; uint32_t address() const; const QList &pageBanks() const; const QList pageAddresses(uint32_t start, uint32_t end) const; private: QString m_name; uint32_t m_address; QList m_pageBanks; }; #endif // DFUMEMORYLAYOUT_H flipperdevices-qFlipper-bfce851/dfu/dfusedevice.cpp000066400000000000000000000232361452337521700225640ustar00rootroot00000000000000#include "dfusedevice.h" #include #include #include #include #include "debug.h" #include "dfumemorylayout.h" #define REQUEST_OUT (USBRequest::ENDPOINT_OUT | USBRequest::REQUEST_TYPE_CLASS | USBRequest::RECIPIENT_INTERFACE) #define REQUEST_IN (USBRequest::ENDPOINT_IN | USBRequest::REQUEST_TYPE_CLASS | USBRequest::RECIPIENT_INTERFACE) #define DFU_DESCRIPTOR_LENGTH 9 #define DFU_DESCRIPTOR_TYPE 0x21 DfuseDevice::DfuseDevice(const USBDeviceInfo &info, QObject *parent): USBDevice(info, parent) {} bool DfuseDevice::beginTransaction() { return open() && claimInterface(0); } bool DfuseDevice::endTransaction() { const auto res = releaseInterface(0); close(); return res; } uint32_t DfuseDevice::partitionOrigin(uint8_t alt) { const auto desc = stringInterfaceDescriptor(alt); const auto layout = DFUMemoryLayout::fromStringDescriptor(desc); return layout.address(); } bool DfuseDevice::erase(uint32_t addr, size_t maxSize) { check_return_bool(prepare(), "Failed to prepare the device"); const auto layout = DFUMemoryLayout::fromStringDescriptor(stringInterfaceDescriptor(0)); const auto pageAddresses = layout.pageAddresses(addr, addr + (uint32_t)maxSize); check_return_bool(!pageAddresses.isEmpty(), "Address list is empty"); size_t prevProgress = std::numeric_limits::max(); for(const auto pageAddress: pageAddresses) { check_return_bool(erasePage(pageAddress), "Failed to erase page"); const auto progress = (pageAddress - addr) * 100.0 / maxSize; emit progressChanged(Operation::Erase, progress); if(floor(progress) != prevProgress) { prevProgress = progress; debug_msg(QString("Erasing memory: %1%").arg(prevProgress)); } } debug_msg("Erase done."); return true; } bool DfuseDevice::download(DfuseFile *file) { check_return_bool(file->isValid(), "DfuSe file is not valid"); // TODO: check for vendor, device, etc. // Erase the required memory first for(auto &img : file->images()) { for(auto &elem : img.elements) { check_return_bool(erase(elem.dwElementAddress, elem.dwElementSize), "Failed to erase the memory"); } } for(auto &img : file->images()) { for(auto &elem : img.elements) { QBuffer buf(&elem.data); buf.open(QIODevice::ReadOnly); check_return_bool(download(&buf, elem.dwElementAddress, img.prefix.bAlternateSetting), "Failed to download element"); } } return true; } bool DfuseDevice::download(const QByteArray &data) { check_return_bool(setInterfaceAltSetting(0, 0), "Failed to set interface alternate setting"); check_return_bool(prepare(), "Failed to prepare the device"); check_return_bool(controlTransfer(REQUEST_OUT, DFU_DNLOAD, 0, 0, data), "Failed to perform raw download request"); StatusType status; do { status = getStatus(); check_return_bool(status.bStatus == StatusType::OK, "Failed to raw download a buffer"); QThread::msleep(status.bwPollTimeout); } while(status.bState == StatusType::DFU_DNBUSY); return true; } bool DfuseDevice::download(QIODevice *file, uint32_t addr, uint8_t alt) { check_return_bool(setInterfaceAltSetting(0, alt), "Failed to set interface alternate setting"); check_return_bool(prepare(), "Failed to prepare the device"); check_return_bool(setAddressPointer(addr), "Failed to set address pointer"); const auto extra = extraInterfaceDescriptor(0, DFU_DESCRIPTOR_TYPE, DFU_DESCRIPTOR_LENGTH); check_return_bool(extra.size() >= DFU_DESCRIPTOR_LENGTH, "No functional DFU descriptor"); const auto maxTransferSize = *((uint16_t*)(extra.data() + 5)); debug_msg(QString("Device reported transfer size: %1").arg(maxTransferSize)); StatusType status; for(size_t totalSize = 0, transaction = 2, prevProgress = std::numeric_limits::max(); !file->atEnd(); ++transaction) { const auto buf = file->read(maxTransferSize); check_return_bool(controlTransfer(REQUEST_OUT, DFU_DNLOAD, (uint16_t)transaction, 0, buf), "Failed to perform DFU_DNLOAD transfer"); do { status = getStatus(); check_return_bool(status.bStatus == StatusType::OK, "An error has occurred during download phase"); QThread::msleep(status.bwPollTimeout); } while(status.bState != StatusType::DFU_DNLOAD_IDLE); totalSize += buf.size(); const auto progress = totalSize * 100.0 / file->size(); emit progressChanged(Operation::Download, progress); if(floor(progress) != prevProgress) { prevProgress = progress; debug_msg(QString("Bytes downloaded: %1 %2%").arg(totalSize).arg(prevProgress)); } } debug_msg("Download has finished."); return true; } bool DfuseDevice::upload(QIODevice *file, uint32_t addr, size_t maxSize, uint8_t alt) { check_return_bool(setInterfaceAltSetting(0, alt), "Failed to set interface alternate setting"); check_return_bool(prepare() && abort(), "Failed to prepare the device"); check_return_bool(setAddressPointer(addr), "Failed to set address pointer"); abort(); const auto extra = extraInterfaceDescriptor(0, DFU_DESCRIPTOR_TYPE, DFU_DESCRIPTOR_LENGTH); check_return_bool(extra.size() >= DFU_DESCRIPTOR_LENGTH, "No functional DFU descriptor"); const auto maxTransferSize = *((uint16_t*)(extra.data() + 5)); debug_msg(QString("Device reported transfer size: %1").arg(maxTransferSize)); for(size_t totalSize = 0, transaction = 2, prevProgress = std::numeric_limits::max(); totalSize < maxSize; ++transaction) { const auto transferSize = qMin(maxTransferSize, maxSize - totalSize); const auto buf = controlTransfer(REQUEST_IN, DFU_UPLOAD, (uint16_t)transaction, 0, (uint16_t)transferSize); const auto bytesWritten = file->write(buf); check_return_bool(bytesWritten >= 0, "Failed to write to output device"); totalSize += bytesWritten; const auto progress = totalSize * 100.0 / maxSize; emit progressChanged(Operation::Upload, progress); if(floor(progress) != prevProgress) { prevProgress = progress; debug_msg(QString("Bytes uploaded: %1 %2%").arg(totalSize).arg(prevProgress)); } // TODO: Better error checks // Correctly process the end of memory condition? if((size_t)buf.size() < transferSize) { debug_msg("End of transmission."); break; } } debug_msg("Upload has finished."); return true; } bool DfuseDevice::leave() { check_return_bool(setInterfaceAltSetting(0, 0), "Failed to set interface alternate setting"); check_return_bool(prepare() && abort(), "Failed to prepare the device"); setAddressPointer(0x080FFFFFUL); check_return_bool(controlTransfer(REQUEST_OUT, DFU_DNLOAD, 0, 0, QByteArray()), "Failed to perform final DFU_DNLOAD transfer"); begin_ignore_block(); getStatus(); // It will return an error on WB55 anyway end_ignore_block(); return true; } bool DfuseDevice::setAddressPointer(uint32_t addr) { const auto requestData = QByteArray(1, 0x21) + QByteArray::fromRawData((char*)&addr, sizeof(uint32_t)); check_return_bool(controlTransfer(REQUEST_OUT, DFU_DNLOAD, 0, 0, requestData), "Failed to perform set address request"); StatusType status; do { status = getStatus(); check_return_bool(status.bStatus == StatusType::OK, "Failed to set address pointer"); QThread::msleep(status.bwPollTimeout); } while(status.bState == StatusType::DFU_DNBUSY); return true; } bool DfuseDevice::erasePage(uint32_t addr) { const auto buf = QByteArray(1, 0x41) + QByteArray((const char*)&addr, sizeof(uint32_t)); check_return_bool(controlTransfer(REQUEST_OUT, DFU_DNLOAD, 0, 0, buf), "Failed to perform DFU_DNLOAD transfer"); StatusType status; do { status = getStatus(); check_return_bool(status.bStatus == StatusType::OK, "An error has occurred during erase phase"); QThread::msleep(status.bwPollTimeout); } while(status.bState == StatusType::DFU_DNBUSY); return true; } bool DfuseDevice::abort() { check_return_bool(controlTransfer(REQUEST_OUT, DFU_ABORT, 0, 0, QByteArray()), "Unable to issue abort request"); const auto status = getStatus(); const auto res = (status.bStatus == StatusType::OK) && (status.bState == StatusType::DFU_IDLE); check_return_bool(res, "Unable to reset device to idle state"); QThread::msleep(status.bwPollTimeout); return res; } bool DfuseDevice::clearStatus() { return controlTransfer(REQUEST_OUT, DFU_CLRSTATUS, 0, 0, QByteArray()); } DfuseDevice::StatusType DfuseDevice::getStatus() { StatusType ret; const auto STATUS_LENGTH = 6; const auto buf = controlTransfer(REQUEST_IN, DFU_GETSTATUS, 0, 0, STATUS_LENGTH); check_return_val(buf.size() == STATUS_LENGTH, "Unable to get device status", ret); ret.bStatus = (StatusType::Status)buf[0]; ret.bState = (StatusType::State)buf[4]; ret.bwPollTimeout = ((uint32_t)buf[3] << 16) | ((uint32_t)buf[2] << 8) | ((uint32_t)buf[1]); ret.iString = buf[5]; return ret; } bool DfuseDevice::prepare() { const auto status = getStatus(); if(status.bStatus != StatusType::OK) { debug_msg("Device is in error state, resetting..."); check_return_bool(clearStatus(), "Failed to clear device status"); } else if(status.bState != StatusType::DFU_IDLE) { debug_msg("Device is not idle, resetting..."); check_return_bool(abort(), "Failed to abort to idle"); } return true; } flipperdevices-qFlipper-bfce851/dfu/dfusedevice.h000066400000000000000000000044361452337521700222320ustar00rootroot00000000000000#ifndef DFUDEVICE_H #define DFUDEVICE_H #include #include #include "usbdevice.h" #include "dfusefile.h" // NOTE: This class should reveal about USB internals as little as possible. // TODO: Separate STM32 protocol and standard protocol into respective classes. class DfuseDevice : public USBDevice { Q_OBJECT struct StatusType { enum Status { OK = 0, ERR_TARGET, ERR_FILE, ERR_WRITE, ERR_ERASE, ERR_CHECK_ERASED, ERR_PROG, ERR_VERIFY, ERR_ADDRESS, ERR_NOTDONE, ERR_FIRMWARE, ERR_VENDOR, ERR_USBR, ERR_POR, ERR_UNKNOWN, ERR_STALLEDPKT, ERR_UNDEFINED = 0xff }; enum State { APP_IDLE = 0, APP_DETACH, DFU_IDLE, DFU_DNLOAD_SYNC, DFU_DNBUSY, DFU_DNLOAD_IDLE, DFU_MANIFEST_SYNC, DFU_MANIFEST, DFU_MANIFEST_WAIT_RESET, DFU_UPLOAD_IDLE, DFU_ERROR, STATE_UNDEFINED = 0xff }; Status bStatus = ERR_UNDEFINED; State bState = STATE_UNDEFINED; uint32_t bwPollTimeout; uint8_t iString; }; enum Request { DFU_DETACH = 0, DFU_DNLOAD, DFU_UPLOAD, DFU_GETSTATUS, DFU_CLRSTATUS, DFU_GETSTATE, DFU_ABORT }; public: enum Operation { Erase, Download, Upload }; DfuseDevice(const USBDeviceInfo &info, QObject *parent = nullptr); bool beginTransaction(); bool endTransaction(); uint32_t partitionOrigin(uint8_t alt = 0); bool erase(uint32_t addr, size_t maxSize); bool download(DfuseFile *file); bool download(QIODevice *file, uint32_t addr, uint8_t alt = 0); bool download(const QByteArray &data); bool upload(QIODevice *file, uint32_t addr, size_t maxSize, uint8_t alt = 0); bool leave(); signals: void progressChanged(const int, const double); private: bool abort(); bool clearStatus(); StatusType getStatus(); bool prepare(); bool setAddressPointer(uint32_t addr); bool erasePage(uint32_t addr); }; #endif // DFUDEVICE_H flipperdevices-qFlipper-bfce851/dfu/dfusefile.cpp000066400000000000000000000076651452337521700222540ustar00rootroot00000000000000#include "dfusefile.h" #include #include "debug.h" static const auto DFUSE_SUFFIX_SIZE = 16; DfuseFile::DfuseFile(QIODevice *file) { m_isValid = readPrefix(file); check_return_void(m_isValid, "Failed to read DfuSe file prefix"); for(auto i = 0; i < m_prefix.bTargets; ++i) { m_isValid = readImage(file); check_return_void(m_isValid, "Failed to read DfuSe image"); } m_isValid = readSuffix(file); check_return_void(m_isValid, "No valid DfuSe suffix"); file->reset(); m_isValid = checkCRC(file); check_return_void(m_isValid, "Checksum doesn't match"); } bool DfuseFile::isValid() const { return m_isValid; } const DfuseFile::Prefix &DfuseFile::prefix() const { return m_prefix; } const DfuseFile::Suffix &DfuseFile::suffix() const { return m_suffix; } QList &DfuseFile::images() { return m_images; } bool DfuseFile::readPrefix(QIODevice *file) { const auto DFUSE_PREFIX_SIZE = 11; const auto PREFIX_SIGNATURE_SIZE = 5; check_return_bool(file->bytesAvailable() >= DFUSE_PREFIX_SIZE, "File is too short"); m_prefix.szSignature = file->read(PREFIX_SIGNATURE_SIZE); check_return_bool(m_prefix.szSignature == "DfuSe", "Not a valid DfuSe file"); file->read((char*)&m_prefix.bVersion, sizeof(uint8_t)); file->read((char*)&m_prefix.DFUImageSize, sizeof(uint32_t)); file->read((char*)&m_prefix.bTargets, sizeof(uint8_t)); check_return_bool(m_prefix.DFUImageSize == (file->size() - DFUSE_SUFFIX_SIZE), "File size does not match"); return true; } bool DfuseFile::readSuffix(QIODevice *file) { m_suffix.ucDFUSignature = 0; // Just to be safe - we're reading only 3 bytes into it file->read((char*)&m_suffix.bcdDevice, sizeof(uint16_t)); file->read((char*)&m_suffix.idProduct, sizeof(uint16_t)); file->read((char*)&m_suffix.idVendor, sizeof(uint16_t)); file->read((char*)&m_suffix.bcdDFU, sizeof(uint16_t)); file->read((char*)&m_suffix.ucDFUSignature, 3); file->read((char*)&m_suffix.bLength, sizeof(uint8_t)); file->read((char*)&m_suffix.dwCRC, sizeof(uint32_t)); const auto res = (m_suffix.ucDFUSignature == 0x444655) && (m_suffix.bLength == DFUSE_SUFFIX_SIZE); check_continue(res, "Failed to read DfuSe suffix"); return res; } bool DfuseFile::readImage(QIODevice *file) { const auto TARGET_SIGNATURE_SIZE = 6; const auto TARGET_NAME_SIZE = 255; Image img; img.prefix.szSignature = file->read(TARGET_SIGNATURE_SIZE); check_return_bool(img.prefix.szSignature == "Target", "Not a valid DfuSe target image"); file->read((char*)&img.prefix.bAlternateSetting, sizeof(uint8_t)); file->read((char*)&img.prefix.bTargetNamed, sizeof(uint32_t)); img.prefix.szTargetName = file->read(TARGET_NAME_SIZE); file->read((char*)&img.prefix.dwtargetSize, sizeof(uint32_t)); file->read((char*)&img.prefix.dwNbElements, sizeof(uint32_t)); m_images.append(img); for(uint32_t i = 0; i < img.prefix.dwNbElements; ++i) { readElement(file); } return true; } void DfuseFile::readElement(QIODevice *file) { Image::Element el; file->read((char*)&el.dwElementAddress, sizeof(uint32_t)); file->read((char*)&el.dwElementSize, sizeof(uint32_t)); el.data = file->read(el.dwElementSize); m_images.last().elements.append(el); } bool DfuseFile::checkCRC(QIODevice *file) { return m_suffix.dwCRC == generateCRC(file); } uint32_t DfuseFile::generateCRC(QIODevice *file) { const auto LUT_SIZE = 256; uint32_t lut[LUT_SIZE]; for(auto i = 0; i < LUT_SIZE; ++i) { uint32_t val = i; for(auto j = 0; j < 8; ++j) { val = (val & 1U) ? 0xEDB88320U ^ (val >> 1) : val >> 1; } lut[i] = val; } uint32_t val = UINT32_MAX; uint8_t c; while((size_t)file->bytesAvailable() > sizeof(uint32_t)) { file->getChar((char*)&c); val = lut[(val ^ c) & UINT8_MAX] ^ (val >> 8); } return val; } flipperdevices-qFlipper-bfce851/dfu/dfusefile.h000066400000000000000000000027301452337521700217050ustar00rootroot00000000000000#ifndef DFUSEFILE_H #define DFUSEFILE_H #include #include #include class DfuseFile { public: struct Prefix { QByteArray szSignature; uint32_t DFUImageSize; uint8_t bVersion; uint8_t bTargets; }; struct Suffix { uint16_t bcdDevice; uint16_t idProduct; uint16_t idVendor; uint16_t bcdDFU; uint32_t ucDFUSignature; uint8_t bLength; uint32_t dwCRC; }; struct Image { struct TargetPrefix { QByteArray szSignature; uint8_t bAlternateSetting; bool bTargetNamed; QByteArray szTargetName; uint32_t dwtargetSize; uint32_t dwNbElements; }; struct Element { uint32_t dwElementAddress; uint32_t dwElementSize; QByteArray data; }; TargetPrefix prefix; QList elements; }; DfuseFile(QIODevice *file); bool isValid() const; const Prefix &prefix() const; const Suffix &suffix() const; QList &images(); private: bool readPrefix(QIODevice *file); bool readSuffix(QIODevice *file); bool readImage(QIODevice *file); void readElement(QIODevice *file); bool checkCRC(QIODevice *file); static uint32_t generateCRC(QIODevice *file); bool m_isValid; Prefix m_prefix; Suffix m_suffix; QList m_images; }; #endif // DFUSEFILE_H flipperdevices-qFlipper-bfce851/dfu/libusb/000077500000000000000000000000001452337521700210445ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/dfu/libusb/usbdevice.cpp000066400000000000000000000116201452337521700235210ustar00rootroot00000000000000#include "usbdevice.h" #include #include #include "debug.h" #define RETRY_COUNT 25 #define RETRY_INTERVAL_MS 50 struct USBDevice::USBDevicePrivate { libusb_device *libusbDevice = nullptr; libusb_device_handle *libusbDeviceHandle = nullptr; }; USBDevice::USBDevice(const USBDeviceInfo &info, QObject *parent): QObject(parent), m_p(new USBDevicePrivate) { m_p->libusbDevice = (libusb_device*)info.backendData().value(); } USBDevice::~USBDevice() { // TODO: Find out how to close it safely // close(); delete m_p; } bool USBDevice::open() { if(!m_p->libusbDeviceHandle) { const auto err = libusb_open(m_p->libusbDevice, &(m_p->libusbDeviceHandle)); check_continue(!err, QString("Unable to open device: %1").arg(libusb_error_name(err))); } return m_p->libusbDeviceHandle; } void USBDevice::close() { if(!m_p->libusbDeviceHandle) { return; } libusb_close(m_p->libusbDeviceHandle); m_p->libusbDeviceHandle = nullptr; } bool USBDevice::claimInterface(int interfaceNum) { int retryCount = RETRY_COUNT, err; do { if(!(err = libusb_claim_interface(m_p->libusbDeviceHandle, interfaceNum))) { break; } QThread::msleep(RETRY_INTERVAL_MS); } while(--retryCount); check_continue(!err, QString("Failed to claim interface: %1").arg(libusb_error_name(err))); return !err; } bool USBDevice::releaseInterface(int interfaceNum) { const auto err = libusb_release_interface(m_p->libusbDeviceHandle, interfaceNum); check_continue(!err, QString("Failed to release interface: %1").arg(libusb_error_name(err))); return !err; } bool USBDevice::setInterfaceAltSetting(int interfaceNum, uint8_t alt) { int retryCount = RETRY_COUNT, err; do { if(!(err = libusb_set_interface_alt_setting(m_p->libusbDeviceHandle, interfaceNum, alt))) { break; } QThread::msleep(RETRY_INTERVAL_MS); } while(--retryCount); check_continue(!err, QString("Failed to set alternate setting: %1").arg(libusb_error_name(err))); return !err; } bool USBDevice::controlTransfer(uint8_t requestType, uint8_t request, uint16_t value, uint16_t index, const QByteArray &buf) { int retryCount = RETRY_COUNT, res; do { auto *data = buf.isEmpty() ? nullptr : (unsigned char*)(buf.data()); if((res = libusb_control_transfer(m_p->libusbDeviceHandle, requestType, request, value, index, data, buf.size(), m_timeout)) >= 0) { break; } QThread::msleep(RETRY_INTERVAL_MS); } while(--retryCount); if(res < 0) { error_msg(QString("Failed to perform control transfer: %1").arg(libusb_error_name(res))); } else if(res != buf.size()) { debug_msg("Requested and transferred data size differ"); } else {} return res == buf.size(); } QByteArray USBDevice::controlTransfer(uint8_t requestType, uint8_t request, uint16_t value, uint16_t index, uint16_t length) { QByteArray buf(length, 0); int retryCount = RETRY_COUNT, res; do { if((res = libusb_control_transfer(m_p->libusbDeviceHandle, requestType, request, value, index, (unsigned char*)(buf.data()), length, m_timeout)) >= 0) { break; } QThread::msleep(RETRY_INTERVAL_MS); } while ((res < 0) && --retryCount); if(res < 0) { buf.clear(); error_msg(QString("Failed to perform control transfer: %1").arg(libusb_error_name(res))); } else if(res != length) { buf.resize(res); debug_msg("Requested and transferred data size differ"); } else {} return buf; } QByteArray USBDevice::extraInterfaceDescriptor(int interfaceNum, uint8_t type, int length) { QByteArray ret; libusb_config_descriptor *cfg; check_return_val(!libusb_get_config_descriptor(m_p->libusbDevice, 0, &cfg), "Failed to get configuration descriptor", ret); const auto intf = cfg->interface[interfaceNum]; for(auto i = 0; i < intf.num_altsetting; ++i) { const auto altintf = intf.altsetting[i]; if((altintf.extra_length == length) && (altintf.extra[1] == type)) { ret.append((const char*)(altintf.extra), altintf.extra_length); break; } } libusb_free_config_descriptor(cfg); return ret; } QByteArray USBDevice::stringInterfaceDescriptor(uint8_t alt) { libusb_config_descriptor *cfg; check_return_val(!libusb_get_config_descriptor(m_p->libusbDevice, 0, &cfg), "Failed to get configuration descriptor", QByteArray()); const auto BUF_SIZE = 254; QByteArray buf(BUF_SIZE, 0); const auto intf = *(cfg->interface); const auto res = libusb_get_string_descriptor_ascii(m_p->libusbDeviceHandle, intf.altsetting[alt].iInterface, (unsigned char*)buf.data(), BUF_SIZE); if(res < 0) { error_msg(QString("Failed to get string descriptor: %1").arg(libusb_error_name(res))); buf.clear(); } else { buf.resize(res); } libusb_free_config_descriptor(cfg); return buf; } flipperdevices-qFlipper-bfce851/dfu/libusb/usbdevice.h000066400000000000000000000016771452337521700232010ustar00rootroot00000000000000#ifndef LIBUSBDEVICE_H #define LIBUSBDEVICE_H #include #include "usbdeviceinfo.h" class USBDevice : public QObject { Q_OBJECT struct USBDevicePrivate; public: USBDevice(const USBDeviceInfo &info, QObject *parent = nullptr); virtual ~USBDevice(); bool open(); void close(); bool claimInterface(int interfaceNum); bool releaseInterface(int interfaceNum); bool setInterfaceAltSetting(int interfaceNum, uint8_t alt); bool controlTransfer(uint8_t requestType, uint8_t request, uint16_t value, uint16_t index, const QByteArray &data); QByteArray controlTransfer(uint8_t requestType, uint8_t request, uint16_t value, uint16_t index, uint16_t length); QByteArray extraInterfaceDescriptor(int interfaceNum, uint8_t type, int length); QByteArray stringInterfaceDescriptor(uint8_t alt); private: USBDevicePrivate *m_p = nullptr; unsigned long m_timeout = 1000; }; #endif // LIBUSBDEVICE_H flipperdevices-qFlipper-bfce851/dfu/libusb/usbdevicedetector.cpp000066400000000000000000000156341452337521700252640ustar00rootroot00000000000000#include "usbdevicedetector.h" #include #include #include #include #include Q_LOGGING_CATEGORY(LOG_DETECTOR, "USB") static int libusbHotplugCallback(libusb_context *ctx, libusb_device *dev, libusb_hotplug_event event, void *user_data); #if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000107) static void libusbLogCallback(libusb_context *ctx, libusb_log_level logLevel, const char *text); #endif USBDeviceDetector::USBDeviceDetector(QObject *parent): QObject(parent), m_timer(new QTimer(this)) { connect(m_timer, &QTimer::timeout, this, &USBDeviceDetector::processEvents); libusb_init(nullptr); #if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000107) libusb_set_log_cb(nullptr, libusbLogCallback, LIBUSB_LOG_CB_GLOBAL); #endif } USBDeviceDetector::~USBDeviceDetector() { libusb_exit(nullptr); } void USBDeviceDetector::setLogLevel(int logLevel) { #if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000107) if(logLevel> LIBUSB_LOG_LEVEL_DEBUG) { qCDebug(LOG_DETECTOR) << "Invalid log level:" << logLevel; return; } libusb_set_option(nullptr, LIBUSB_OPTION_LOG_LEVEL, logLevel); #else Q_UNUSED(logLevel) qCDebug(LOG_DETECTOR) << "Setting log level is supported with libusb >= 1.0.23"; #endif } bool USBDeviceDetector::setWantedDevices(const QList &wantedList) { if(!libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) { qCDebug(LOG_DETECTOR) << "Failed to get device descriptor"; return false; } m_timer->stop(); for(const auto &info : wantedList) { const auto events = libusb_hotplug_event(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT); const auto err = libusb_hotplug_register_callback(nullptr, events, LIBUSB_HOTPLUG_ENUMERATE, info.vendorID(), info.productID(), LIBUSB_HOTPLUG_MATCH_ANY, libusbHotplugCallback, this, nullptr); if(err) { qCDebug(LOG_DETECTOR) << "Failed to register hotplug callback"; return false; } } m_timer->start(100); return true; } void USBDeviceDetector::registerDevice(const USBDeviceInfo &deviceInfo) { QTimer::singleShot(0, this, [=]() { if(m_devices.contains(deviceInfo)) { return; } m_devices.append(fillDeviceInfo(deviceInfo)); emit devicePluggedIn(m_devices.last()); }); } void USBDeviceDetector::unregisterDevice(const USBDeviceInfo &deviceInfo) { if(!m_devices.contains(deviceInfo)) { return; } m_devices.removeOne(deviceInfo); emit deviceUnplugged(deviceInfo); } void USBDeviceDetector::processEvents() { struct timeval timeout = {0, 10000}; libusb_handle_events_timeout_completed(nullptr, &timeout, nullptr); } USBDeviceInfo USBDeviceDetector::fillDeviceInfo(const USBDeviceInfo &deviceInfo) { auto numRetries = 20; auto *dev = (libusb_device*)deviceInfo.backendData().value(); USBDeviceInfo newinfo = deviceInfo; do { libusb_device_descriptor desc = {}; struct libusb_device_handle *handle = nullptr; unsigned char buf[1024]; int status; do { status = libusb_get_device_descriptor(dev, &desc); if(status != LIBUSB_SUCCESS) { qCDebug(LOG_DETECTOR) << "Failed to get device descriptor:" << libusb_strerror((libusb_error)status); break; } status = libusb_open(dev, &handle); if(status != LIBUSB_SUCCESS) { qCDebug(LOG_DETECTOR) << "Failed to open device:" << libusb_strerror((libusb_error)status); break; } status = libusb_get_string_descriptor_ascii(handle, desc.iManufacturer, buf, sizeof(buf)); if(status < 0) { qCDebug(LOG_DETECTOR) << "Failed to get manufacturer string descriptor:" << libusb_strerror((libusb_error)status); break; } newinfo.setManufacturer(QString::fromLocal8Bit((const char*)buf)); status = libusb_get_string_descriptor_ascii(handle, desc.iProduct, buf, sizeof(buf)); if(status < 0) { qCDebug(LOG_DETECTOR) << "Failed to get product string descriptor:" << libusb_strerror((libusb_error)status); break; } newinfo.setProductDescription(QString::fromLocal8Bit((const char*)buf)); status = libusb_get_string_descriptor_ascii(handle, desc.iSerialNumber, buf, sizeof(buf)); if(status < 0) { qCDebug(LOG_DETECTOR) << "Failed to get device serial number:" << libusb_strerror((libusb_error)status); break; } newinfo.setSerialNumber(QString::fromLocal8Bit((const char*)buf)); } while(false); if(handle) { libusb_close(handle); } if(status >= 0) { break; } QThread::msleep(20); } while(--numRetries); return newinfo; } static int libusbHotplugCallback(libusb_context *ctx, libusb_device *dev, libusb_hotplug_event event, void *user_data) { Q_UNUSED(ctx) auto numRetries = 20; auto *detector = (USBDeviceDetector*)user_data; libusb_device_descriptor desc = {}; int status; do { status = libusb_get_device_descriptor(dev, &desc); if((status == LIBUSB_SUCCESS) && (desc.idVendor != 0) && (desc.idProduct != 0)) { break; } QThread::msleep(20); } while(--numRetries); if(numRetries == 0) { if(status != LIBUSB_SUCCESS) { qCDebug(LOG_DETECTOR) << "Failed to get device descriptor:" << libusb_strerror((libusb_error)status); } else { qCDebug(LOG_DETECTOR) << "Device descriptor received, but is invalid"; } return 0; } const auto info = USBDeviceInfo(desc.idVendor, desc.idProduct).withBackendData(QVariant::fromValue((void*)dev)); if(event == LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED) { detector->registerDevice(info); } else if(event == LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT) { detector->unregisterDevice(info); } else { qCDebug(LOG_DETECTOR) << "Unhandled libusb event"; } return 0; } #if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000107) static void libusbLogCallback(libusb_context *ctx, libusb_log_level logLevel, const char *text) { Q_UNUSED(ctx) static const QStringList logPrefix = { QStringLiteral("NONE"), QStringLiteral("ERR"), QStringLiteral("WRN"), QStringLiteral("INF"), QStringLiteral("DBG"), }; if(logLevel >= logPrefix.size()) { qCDebug(LOG_DETECTOR) << "Invalid log level:" << logLevel; return; } qCDebug(LOG_DETECTOR).noquote() << QStringLiteral("[%1]").arg(logPrefix[logLevel]) << QString::fromLatin1(text, strlen(text) - 1); } #endif flipperdevices-qFlipper-bfce851/dfu/libusb/usbdevicedetector.h000066400000000000000000000013641452337521700247240ustar00rootroot00000000000000#pragma once #include #include #include "usbdeviceinfo.h" class QTimer; class USBDeviceDetector : public QObject { Q_OBJECT public: USBDeviceDetector(QObject *parent = nullptr); ~USBDeviceDetector(); void setLogLevel(int logLevel); bool setWantedDevices(const QList &wantedList); void registerDevice(const USBDeviceInfo &deviceInfo); void unregisterDevice(const USBDeviceInfo &deviceInfo); signals: void devicePluggedIn(const USBDeviceInfo&); void deviceUnplugged(const USBDeviceInfo&); private slots: void processEvents(); private: static USBDeviceInfo fillDeviceInfo(const USBDeviceInfo &deviceInfo); QTimer *m_timer; QVector m_devices; }; flipperdevices-qFlipper-bfce851/dfu/usbdevice.h000066400000000000000000000013351452337521700217100ustar00rootroot00000000000000#ifndef USBDEVICE_H #define USBDEVICE_H namespace USBRequest { enum EndpointDirection { ENDPOINT_IN = 0x80, ENDPOINT_OUT = 0x00, }; enum RequestType { REQUEST_TYPE_STANDARD = 0x00, REQUEST_TYPE_CLASS = (0x01 << 5), REQUEST_TYPE_VENDOR = (0x02 << 5), REQUEST_TYPE_RESERVED = (0x03 << 5) }; enum RequestRecipient { RECIPIENT_DEVICE = 0x00, RECIPIENT_INTERFACE = 0x01, RECIPIENT_ENDPOINT = 0x02, RECIPIENT_OTHER = 0x03 }; } #ifdef USB_BACKEND_LIBUSB #include "libusb/usbdevice.h" #include "libusb/usbdevicedetector.h" #elif defined(USB_BACKEND_WIN32) #include "win32/usbdevice.h" #include "win32/usbdevicedetector.h" #else #error "No USB backend confugured" #endif #endif // USBDEVICE_H flipperdevices-qFlipper-bfce851/dfu/usbdeviceinfo.cpp000066400000000000000000000037611452337521700231240ustar00rootroot00000000000000#include "usbdeviceinfo.h" USBDeviceInfo::USBDeviceInfo(uint16_t vendorID, uint16_t productID): m_vendorID(vendorID), m_productID(productID) {} bool USBDeviceInfo::isComplete() const { return m_vendorID != 0 && m_productID != 0 && #ifdef USB_BACKEND_LIBUSB !m_manufacturer.isEmpty() && !m_productDescription.isEmpty() && #endif !m_serialNumber.isEmpty() && m_backendData.isValid(); } USBDeviceInfo USBDeviceInfo::withBackendData(const QVariant &backendData) const { auto ret = *this; ret.m_backendData = backendData; return ret; } USBDeviceInfo USBDeviceInfo::withSerialNumber(const QString &serialNumber) const { auto ret = *this; ret.m_serialNumber = serialNumber; return ret; } USBDeviceInfo USBDeviceInfo::withManufacturer(const QString &manufacturer) const { auto ret = *this; ret.m_manufacturer = manufacturer; return ret; } USBDeviceInfo USBDeviceInfo::withProductDescription(const QString &productDescription) const { auto ret = *this; ret.m_productDescription = productDescription; return ret; } uint16_t USBDeviceInfo::vendorID() const { return m_vendorID; } uint16_t USBDeviceInfo::productID() const { return m_productID; } const QString &USBDeviceInfo::manufacturer() const { return m_manufacturer; } const QString &USBDeviceInfo::productDescription() const { return m_productDescription; } const QString &USBDeviceInfo::serialNumber() const { return m_serialNumber; } const QVariant &USBDeviceInfo::backendData() const { return m_backendData; } void USBDeviceInfo::setManufacturer(const QString &manufacturer) { m_manufacturer = manufacturer; } void USBDeviceInfo::setProductDescription(const QString &productDescription) { m_productDescription = productDescription; } void USBDeviceInfo::setSerialNumber(const QString &serialNumber) { m_serialNumber = serialNumber; } bool USBDeviceInfo::operator ==(const USBDeviceInfo &other) const { return m_backendData == other.m_backendData; } flipperdevices-qFlipper-bfce851/dfu/usbdeviceinfo.h000066400000000000000000000022721452337521700225650ustar00rootroot00000000000000#pragma once #include #include #include class USBDeviceInfo { public: USBDeviceInfo() = default; USBDeviceInfo(uint16_t vendorID, uint16_t productID); bool isComplete() const; USBDeviceInfo withBackendData(const QVariant &backendData) const; USBDeviceInfo withSerialNumber(const QString &serialNumber) const; USBDeviceInfo withManufacturer(const QString &manufacturer) const; USBDeviceInfo withProductDescription(const QString &productDescription) const; uint16_t vendorID() const; uint16_t productID() const; const QString &manufacturer() const; const QString &productDescription() const; const QString &serialNumber() const; const QVariant &backendData() const; void setManufacturer(const QString &manufacturer); void setProductDescription(const QString &productDescription); void setSerialNumber(const QString &serialNumber); bool operator ==(const USBDeviceInfo &other) const; private: uint16_t m_vendorID; uint16_t m_productID; QString m_manufacturer; QString m_productDescription; QString m_serialNumber; QVariant m_backendData; }; Q_DECLARE_METATYPE(USBDeviceInfo) flipperdevices-qFlipper-bfce851/dfu/win32/000077500000000000000000000000001452337521700205265ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/dfu/win32/usbdevice.cpp000066400000000000000000000126321452337521700232070ustar00rootroot00000000000000#include "usbdevice.h" #include #include #include #include #include #include "debug.h" #define RETRY_COUNT 5 #define RETRY_INTERVAL_MS 50 struct USBDevice::USBDevicePrivate { HANDLE fileHandle; WINUSB_INTERFACE_HANDLE deviceHandle; WINUSB_INTERFACE_HANDLE interfaceHandle; QByteArray filePath; }; USBDevice::USBDevice(const USBDeviceInfo &info, QObject *parent): QObject(parent), m_p(new USBDevicePrivate) { m_p->filePath = info.backendData().toByteArray(); } USBDevice::~USBDevice() { close(); delete m_p; } bool USBDevice::open() { check_return_val(!m_isOpen, "Device already open, ignoring call", true); m_p->fileHandle = CreateFileA(m_p->filePath.data(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, nullptr); check_return_bool(m_p->fileHandle != INVALID_HANDLE_VALUE, "Failed to open file for USB device"); const auto success = WinUsb_Initialize(m_p->fileHandle, &m_p->deviceHandle); m_isOpen = (success == TRUE); if(!m_isOpen) { CloseHandle(m_p->fileHandle); error_msg("Failed to initialise WinUsb device"); } return m_isOpen; } void USBDevice::close() { if(!m_isOpen) return; WinUsb_Free(m_p->deviceHandle); CloseHandle(m_p->fileHandle); m_isOpen = false; } bool USBDevice::claimInterface(int interfaceNum) { Q_UNUSED(interfaceNum); return true; } bool USBDevice::releaseInterface(int interfaceNum) { Q_UNUSED(interfaceNum); return true; } bool USBDevice::setInterfaceAltSetting(int interfaceNum, uint8_t alt) { Q_UNUSED(interfaceNum); int retryCount = RETRY_COUNT; BOOL success; do { if((success = WinUsb_SetCurrentAlternateSetting(m_p->deviceHandle, alt)) == TRUE) { break; } QThread::msleep(RETRY_INTERVAL_MS); } while(--retryCount); check_return_bool(success == TRUE, "Failed to set alternate settiing"); return true; } bool USBDevice::controlTransfer(uint8_t requestType, uint8_t request, uint16_t value, uint16_t index, const QByteArray &buf) { Q_UNUSED(requestType) int retryCount = RETRY_COUNT; BOOL success; ULONG size; WINUSB_SETUP_PACKET sp; sp.RequestType = requestType; sp.Request = request; sp.Value = value; sp.Index = index; sp.Length = buf.size(); do { if((success = WinUsb_ControlTransfer(m_p->deviceHandle, sp, (unsigned char*)buf.data(), buf.size(), &size, nullptr)) == TRUE) { break; } QThread::msleep(RETRY_INTERVAL_MS); } while(--retryCount); check_return_bool(success == TRUE, "Failed to perform control transfer"); check_return_bool(size == buf.size(), "Requested and transferred data size differ"); return true; } QByteArray USBDevice::controlTransfer(uint8_t requestType, uint8_t request, uint16_t value, uint16_t index, uint16_t length) { Q_UNUSED(requestType) int retryCount = RETRY_COUNT; BOOL success; ULONG size; WINUSB_SETUP_PACKET sp; sp.RequestType = requestType; sp.Request = request; sp.Value = value; sp.Index = index; sp.Length = length; QByteArray buf(length, 0); do { if((success = WinUsb_ControlTransfer(m_p->deviceHandle, sp, (unsigned char*)buf.data(), length, &size, nullptr)) == TRUE) { break; } QThread::msleep(RETRY_INTERVAL_MS); } while(--retryCount); check_return_val(success == TRUE, "Failed to perform control transfer", QByteArray()); if(success == FALSE) { buf.clear(); error_msg("Failed to perform control transfer"); } else if(size != length) { buf.resize(size); debug_msg("Requested and transferred data size differ"); } else {} return buf; } QByteArray USBDevice::extraInterfaceDescriptor(int interfaceNum, uint8_t type, int length) { Q_UNUSED(interfaceNum); QByteArray ret; ULONG sizeTransferred; const auto BUF_SIZE = 1024; unsigned char buf[BUF_SIZE]; ((USB_CONFIGURATION_DESCRIPTOR*)buf)->bDescriptorType = USB_CONFIGURATION_DESCRIPTOR_TYPE; const auto success = WinUsb_GetDescriptor(m_p->deviceHandle, USB_CONFIGURATION_DESCRIPTOR_TYPE, 0, 0, buf, BUF_SIZE, &sizeTransferred); check_return_val(success == TRUE, "Failed to retrieve configuration descriptor", ret); for(ULONG i = 0; i < sizeTransferred;) { auto *cd = (USB_COMMON_DESCRIPTOR*)(buf + i); if(cd->bDescriptorType == type && cd->bLength == length) { ret.append((char*)cd, cd->bLength); break; } i += cd->bLength; } return ret; } QByteArray USBDevice::stringInterfaceDescriptor(uint8_t alt) { QByteArray ret; USB_INTERFACE_DESCRIPTOR ifd; ifd.bDescriptorType = USB_INTERFACE_DESCRIPTOR_TYPE; auto success = WinUsb_QueryInterfaceSettings(m_p->deviceHandle, alt, &ifd); check_return_val(success == TRUE, "Failed to get interface descriptor", ret); const auto BUF_SIZE = 1024; unsigned char buf[BUF_SIZE]; ULONG sizeTransferred; success = WinUsb_GetDescriptor(m_p->deviceHandle, USB_STRING_DESCRIPTOR_TYPE, ifd.iInterface, 0, buf, BUF_SIZE, &sizeTransferred); check_return_val(success == TRUE, "Failed to get string interface descriptor", ret); auto *sd = (PUSB_STRING_DESCRIPTOR)buf; ret = QString::fromUtf16((ushort *)sd->bString).toLocal8Bit(); return ret; } flipperdevices-qFlipper-bfce851/dfu/win32/usbdevice.h000066400000000000000000000016261452337521700226550ustar00rootroot00000000000000#pragma once #include #include "usbdeviceinfo.h" class USBDevice : public QObject { Q_OBJECT struct USBDevicePrivate; public: USBDevice(const USBDeviceInfo &info, QObject *parent = nullptr); virtual ~USBDevice(); bool open(); void close(); bool claimInterface(int interfaceNum); bool releaseInterface(int interfaceNum); bool setInterfaceAltSetting(int interfaceNum, uint8_t alt); bool controlTransfer(uint8_t requestType, uint8_t request, uint16_t value, uint16_t index, const QByteArray &data); QByteArray controlTransfer(uint8_t requestType, uint8_t request, uint16_t value, uint16_t index, uint16_t length); QByteArray extraInterfaceDescriptor(int interfaceNum, uint8_t type, int length); QByteArray stringInterfaceDescriptor(uint8_t alt); private: bool m_isOpen = false; unsigned long m_timeout = 1000; USBDevicePrivate *m_p; }; flipperdevices-qFlipper-bfce851/dfu/win32/usbdevicedetector.cpp000066400000000000000000000151331452337521700247400ustar00rootroot00000000000000#include "usbdevicedetector.h" #include #include #include #include #include Q_LOGGING_CATEGORY(LOG_DETECTOR, "USB") static LRESULT CALLBACK hotplugWindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); struct USBDeviceDetector::USBDeviceDetectorPrivate { HINSTANCE appInstsance; ATOM hotplugWindowAtom; HWND hotplugWindowHandle; }; USBDeviceDetector::USBDeviceDetector(QObject *parent): QObject(parent), m_p(new USBDeviceDetectorPrivate) { if(!registerAtom()) { qCCritical(LOG_DETECTOR) << "Failed to register hotplug window atom"; } else if(!createHotplugWindow()) { qCCritical(LOG_DETECTOR) << "Failed to create hotplug window"; } } USBDeviceDetector::~USBDeviceDetector() { delete m_p; } void USBDeviceDetector::setLogLevel(int logLevel) { Q_UNUSED(logLevel) qCInfo(LOG_DETECTOR) << "Setting USB backend log level is not implemented on WinUSB"; } bool USBDeviceDetector::setWantedDevices(const QList &wantedList) { m_wanted = wantedList; update(); return true; } void USBDeviceDetector::update() { const auto available = availableDevices(); processDevicesArrived(available); processDevicesLeft(available); } bool USBDeviceDetector::registerAtom() { m_p->appInstsance = GetModuleHandleA(nullptr); if(!m_p->appInstsance) { qCCritical(LOG_DETECTOR) << "Failed to get application instance"; return false; } WNDCLASSEXA wc; wc.cbSize = sizeof(wc); wc.style = 0; wc.lpfnWndProc = hotplugWindowProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = m_p->appInstsance; wc.hIcon = nullptr; wc.hCursor = nullptr; wc.hbrBackground = (HBRUSH)(COLOR_WINDOW); wc.lpszMenuName = nullptr; wc.lpszClassName = "qFlipper"; wc.hIconSm = nullptr; m_p->hotplugWindowAtom = RegisterClassExA(&wc); return m_p->hotplugWindowAtom != INVALID_ATOM; } bool USBDeviceDetector::createHotplugWindow() { m_p->hotplugWindowHandle = CreateWindowExA(WS_EX_CLIENTEDGE, "qFlipper", "qFlipper", WS_EX_OVERLAPPEDWINDOW, 100, 100, 200, 200, nullptr, nullptr, m_p->appInstsance, nullptr); const auto success = (m_p->hotplugWindowHandle != INVALID_HANDLE_VALUE); if(success) { SetWindowLongPtrA(m_p->hotplugWindowHandle, GWLP_USERDATA, (LONG_PTR)this); ShowWindow(m_p->hotplugWindowHandle, SW_HIDE); EnableWindow(m_p->hotplugWindowHandle, TRUE); } return success; } QList USBDeviceDetector::availableDevices() const { QList ret; HDEVINFO infoSet = SetupDiGetClassDevsA(nullptr, nullptr, nullptr, DIGCF_PRESENT | DIGCF_ALLCLASSES | DIGCF_DEVICEINTERFACE); if(infoSet == INVALID_HANDLE_VALUE) { qCCritical(LOG_DETECTOR) << "Failed to get device list"; return ret; } SP_DEVINFO_DATA infoData; infoData.cbSize = sizeof(SP_DEVINFO_DATA); for(DWORD i = 0; SetupDiEnumDeviceInfo(infoSet, i, &infoData); ++i) { char buf[1024]; DWORD size; const auto result = SetupDiGetDeviceInstanceIdA(infoSet, &infoData, buf, sizeof(buf), &size); if(result == FALSE) { continue; } for(const auto &wantedInfo : m_wanted) { const size_t WANTED_BUF_SIZE = 22; char wantedBuf[WANTED_BUF_SIZE]; snprintf(wantedBuf, WANTED_BUF_SIZE, "USB\\VID_%04X&PID_%04X", wantedInfo.vendorID(), wantedInfo.productID()); if(strncmp(buf, wantedBuf, WANTED_BUF_SIZE - 1)) continue; SP_DEVICE_INTERFACE_DATA interfaceData; interfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); const GUID USBDeviceGUID = {0xa5dcbf10, 0x6530, 0x11d2, {0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed}}; auto result = SetupDiEnumDeviceInterfaces(infoSet, &infoData, &USBDeviceGUID, 0, &interfaceData); if(result == FALSE) break; ULONG detailSize = 0; SetupDiGetDeviceInterfaceDetailA(infoSet, &interfaceData, nullptr, 0, &detailSize, nullptr); if(GetLastError() != ERROR_INSUFFICIENT_BUFFER) break; auto *detailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA_A)LocalAlloc(LMEM_FIXED, detailSize); detailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_A); result = SetupDiGetDeviceInterfaceDetailA(infoSet, &interfaceData, detailData, detailSize, nullptr, nullptr); if(result == TRUE) { const auto newInfo = parseInstanceID(buf); ret.append(newInfo.withBackendData(QByteArray(detailData->DevicePath))); } LocalFree(detailData); } } if(infoSet) { SetupDiDestroyDeviceInfoList(infoSet); } return ret; } void USBDeviceDetector::processDevicesArrived(const QList &available) { for(const auto &info : available) { const auto it = std::find_if(m_current.cbegin(), m_current.cend(), [&](const USBDeviceInfo &arg) { return arg.backendData() == info.backendData(); }); if(it == m_current.cend()) { m_current.append(info); emit devicePluggedIn(info); } } } void USBDeviceDetector::processDevicesLeft(const QList &available) { for(auto currentIt = m_current.begin(); currentIt != m_current.end();) { const auto availableIt = std::find_if(available.cbegin(), available.cend(), [&](const USBDeviceInfo &arg) { return arg.backendData() == currentIt->backendData(); }); if(availableIt == available.cend()) { const auto info = *currentIt; emit deviceUnplugged(info); currentIt = m_current.erase(currentIt); } else { ++currentIt; } } } USBDeviceInfo USBDeviceDetector::parseInstanceID(const char *buf) { unsigned int vid, pid; char serialbuf[1024]; sscanf_s(buf, "USB\\VID_%04X&PID_%04X\\%s", &vid, &pid, serialbuf, (unsigned int)strlen(buf)); return USBDeviceInfo(vid, pid).withSerialNumber(serialbuf); } static LRESULT CALLBACK hotplugWindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { if((msg == WM_DEVICECHANGE) && (wParam == DBT_DEVNODES_CHANGED)) { if(auto *ctx = (USBDeviceDetector*)GetWindowLongPtrA(hWnd, GWLP_USERDATA)) { ctx->update(); } return TRUE; } else if(msg == WM_CLOSE) { DestroyWindow(hWnd); } else if(msg == WM_DESTROY) { // Something...? } else { return DefWindowProcA(hWnd, msg, wParam, lParam); } return FALSE; } flipperdevices-qFlipper-bfce851/dfu/win32/usbdevicedetector.h000066400000000000000000000016301452337521700244020ustar00rootroot00000000000000#pragma once #include #include "usbdeviceinfo.h" class USBDeviceDetector : public QObject { Q_OBJECT struct USBDeviceDetectorPrivate; public: USBDeviceDetector(QObject *parent = nullptr); ~USBDeviceDetector(); void setLogLevel(int logLevel); bool setWantedDevices(const QList &wantedList); public slots: void update(); signals: void devicePluggedIn(const USBDeviceInfo&); void deviceUnplugged(const USBDeviceInfo&); private: bool registerAtom(); bool createHotplugWindow(); QList availableDevices() const; void processDevicesArrived(const QList &available); void processDevicesLeft(const QList &available); static USBDeviceInfo parseInstanceID(const char *buf); USBDeviceDetectorPrivate *m_p; QList m_wanted; QList m_current; }; flipperdevices-qFlipper-bfce851/docker-compose.yml000066400000000000000000000004431452337521700224440ustar00rootroot00000000000000version: '3' services: dev: build: docker network_mode: "host" privileged: true tty: true stdin_open: true volumes: - .:/project - /dev/bus/usb:/dev/bus/usb working_dir: "/project" environment: DISPLAY: $DISPLAY TERM: xterm-256color flipperdevices-qFlipper-bfce851/docker/000077500000000000000000000000001452337521700202555ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/docker/Dockerfile000066400000000000000000000036241452337521700222540ustar00rootroot00000000000000FROM ubuntu:20.04 WORKDIR /project RUN DEBIAN_FRONTEND=noninteractive apt update RUN DEBIAN_FRONTEND=noninteractive apt install -y \ software-properties-common \ wget \ file \ pkg-config \ git \ curl \ libfuse2 \ zlib1g-dev \ libusb-1.0-0-dev \ ca-certificates \ build-essential \ libgl-dev \ libxkbcommon-x11-dev \ libxcb-icccm4-dev \ libxcb-image0-dev \ libxcb-keysyms1-dev \ libxcb-randr0-dev \ libxcb-render-util0-dev \ libxcb-sync-dev \ libdbus-1-dev \ libmd4c-dev \ libegl-dev \ libxcb-xfixes0-dev \ libsm-dev \ libice-dev \ libxcb-glx0-dev \ libdrm-dev \ libx11-xcb-dev \ libopengl-dev \ && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN echo 'deb http://download.opensuse.org/repositories/home:drunkbatya/xUbuntu_20.04/ /' \ | tee /etc/apt/sources.list.d/home:drunkbatya.list RUN curl -fsSL https://download.opensuse.org/repositories/home:drunkbatya/xUbuntu_20.04/Release.key \ | gpg --dearmor | tee /etc/apt/trusted.gpg.d/home_drunkbatya.gpg > /dev/null RUN DEBIAN_FRONTEND=noninteractive apt update RUN DEBIAN_FRONTEND=noninteractive apt -y install \ qtbase6-static \ qtwayland6-static \ qt3d6-static \ qtdeclarative6-static \ qtserialport6-static \ qtshadertools6-static \ qtsvg6-static \ qttools6-static \ qt5compat6-static RUN wget https://update.flipperzero.one/builds/misc/linuxdeploy-x86_64-29092022.AppImage \ -O /usr/bin/linuxdeploy && chmod +x /usr/bin/linuxdeploy RUN wget https://update.flipperzero.one/builds/misc/linuxdeploy-plugin-qt-x86_64-29092022.AppImage \ -O /usr/bin/linuxdeploy-plugin-qt && chmod +x /usr/bin/linuxdeploy-plugin-qt RUN git config --global --replace-all safe.directory '*' ENV QT_BASE_DIR=/opt/qt6.4-static ENV PATH="${QT_BASE_DIR}/bin:${PATH}" COPY init.sh /init.sh ENTRYPOINT ["/init.sh"] flipperdevices-qFlipper-bfce851/docker/init.sh000077500000000000000000000004611452337521700215600ustar00rootroot00000000000000#!/bin/bash # A hack for GitHub Actions to not install Rust twice if [ "$HOME" != "/root" ]; then ln -sf /root/.rustup "$HOME/.rustup" ln -sf /root/.cargo "$HOME/.cargo" fi PATH="$HOME/.cargo/bin:${PATH}" if [ -z "$1" ]; then bash else echo "Running $1" set -ex bash -c "$1" fi flipperdevices-qFlipper-bfce851/driver-tool/000077500000000000000000000000001452337521700212545ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/driver-tool/.msvc/000077500000000000000000000000001452337521700223025ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/driver-tool/.msvc/BuildLibwdi.vcxproj000066400000000000000000000231611452337521700261140ustar00rootroot00000000000000 Debug Win32 Release Win32 Debug x64 Release x64 16.0 Win32Proj {1a6f79f9-8940-43cb-b93a-98ff77b45edc} BuildLibwdi 10.0 Utility true v142 Unicode Utility false v142 true Unicode Utility true v142 Unicode Utility false v142 true Unicode true $(SolutionDir)$(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ false false $(SolutionDir)$(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ false true $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ false false $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ false Level3 true WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true Console true copy /Y $(SolutionDir)config.h $(SolutionDir)libwdi\msvc\ Copy config.h msbuild $(SolutionDir)libwdi\libwdi.sln /p:Configuration=$(Configuration) /p:Platform=$(Platform) /t:"libwdi _static_";embedder;installer_$(Platform);detect_64build Build Libwdi Level3 true true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true Console true true true copy /Y $(SolutionDir)config.h $(SolutionDir)libwdi\msvc\ Copy config.h msbuild $(SolutionDir)libwdi\libwdi.sln /p:Configuration=$(Configuration) /p:Platform=$(Platform) /t:"libwdi _static_";embedder;installer_$(Platform);detect_64build Build Libwdi Level3 true _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true Console true copy /Y $(SolutionDir)config.h $(SolutionDir)libwdi\msvc\ Copy config.h msbuild $(SolutionDir)libwdi\libwdi.sln /p:Configuration=$(Configuration) /p:Platform=$(Platform) /t:"libwdi _static_";embedder;installer_$(Platform);detect_64build Build Libwdi Level3 true true true NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true Console true true true copy /Y $(SolutionDir)config.h $(SolutionDir)libwdi\msvc\ Copy config.h msbuild $(SolutionDir)libwdi\libwdi.sln /p:Configuration=$(Configuration) /p:Platform=$(Platform) /t:"libwdi _static_";embedder;installer_$(Platform);detect_64build Build Libwdi flipperdevices-qFlipper-bfce851/driver-tool/.msvc/BuildLibwdi.vcxproj.filters000066400000000000000000000015071452337521700275630ustar00rootroot00000000000000 {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 flipperdevices-qFlipper-bfce851/driver-tool/.msvc/Tool.rc000066400000000000000000000055301452337521700235500ustar00rootroot00000000000000// Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "winres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Russian (Russia) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT #pragma code_page(1251) #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""winres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // Russian (Russia) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (United States) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_ICON1 ICON "..\\FlipperDriverTool.ico" ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040004b0" BEGIN VALUE "CompanyName", "Flipper Devices Inc." VALUE "FileDescription", "Flipper Zero driver installation tool" VALUE "FileVersion", "1.0.0.1" VALUE "InternalName", "FlipperDriverTool" VALUE "LegalCopyright", "Copyright (C) 2021" VALUE "OriginalFilename", "FlipperDriverTool" VALUE "ProductName", "Flipper Zero driver installation tool" VALUE "ProductVersion", "1.0.0.1" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x400, 1200 END END #endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED flipperdevices-qFlipper-bfce851/driver-tool/.msvc/Tool.vcxproj000066400000000000000000000220571452337521700246420ustar00rootroot00000000000000 Debug Win32 Release Win32 Debug x64 Release x64 16.0 Win32Proj {f8d56e54-90e0-4880-a8e2-d291d55ac3c3} Tool 10.0 Tool Application true v142 Unicode Application false v142 true Unicode Application true v142 Unicode Application false v142 true Unicode true $(SolutionDir)libwdi\libwdi;$(IncludePath) $(SolutionDir)libwdi\$(Platform)\$(Configuration)\lib;$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ false $(SolutionDir)libwdi\libwdi;$(IncludePath) $(SolutionDir)libwdi\$(Platform)\$(Configuration)\lib;$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ true $(SolutionName) $(SolutionDir)libwdi\libwdi;$(IncludePath) $(SolutionDir)libwdi\$(Platform)\$(Configuration)\lib;$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ false $(SolutionName) $(SolutionDir)libwdi\libwdi;$(IncludePath) $(SolutionDir)libwdi\$(Platform)\$(Configuration)\lib;$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\ Level3 true WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebug Console true RequireAdministrator Level3 true true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true MultiThreaded Console true true true RequireAdministrator Level3 true _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebug Console true setupapi.lib;newdev.lib;libwdi.lib;%(AdditionalDependencies) RequireAdministrator Level3 true true true NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true MultiThreaded Console true true setupapi.lib;newdev.lib;libwdi.lib;%(AdditionalDependencies) false RequireAdministrator flipperdevices-qFlipper-bfce851/driver-tool/.msvc/Tool.vcxproj.filters000066400000000000000000000025021452337521700263020ustar00rootroot00000000000000 {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 Header Files Resource Files Resource Files flipperdevices-qFlipper-bfce851/driver-tool/.msvc/resource.h000066400000000000000000000006571452337521700243120ustar00rootroot00000000000000//{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by Tool.rc // #define IDI_ICON1 101 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 102 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif flipperdevices-qFlipper-bfce851/driver-tool/FlipperDriverTool.c000066400000000000000000000126711452337521700250420ustar00rootroot00000000000000#include #include #include #include #include #include #define BIG_ENOUGH 1024 #define FLIPPERZERO_VID 0x0483 #define FLIPPERZERO_PID 0xdf11 #define FLIPPERZERO_DESC "Flipper Zero in DFU mode" #define MANUFACTURER_DESC "Flipper Devices Inc." #define DRIVER_DIR "usb_driver" #define INCOMPATIBLE_INF "sttube.inf" #define FLIPPERZERO_INF "flipzerodfu.inf" #define DRIVER_STORE_PATH "C:\\Windows\\System32\\DriverStore\\FileRepository" void print_last_error() { LPSTR msg = NULL; FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&msg, 0, NULL ); printf("Error: %s", msg); LocalFree(msg); } int get_store_inf_folder(const char *inf_name, char *found_folder) { int result_length = 0; char path[MAX_PATH]; strcpy_s(path, MAX_PATH, DRIVER_STORE_PATH); strcat_s(path, MAX_PATH, "\\*"); WIN32_FIND_DATAA data; HANDLE found = FindFirstFileA(path, &data); if(found == INVALID_HANDLE_VALUE) { print_last_error(); return -1; } do { if(strstr(data.cFileName, inf_name)) { result_length = (int)strlen(data.cFileName); if(found_folder) { strcpy_s(found_folder, BIG_ENOUGH, data.cFileName); } break; } } while(FindNextFileA(found, &data)); FindClose(found); return result_length; } int uninstall_misconfigured_devices(HWND hwnd) { const GUID wanted_GUID = {0x36fc9e60, 0xc465, 0x11cf, {0x80, 0x56, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}; HDEVINFO info_set = SetupDiGetClassDevsA(&wanted_GUID, NULL, NULL, 0); if(info_set == INVALID_HANDLE_VALUE) { print_last_error(); return -1; } SP_DEVINFO_DATA info_data; info_data.cbSize = sizeof(SP_DEVINFO_DATA); int uninstall_count = 0; for(DWORD i = 0; SetupDiEnumDeviceInfo(info_set, i, &info_data); ++i) { BOOL result; DWORD size; char buf[1024]; result = SetupDiGetDeviceInstanceIdA(info_set, &info_data, buf, sizeof(buf), &size); if(result == FALSE) { print_last_error(); return -1; } else if(strstr(buf, "VID_0483&PID_DF11") == NULL) { continue; } printf("Uninstalling misconfigured device %s...\n", buf); result = DiUninstallDevice(hwnd, info_set, &info_data, 0, NULL); if(result == FALSE) { print_last_error(); return -1; } else { printf("Device successfully uninstalled.\n"); uninstall_count++; } } if(uninstall_count == 0) { printf("No misconfigured devices found.\n"); } SetupDiDestroyDeviceInfoList(info_set); return 0; } int uninstall_incompatible_driver(HWND hwnd) { int uninstall_count = 0; char inf_folder[BIG_ENOUGH]; while(get_store_inf_folder(INCOMPATIBLE_INF, inf_folder) > 0) { char path[MAX_PATH]; strcpy_s(path, MAX_PATH, DRIVER_STORE_PATH); strcat_s(path, MAX_PATH, "\\"); strcat_s(path, MAX_PATH, inf_folder); strcat_s(path, MAX_PATH, "\\"); strcat_s(path, MAX_PATH, INCOMPATIBLE_INF); printf("Uninstalling incompatible driver at \"%s\"...\n", inf_folder); if(DiUninstallDriverA(hwnd, path, 0, NULL) == FALSE) { print_last_error(); return -1; } else { printf("Incompatible driver successfully uninstalled.\n"); ++uninstall_count; } } if(uninstall_count == 0) { printf("No incompatible drivers found.\n"); } return 0; } int install_flipper_driver(HWND hwnd) { const int name_length = get_store_inf_folder(FLIPPERZERO_INF, NULL); if(name_length > 0) { printf("Flipper Zero DFU driver is already installed.\n"); return 0; } else if(name_length < 0) { return -1; } printf("Installing Flipper Zero DFU driver...\n"); struct wdi_device_info device_info = { NULL, FLIPPERZERO_VID, FLIPPERZERO_PID, FALSE, 0, FLIPPERZERO_DESC, NULL, NULL, NULL }; struct wdi_options_prepare_driver prepare_options = { WDI_WINUSB, MANUFACTURER_DESC, NULL, FALSE, FALSE, NULL, FALSE }; int err = wdi_prepare_driver(&device_info, DRIVER_DIR, FLIPPERZERO_INF, &prepare_options); if(err != WDI_SUCCESS) { printf("Error: %s\n", wdi_strerror(err)); return err; } struct wdi_options_install_driver install_options = {hwnd, FALSE, 0 }; err = wdi_install_driver(&device_info, DRIVER_DIR, FLIPPERZERO_INF, &install_options); if(err != WDI_SUCCESS) { printf("Error: %s\n", wdi_strerror(err)); return err; } return 0; } int main(int argc, char *argv[]) { HWND parent_handle = NULL; if(argc > 1) { parent_handle = (HWND)(uintptr_t)strtol(argv[1], NULL, 0); } if(uninstall_misconfigured_devices(parent_handle)) { printf("Error: failed to uninstall misconfigured device(s).\n"); return -1; } if(uninstall_incompatible_driver(parent_handle)) { printf("Error: Failed to uninstall incompatible driver(s).\n"); return -2; } if(install_flipper_driver(parent_handle)) { printf("Error: failed to install Flipper Zero driver.\n"); return -3; } printf("All done. Have a nice day!\n"); return 0; } flipperdevices-qFlipper-bfce851/driver-tool/FlipperDriverTool.ico000066400000000000000000000543011452337521700253660ustar00rootroot00000000000000(f @@h vh( F7 A(  "" """ """"" "" "  " "  " """"  " "( @"""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""" """" " """""" """"" " """""  """"  """ ""   " "" " "" """" " """"" ""   "" "" """"" """" """" " (@""""""""""""""" """""""""""""""""""""""""""""" """"""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""" """"""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""" """""""""""""""""""""""""" """"""""""""""""""""""""""" """"""""""""""" """"" """""""""""""" """ """""" """""""""" "" """""""""""""""""" "" """""""""""""""" "" """""""""""" ""  """"""""""""" """""""""""""  """""""""""""  """""""""" " """""""""" """""" "" " """"""""" "" """"" """ """ """"""""  """"""""" ""  """""""""""" """" " """" "" """ """"" """""""" ""  "" "" """"""""" " """""" """"""""""""""""""""" """""""""" """ """ """"""""""""""""" """ """ """"""""" " "" """" """""""""""""""""""""" "" "" " """""""""""""""""""" "" "" """"""" """""""" "" """ """"" ??????????????????("""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""????????????PNG  IHDR\rf nIDATx=%Y:l"  Ƃm b`h"mjf$h` &~j0j1w~svͻu}kNu$XCY:ƫ"ԏX/D[S"3u*R?>^њMy>("/[K礹'"r8.Nǯ[/f@K?a`CPÏC}z!7UmCwZַkǧ^Ϲ o6aǷY/b*]h,}t-K?+oI)pWxΖM{z s~4v/[/bMI"򥥿̯e,.|֎xJko<*? O4x9Ǎ@CF/Y6V͕WszT@L+/e`%o-%ZKcA2k^?#xb+jy#+{(/=_<|=4΢kimۓsWjZ%* 0 =#XZѦtX?4H@`͜ 0˱؞_"\-# ƽ Fz`D Z5SՇ{98VU ]"*۴O%X2A?E 2 o蛂n+DH@`[o a#:ޛt,Ɏ> ~`I-n S֣jH@`Ukq%`%rG F ZZH@` Z/ǁ?PH@`U>z~CFSrιԕT7 KF#i5ZkW{jH@`U] xU潱GF#U}5#BU2^ΖW5#5s5`-e^pN+[by*c@H@`*c@G}{7^ƱҚH@`jc@8xqj8y)(בH@`jc@詡OEY[)* 0-P% SwMFm(_IF#(Xv#;̷FF#>S#{A; e $5Y#hl# ZMH8jJ_Q`RzM#m@uJ` xV rfЀhRroGZz79QRJҊ`_ Jǻ4䜳vL=/EhOP=$vLas}-eXj>np),$}.al )=/mNY~gt Dѥ~|e|zg`>L)=ف1Lyg5KO ЀzatIENDB`PNG  IHDRxIDATxmuiY8.R"_[;8!iėPbk~-[14P"J+_PېŖB(uԗhfd 0'a9y9^Z~od8{Epe W?/o'&V/vXOC">OϊEߌ?؞EO 0>OϋOCvX)ĈxUD2; 0DrovCر>O_?ߞ(\o y9"⁈x~;,Qvs#ވxJv\q}ID`v+dDDzpc Fy9KvnSv#aAx۲<;"p-"~P˻( FyzKD+>O="ˇàCs@_xz;,eLHΈ/;@Dħ<V Ty}zoR]96} 3,w?>~Myi;,t>OrM>l<(+w9vg AFg+; }ӏgpd}6"0CgpD}พq''fp$}gD{ӳCb;pD~uɞY^MM/zLr"wNnA/8{I!N>OOf(}ޚbktGD^v⾩CpEgOg ""闳Cpg9}ޙboKpUyzSv=fg^[:*טm\ch> m! %y \<{DI +xs s-ͬFTlCSlʄ惛zv-q(}^Gz`S>`k3}4"~ ;D/<[DD{3p @gF sp}ov-(_"8/nӏ\g75SO Mw,1L e GggTy!,}";ʾ d&>O_Ofjv @D?;<ݓJM <>]w귗۰dﺮ{V;,;;3R+3ipJe @DJv6yzVvS)Q<}QD|av6J-;eNJS؇>O?UtHuUV8xMvs3mإeX "ސ]k|[vK3i ki?]=;F9\i`wu~_l!0 ܪeX˨WdX˨0QSf ㇲaಿgXÈ{0!p[vܰej6]ݖfrk|Szp#<#;c4[ˏXzvc<5;C6Zxqv4܋.F+ߑ`pwv؃ю4^RSlqraɎp Ͽ@A @A @AC] pK$|[y-]yq/٩1m}k/'P)P)P_\ Zc귥u:ndYu8oKn1t)P)P)P 't4\^5(I(H(u=g:׽L'Og/s/; @A @A @Af;3prlKʶ4{6F'P)P)P(}}ѯTvS#LF.x7 R  R  Rv{z귣f3G0LnK .ro @A @A @AC%6}F͖:cbKĽ1.@A @A @AeN=aRs E7œF*߷6凌q)P)P)P-,Ȥ|[L OǕ:  R  R  R 3$f]26P  R  R  R 3zns)^fAfd}۷a@A @A @A d9߾no'P)P)PrmfA5<}ne @A @A @AfP9_M~{ԯ'P)P)PΙX~8(H(H(HJ/\4ˤfa/X.=L. @A @A @Aט1[#gq,K3;'P)P)P 5l|귗9ߩ*\L R  R  RfMMkKB6u~3 R  R  Rf{u?DS?u~3.'P)P)P [-MN=3uC7|:(H(H(hMKo9ELrN=Ϧ$(H(H(HnpLMM2jڮG驿(H(H(Hv33[&h{m+_oK'P)P)PmgCsonKsk| R  R  jۚ왃մxd|[zlgخ{;;(H(H(h;##<(mKs*,~@A @A @A 4aDT05~q)P)P)P ȩ~q)P)P)P \-.k|q)P)P)P 0;ﺜ@A @A @A dָB_ò8(H(H( [cw|9(H(H{(;(pyg83@nꔳOp,N~;;(pyXXXbCE6>;òd8'p9pL \;4ZxOv'3hVuvԳP3ڃw;h'7d8 oe`,);ñXYvغ e`(` ? 0WeXÐ۔EďdaW~Ws yZ 2d#yiv\~!;[3eصdXӰ@vv4l8S;,?aMC] xz1;mڐo^`mC3?;3mZ=Ẋ8;)T)&;pvS)QZkEd`p*ca~gDܗ8|1[Mo?#DD~-;T';{3RZ{Wv6NT85ؖvXޑ"9،ggPc؄mGZk{XD<3; p=&{8NT=֚SS;,/;D̏g G;,/ΐth}ovR|[vl  vXmvl @kc|h}cvNexQH |YD|";pLO[Lk/ΰ% AD|:;GwgvQ ϴ[+p[xevnM;,_ahXD| ;O0@kkz7aUxQDkK"›Fwr_vS.v؇׶!s Wd Zk /(تwWCpOGI |{CpEB ؊{drM'EefKS5&}q;vX^b\ٟ0 =>wCAkgegsa`v887fؓ<#jڈxOvV;,1'GZ{oD|avA'u8XAk3zEĝyU#"vX>bT ZkkD9; N;,O1:XYk-MneOC8Zo=%"nvz0"벃TPk_qodgؐooa x @3{wE=+P{a;;DUNi?pbzUfKu_8S\)a/;oRD|]rc{A;,(Z[#⛒܊oۣoQ{uD@rX"vX> @ 7⵿`'Zk?{]D47@D<>qc)"/sy>h姎 9=`'Fī"YY9HD|O;,BTEF7fgη`DhD?$PDp-؀Gϴo$#o>DPGBxD#Yu?Lo<#VIENDB`flipperdevices-qFlipper-bfce851/driver-tool/FlipperDriverTool.sln000066400000000000000000000031531452337521700254070ustar00rootroot00000000000000 Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.31605.320 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tool", ".msvc\Tool.vcxproj", "{F8D56E54-90E0-4880-A8E2-D291D55AC3C3}" ProjectSection(ProjectDependencies) = postProject {1A6F79F9-8940-43CB-B93A-98FF77B45EDC} = {1A6F79F9-8940-43CB-B93A-98FF77B45EDC} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BuildLibwdi", ".msvc\BuildLibwdi.vcxproj", "{1A6F79F9-8940-43CB-B93A-98FF77B45EDC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {F8D56E54-90E0-4880-A8E2-D291D55AC3C3}.Debug|x64.ActiveCfg = Debug|x64 {F8D56E54-90E0-4880-A8E2-D291D55AC3C3}.Debug|x64.Build.0 = Debug|x64 {F8D56E54-90E0-4880-A8E2-D291D55AC3C3}.Release|x64.ActiveCfg = Release|x64 {F8D56E54-90E0-4880-A8E2-D291D55AC3C3}.Release|x64.Build.0 = Release|x64 {1A6F79F9-8940-43CB-B93A-98FF77B45EDC}.Debug|x64.ActiveCfg = Debug|x64 {1A6F79F9-8940-43CB-B93A-98FF77B45EDC}.Debug|x64.Build.0 = Debug|x64 {1A6F79F9-8940-43CB-B93A-98FF77B45EDC}.Release|x64.ActiveCfg = Release|x64 {1A6F79F9-8940-43CB-B93A-98FF77B45EDC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {78EE6B43-C2E0-4D75-8237-E2F4B0E33517} EndGlobalSection EndGlobal flipperdevices-qFlipper-bfce851/driver-tool/config.h000066400000000000000000000034301452337521700226720ustar00rootroot00000000000000/* config.h. Manual config for MSVC. */ #ifndef _MSC_VER #warn "msvc/config.h shouldn't be included for your development environment." #error "Please make sure the msvc/ directory is removed from your build path." #endif #if defined(_PREFAST_) /* Disable "Banned API Usage:" errors when using WDK's OACR/Prefast */ #pragma warning(disable:28719) #endif #if defined(_MSC_VER) // Disable some VS2012 Code Analysis warnings #pragma warning(disable:6258) // We'll use TerminateThread() regardless #pragma warning(disable:6387) #endif /* * Embed WinUSB driver files from the following WDK location. * If needed, you can obtain the WDK redistributable components from: * https://go.microsoft.com/fwlink/p/?LinkID=253170 * NB: You must also make sure the WDF_VER, COINSTALLER_DIR and X64_DIR * match your WinUSB redist directories. */ #ifndef WDK_DIR #define WDK_DIR "C:/Program Files (x86)/Windows Kits/10" #endif /* WDK WDF coinstaller version */ #define WDF_VER 1011 /* CoInstaller subdirectory for WinUSB redist files ("winusb" or "wdf") */ #define COINSTALLER_DIR "wdf" /* 64bit subdirectory for WinUSB redist files ("x64" or "amd64") */ #define X64_DIR "x64" /* embed libusb0 driver files from the following location */ #ifndef LIBUSB0_DIR //#define LIBUSB0_DIR "D:/libusb-win32" #endif /* embed libusbK driver files from the following location */ #ifndef LIBUSBK_DIR //#define LIBUSBK_DIR "D:/libusbK/bin" #endif /* embed user defined driver files from the following location */ #ifndef USER_DIR // #define USER_DIR "C:/signed-driver" #endif /* 32 bit support */ //#define OPT_M32 /* 64 bit support */ #define OPT_M64 /* Debug message logging */ //#define ENABLE_DEBUG_LOGGING /* Debug message logging (toggable) */ #define INCLUDE_DEBUG_LOGGING /* Message logging */ #define ENABLE_LOGGING 1 flipperdevices-qFlipper-bfce851/driver-tool/libwdi/000077500000000000000000000000001452337521700225265ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/000077500000000000000000000000001452337521700223035ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/appimage/000077500000000000000000000000001452337521700240665ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/appimage/AppRun000077500000000000000000000045051452337521700252250ustar00rootroot00000000000000#!/usr/bin/env bash set -e unset QT_STYLE_OVERRIDE export QT_QPA_PLATFORMTHEME=xdgdesktopportal THIS_DIR="$(readlink -f "$(dirname "$0")")" APPIMAGE_NAME="$(basename "$APPIMAGE")" RULES_FILE_NAME='42-flipperzero.rules' RULES_DIR=${3:-'/etc/udev/rules.d'} TARGET_RULES_FILE="$RULES_DIR/$RULES_FILE_NAME" SOURCE_RULES_FILE="$THIS_DIR/usr/lib/udev/rules.d/$RULES_FILE_NAME" SUDO_MESSAGE='You will now be asked for SUDO password.\n' check_rules_dir() { if ! [ -d "$RULES_DIR" ]; then printf "Error: directory \"$RULES_DIR\" does not exist.\n" exit 255 fi } install_udev_rules() { check_rules_dir if [ -f "$TARGET_RULES_FILE" ]; then printf 'The rules have already been installed. Bye!\n' exit fi printf "$SUDO_MESSAGE" # The danger zone if \ sudo -K \ && cat "$SOURCE_RULES_FILE" | sudo dd of="$TARGET_RULES_FILE" >/dev/null 2>&1 \ && sudo udevadm control --reload-rules \ && sudo udevadm trigger # End of danger zone then printf "Device rules have been installed successfully. You're good to go!\n" else printf "Something went wrong. Device rules may have not been installed correctly.\n" fi } uninstall_udev_rules() { check_rules_dir if ! [ -f "$TARGET_RULES_FILE" ]; then printf 'Nothing to uninstall. Bye!\n' exit fi printf "$SUDO_MESSAGE" # The danger zone if sudo -K \ && sudo rm -f "$TARGET_RULES_FILE" \ && sudo udevadm control --reload-rules \ && sudo udevadm trigger # End of danger zone then printf "Device rules have been uninstalled successfully. Thank you.\n" else printf "Something went wrong. Device rules may have not been uninstalled correctly.\n" fi } if [[ $# -eq 0 ]]; then "$THIS_DIR"/usr/bin/qFlipper elif [[ "$1" = 'gui' ]]; then shift 1 "$THIS_DIR"/usr/bin/qFlipper "$@" elif [[ "$1" = 'cli' ]]; then shift 1 "$THIS_DIR"/usr/bin/qFlipper-cli "$@" elif [[ "$1" = 'rules' ]]; then case "$2" in 'install') install_udev_rules ;; 'uninstall') uninstall_udev_rules ;; *) printf "Usage: $APPIMAGE_NAME rules {install, uninstall} [/path/to/rules.d]\n"; exit 255 ;; esac else printf "Usage: $APPIMAGE_NAME {[gui], cli, rules} [parameters]\n" exit 255 fi flipperdevices-qFlipper-bfce851/installer-assets/appimage/qFlipper.desktop000066400000000000000000000002631452337521700272440ustar00rootroot00000000000000[Desktop Entry] Type=Application StartupWMClass=qFlipper Categories=Utility;Education Comment=Update your Flipper easily Icon=qFlipper Name=qFlipper Exec=qFlipper Terminal=false flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/000077500000000000000000000000001452337521700246055ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/qFlipper_disk_background.png000066400000000000000000000175721452337521700323220ustar00rootroot00000000000000PNG  IHDR8iTXtXML:com.adobe.xmp qFlipper_disk_background jEiCCPsRGB IEC61966-2.1(u+Q?hbLq!Xjٍ2iԒfp}'ɭr(qʵRDJkzm%{Ny>{tsJ+ l^ }NZp(:>;}=`1݀Y)4)UwەT$&|.ܯM=Z7%1Y '*JVqӓI*/qijsŻ LJi&^= 0̠.ϐ\Efu4VH"OR=.1!z\Fu'FK>1^@a0 pgVsG0)vE9&\\W\nAǓ"E&nM$ v K9}І| @w.{\g), pHYs%%IR$yIDATxjX@9CyXuk=5!rFaSk|@֘i:&8οG"8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N ⾎3Xu4ML Dq@@' DqسUcUc N "8 N  *1ƪk2A' Dq@@'Ysv2A' Dq@@'Ys֮_{p,Dq@@' Dq@5p1ֈ֮_{=Dq@@' Dq@5p#Vs^| "8 N "8 Κ{xFvי "8 N ⬹pkWٯ "8 N "8 Κ{Nm*@ "8 N "8 Κ{N*{؞ "8 N "8 Κ{g=@@' Dq@@g=DX߂Up^&"8 N "8kF^["*{&Dq@@' Dq@5p1ցg`=܏ "8 N "8 Κ{`= "8 N ⬹a N "8 N  *{ "8 N "8 Κ{x "8 N "8 Κ{x "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N :lG7Mѷ@ "8 N "8[ȚVf{p4O@@' Dq@-fܞm@}?>`+&"8 N "8 N "8 N "8 1Ƣߟi;*-$ 1rTgE3 =&"8G8x&^L Dq ycAsʵK_gk.u53 f N s nn醩O;)[>G9Ꙝk՘ 1[z SWqr'h 1 sҝk齜^p/&"8G`kϧ6aaΙ{;# d^;>s=]y}VL Dq% L Dqs|LL Dq@Hcg/s|V>O&Dq@#f8^3i&"8 N l1Qks}t-]Wy{/|qL Dqo;qGp {~>g`_&"8GvVOza N s >6-f@ "8 3c6g=|vOm:O->g@@7;m_O p5؊ "8 N "8 N "8 N ⾎4Mc{3A' Dq@@gYKŶ2f N "8 3AԘ "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "^i IENDB`flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installer/000077500000000000000000000000001452337521700303545ustar00rootroot00000000000000windows_installer_finish120.bmp000077500000000000000000006622701452337521700363470ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBMd6(dtt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777[77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Y<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777:777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A77777777777777777777777777777777777777777777777777777777777777777777켏7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)A-)-)-)-)-)-)-)A-)-)-)77777777777777777777777777777777777777777777777777777777777777777777z777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)77777777777777777777777777777777777777777777777777777777777777777778<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)A-)-)-)A-)-)-)A-)-)-)A-)-)-)7777777777777777777777777777777777777777777777777777777777777777772=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A-)A-)A777777777777777777777777777777777777777777777777777777777777777777x:7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)A-)-)-)A-)-)-)A-)-)-)A-)-)-)A-)-)77777777777777777777777777777777777777777777777777777777777777777y<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A7777777777777777777777777777777777777777777777777777777777777777*C<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)-)-)A-)A-)A-)A-)A-)7777777777777777777777777777777777777777777777777777777777777777V;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)777777777777777777777777777777777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)AAA-)AAA-)A-)A-)A-)A-)AAA-)AAA-)A77777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A7777777777777777777777777777777777777777777777777777777777777'<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)AAA-)AAA-)AAA-)AAA-)AAA-)AAA-)AAA-)A7777777777777777777777777777777777777777777777777777777777775<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)AAA-)AAA-)AAAAAAAAAAAAAAA-)AAA-)AAA-)777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAA-)AAA-)AAAAAAAAAAA-)AAA-)AAAAAAA7777777777777777777777777777777777777777777777777777777777n77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A777777777777777777777777777777777777777777777777777777777-&7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAA-)A-)A-)AAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777P/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)77777777777777777777777777777777777777777777777777777777[<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777772<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)AAA-)A-)AAA-)A-)A-)A-)A-)A-)A-)A-)A-)777777777777777777777777777777777777777777777777777777x77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777Ʊ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)AAA-)A-)A-)A-)A-)A-)A-)AAAAAAAAA-)A-)A-)A-)A-)A-)A-)AAA-)A77777777777777777777777777777777777777777777777777777𼻏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777$<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)AAA-)AAA-)AAA-)AAA-)AAAAAAAAAAAA-)AAA-)AAA-)AAA-)AAA-)7777777777777777777777777777777777777777777777777777;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777ӆ<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)AAA-)AAA-)AAA-)AAA-)AAAAAA777AAAAAA-)AAA-)AAA-)AAA-)AAA-)77777777777777777777777777777777777777777777777777;7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA77777AAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAA-)AAA-)AAA-)AAA-)AAAAAAA77777AAAAAAA-)AAA-)AAA-)AAA-)AAA77777777777777777777777777777777777777777777777770=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAA-)AAA-)AAAAAAA777777777AAAAAAA-)AAA-)AAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777778>=777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777,u777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,AAAAAAAAAAAAAAAAAAA7777777777777AAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777;77777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777J7777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,AAA,AAA,AAAAAAAAAAAA777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777.:7777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA77777777777777777AAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777u<777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,AAA,AAA,AAAAAAAAA77777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,AAA,AAA,A,AAA777777777777777777777AAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777U7777777777777777777777777777777777777777777777777777777777777777777777777777777,AAAAAAAAAAAAAAAAAAAAAA777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,AAA,77777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777Xa777777777777777777777777777777777777777777777777777777777777777777777777777777AAA,AAAAAAAAAAAAAAAAAA7777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777cܼ77777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,AAA,A7777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777ၻ7777777777777777777777777777777777777777777777777777777777777777777777777777AAA,AAA,AAAAAAAAAAAAAAA777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777R<7777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A77777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777z[=777777777777777777777777777777777777777777777777777777777777777777777777777AA,AAA,AAA,AAAAAAAAAAAA77777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777C777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,7777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777dX77777777777777777777777777777777777777777777777777777777777777777777777777A,AAA,AAA,AAA,AAAAAAAA777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777;7777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777r<777777777777777777777777777777777777777777777777777777777777777777777777A,AAA,AAA,AAA,AAA,A,AAA77777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777*+777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A7777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777g<77777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,7777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777770#7777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A7777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777773 777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A77777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777|277777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A7777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAA,AAA,AAA,AAA,AAA,AA777777777777777777777777777777D77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777771,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,AAA,AAA,AAA,AAA,AAA,AA7777777777777777777777777777i7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777M37777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A777777777777777777777777777Z277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777771y777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,77777777777777777777777777^777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,AAA,AAA,AAA,AAA,AAAAA777777777777777777777777H77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A77777777777777777777777~777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,AAA,AAA,AAA,AAA,AAAAA7777777777777777777777~47777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,7777777777777777777777157777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,AAA,AAA,AAA,AAA,AAAA777777777777777777777 p)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,AA77777777777777777777O/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,AAA,AAA,AAA,AAAAAAA77777777777777777777%777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A7777777777777777777(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAA,AAA,AAA,AAA,AAAAA,A777777777777777777f77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,AAA,AAA,AAA,AAA,A,AAA,7777777777777777708777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,777777777777777737777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,AAA,AAA,AAA,A,AAA,AAA7777777777777777*-7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A777777777777777*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A777777777777770377777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,77777777777777**.777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,7777777777777{57777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A777777777777-777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A777777777770777777777777777777777777777777777777777777777777777777777777777777a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A7777777777407777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,7777777777+477777777777777777777777777777777777777777777777777777777777777a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,AA7777777773777777777777777777777777777777777777777777777777777777777777a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,AA77777777)7777777777777777777777777777777777777777777777777777777777a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A77777777-N77777777777777777777777777777777777777777777777777777777a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777𭏀777777777777777777777777777777777777777777777777777777a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777z7777777777777777777777777777777777777777777777777777a^\a^\齯GGGa^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777777777a^\a^\齯GmmmGa^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777a^\a^\齯G888Ga^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777774;7777777777777777777777777777777777777777777777a^\a^\齯Gm888Ga^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\齯G888GGa^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ų777777777777777777777777777777777777777777a^\a^\齯GGGGGG88Ga^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\GGmmmmGGGGGGa^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777a^\a^\Gmm8888mmGGGa^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ϭ777777777777777777777777777777777777a^\a^\Gm8888888mG齯a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/47777777777777777777777777777777777a^\a^\hGm888888888mG齯a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777a^\a^\G88888888888G齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ए777777777777777777777777777777a^\a^\Gm88888888888G齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ƕ7777777777777777777777777777a^\a^\GGG8888GGG88888G齯齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777a^\a^\GGmmGGm888GmmmG8888G齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777a^\a^\GGmm8mGG8888G888G888GG齯齯齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777H7777777777777777777777a^\a^\GGmm888mGGm888G8888G888GG齯齯齯齯齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/h*77777777777777777777a^\a^\GGmm88888mGG8888G888GG888GG齯齯齯齯齯齯齯齯a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777a^\a^\GGmm8888888mGG8888GG88Gm88GG齯齯齯齯齯齯齯a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)7777777777777777a^\a^\GGmm888888888mGG8888mGGGGm88GG齯齯齯齯齯齯齯a^\777777777777777777777777777777777777777777777777tt|cP|cPtt777777777777777777777777777777777777777777777%77777777777777a^\a^\GGmm88888888888mGGG8888mGGm88GG齯齯齯齯齯齯齯a^\77777777777777777777777777777777777777777777777ttѿѿ|cP|cPtttt777777777777777777777777777777777777777777794.7777777777777a^\GGmm8888888888888mGGG88888mm888GG齯齯齯齯齯齯齯齯a^\777777777777777777777777777777777777777777777ttѿѿѿѿ|cP|cPtttttt77777777777777777777777777777777777777777.v4777777777777a^\GGmm8888888888888mGGG888888888GG齯齯齯齯齯齯齯a^\77777777777777777777777777777777777777777777ttѿѿѿѿѿѿ|cP|cPtttttttt777777777777777777777777777777777777777 1777777777777a^\GGmm8888888888888mGGG88888888GG齯齯齯齯齯齯齯a^\777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿ|cP|cPtttttttttt7777777777777777777777777777777777777077777777777a^\GGmm888888888888888888mGGG8888888GG齯齯齯齯齯齯齯a^\77777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttt77777777777777777777777777777777777)77777777777a^\GGmm88888888888mGGG8888GGG齯齯齯齯齯齯齯齯a^\777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttt77777777777777777777777777777777737777777777a^\Gmm888888888888888888mGGGGGGGG齯齯齯齯齯齯齯齯齯a^\77777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttt7777777777777777777777777777777*7777777777a^\GmG888888888888888888888mGGGGG齯齯齯齯齯齯齯齯a^\777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt77777777777777777777777777777)2777777777a^\GmG888888888888888mG齯齯齯齯齯齯齯a^\77777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttt777777777777777777777777777-V777777777a^\GmG8888888888888888mG齯齯齯齯齯齯齯a^\777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttt7777777777777777777777777/!77777777a^\GmG88888888888888GmG齯齯齯齯a^\77777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttt777777777777777777777771嫏77777777a^\GmG8888888888GGmmG齯齯齯a^\777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttt777777777777777777777#07777777a^\GmG88888888888GGmmGG齯齯a^\77777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttt7777777777777777777:7777777a^\GmG8888888888888GGmmGG齯齯齯a^\777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttt77777777777777777<777777a^\GmG88888888888GGmmGG齯齯a^\77777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttt7777777777777774777777a^\GmG8888888GGmmGG齯齯7777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttt7777777777777277777a^\GmG888888GGmmGG齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttt7777777777777777a^\GmG88888888GGmmGG齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttt7777777777777GmG888888GGmmGG齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttt7777777;27777齯GmG8888GGmmGG齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttt777770C7777齯GmG88GGmmGG齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttt777+77777齯齯GmGGGmmGG齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttt777777a^\齯齯GmGmmGG齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttt0[4777777a^\齯齯GmmGG777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttt-7777777a^\齯齯GG777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttt1%77777777a^\齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttt*3,777777777a^\齯齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttt*7777777777a^\齯齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtt|cP|cPѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttt0ǵ77777777777a^\齯齯齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttt)777777777777a^\齯齯齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttt4i7777777777777a^\齯齯齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttt2槏77777777777777a^\齯齯齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttt&".777777777777777a^\齯齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttt,7777777777777777a^\齯齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttt"1477777777777777777a^\齯777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttT777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttt1577777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttt27777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿtt|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᖃtttttttttttttttttttttttttttttttttttttttttJ777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿtt|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttt:777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿtt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttt0777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿtttt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttt17777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿtt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttt+77777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttt)777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttt.小7777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttt1.77777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttt777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttt/$*7777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttt&77777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttt-777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttt4+7777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttto'77777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttt47777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttt,>57777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttt4J7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttt|cP|cPtttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttt1.7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttt|cP|cPtttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttt%,7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿ|cP|cPtttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttt0%7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿ|cP|cPtttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttt47777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttt67777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttt+7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿڰ7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttѿѿѿѿ!27777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttѿѿ7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttǰ7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿ/ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttt&7777777777777777777777777777777|cPѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttt47777777777777777777777777777777|cPѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttt17777777777777777777777777777777|cPѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt/7777777777777777777777777777777|cPѿѿѿѿhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt-Q17777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt-'7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt337777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt37777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttO7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt-&7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt947777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt$7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt/7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt2;57777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt.37777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt337777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt07777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt*47777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttt﵏7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPꧏ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPQ/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt!7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPϓճ/qꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt0{7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճ/qꧏq/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt+𥏀77777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPϓqꧏq/pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt)(7777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPQꧏq/ճpƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttO3777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPꧏq/ճ/Ɔp㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt,77777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPq/ճ/qp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt57777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP/ճ/qꧏpƆp㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttc777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճ/qꧏqƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt,77777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777|cP|cPѿѿѿѿttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqꧏqqճpƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt0(,777777777777777777777777777777777777777777777777|cP|cPttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt,S,777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttt-*7777777777777777777777777777777777777777777|cPttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt.;%7777777777777777777777777777777777777777777|cPttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt%7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttt'6'7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt0-7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttt,57777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt(7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp:/㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt847777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆpZ/:/㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt407777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp/Z/㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt+47777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt/7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp/Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtt|cPqqճqqp://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt+*7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtt|cP|cP|cP|cPqճqqճpƆp/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt=.7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttt|cP|cPճqqճqƆpZ/://Z/://://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt407777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqpZ/:/㪻pqֺ~|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt27777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/㪻pqֺ~|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt+7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttI$7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttd7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt)'7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt.٬7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt.1,7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z//Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttty7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt2\,7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/:/Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt147777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt27777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/://Z/://Z/Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt.07777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt-P7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt}7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt1e07777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt*7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/:/Z/://Z/://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/:/://Z/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt27777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/Z/:/://Z/://Z/://Z/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt/\7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː///Z/://Z/:/Z//Z/:/Z/://Z/://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttQ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//://Z/://Z/:///://Z//Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt3L7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//://Z/://Z/://Z//:/:/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt-7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//://Z/://Z/://Z//://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//://Z/://Z/://Z//:/:/Z/:/Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttѱ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//://Z/://Z/://Z//:/://Z/Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt*07777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//:///Z/://Z/:/Z/:/://://Z//㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt67777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//:///Z/://Z/:/Z/:/Z///ː://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː:/Z//Z/://Z/://Z//////㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt007777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː:/:/Z/://Z/://:/Z/:///㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt2O7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/:/Z///㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt𮏀7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/://Z/://://://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/:/Z/:/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttg-7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z//Z/:/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt17777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/Z//Z/://Z/q/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt-#7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/i/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː:/:/Z/㻯/q/㻯/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z//q/i/q/iq/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt 47777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/Z/:/:/i/q/i/q/㻯/q/pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt!j7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/://Z/㻯/q/i/q/i/q/iճqqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt37777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/://Z/://q/i/q/i/q/i/qqճqqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt*17777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/:/Z/:/i/q/i/q/i/q/qճqqճqq|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt,7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/Z/://㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt*,7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/://Z/://Z/://q/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttӞ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqi/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt17777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt5h7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qq/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt-7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqi/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt.7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttp7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏqqq/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt=7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qi/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt(l47777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt07777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qq/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt0 7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/i/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt&7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q㻯/q/i/q/i/q/iճqqճqqQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttt 47777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/q/i/i/q/i/qqճqqճq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttt.7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qi/q//i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttt037777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/㻯/q/iq//q/iճqqճqqQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttt-17777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qq/iq/q/i/qqꧏqqճq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttt37777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/i/q//i/q/qꧏqqճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttt3I47777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q/q//iq/iꧏq/ճ/qϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttt&07777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq//iq/i/q/ճ/qꧏ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttt%7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q/i/q//ճ/qꧏq/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttt|cP|cP|cPtttttttttttt67777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq//q/iճ/qꧏq/ϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttѿѿѿ|cP|cP|cPttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q//qꧏq/ճ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttѿѿѿѿѿѿ|cP|cP|cPtttttt47777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/qꧏq/ճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttѿѿѿѿѿѿѿѿѿ|cP|cP|cPttt57777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qꧏq/ճ/qϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPt|cPѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP#.7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/ճ/qꧏ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-J7777777777777777777777777777777777777777777jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qꧏq/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ(7777777777777777777777777777777777777777777jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/ϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ1 7777777777777777777777777777777777777777777jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,7777777777777777777777777777777777777777777jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ&7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ/c7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ27777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ*7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ247777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿⲏ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ<,7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ/7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ. 7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ/7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿW7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-a*7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ/F7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ3ܳ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿn)7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ寏7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB37777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ07777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ*W7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7.7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77707777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777p.7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777.7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777(07777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777&27777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777770927777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777X-7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777/51777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777,³77777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777.7777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777770Q777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777/77777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777($7777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777(27777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777k77777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777772917777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777. 777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777",77777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777&77777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773ȭ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777705577777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777]777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770$0777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777774v1777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&0777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777W77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,|5777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(~(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777477777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777h077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777d077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777i17777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&Ewindows_installer_finish144.bmp000077500000000000000000012223701452337521700363470ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM$6($%%7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>7777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>7777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)-)-)-)-)-)-)-)-)AA-)-)-)-)-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>7777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)-)-)-)-)-)-)-)-)AA-)-)-)-)-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=77777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>77777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)-)-)-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)-)-)-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>7777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>7777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>7777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AAAAAA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>7777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>7777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>77777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777!7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"77777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAA777777AAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAA777777AAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$7777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"77777777777777777777777777777777777777777777AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777%77777777777777777777777777777777777777AAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777$77777777777777777777777777777777777777AAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777'77777777777777777777777777777777AA,,AA,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777,,AA,,AA,,AA,,AA,,AAAAAA,,AAAAAA,,AA,,AAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777"777777777777777777777777777777,,AA,,AA,,AA,,AA,,AAAAAA,,AAAAAA,,AA,,AAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777$7777777777777777777777777777,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,7777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777&77777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,7777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777$77777777777777777777777777AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777#777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,AA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,AA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777'777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777$7777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777"77777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777&77777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777!7777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777(7777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777&777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777"7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777$77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA77777777777777777777777777777777777777777#777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAA77777777777777777777777777777777777$7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAA777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA,,AA77777777777777777777777777777&7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA,,AA77777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,777777777777777777777777777#777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,777777777777777777777777777%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777#7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,AAAAAA7777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,AAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777#7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777%77777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777#7777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\齯GGGa^\7777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777$7777777777777777777777777777777777777777777777777777777777777777777a^\a^\齯GmmmGa^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\齯G888Ga^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\齯Gm888Ga^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\齯G888GGa^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\齯GGGGGG88Ga^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777a^\a^\GGmmmmGGGGGGa^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777a^\a^\Gmm8888mmGGGa^\777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA7777777777777777777777777777777777777777777777777777777777777777a^\a^\Gm8888888mG齯a^\777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA77777777777777777777777777777777777777777777777777777777777777a^\a^\hGm888888888mG齯a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA7777777777777777777777777777777777777777777777777777777777a^\a^\G88888888888G齯77777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA777777777&77777777777777777777777777777777777777777777777a^\a^\Gm88888888888G齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777a^\a^\GGG8888GGG88888G齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777a^\a^\GGmmGGm888GmmmG8888G齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$77777777777777777777777777777777777777777a^\a^\GGmm8mGG8888G888G888GG齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\GGmm888mGGm888G8888G888GG齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\GGmm88888mGG8888G888GG888GG齯齯齯齯齯齯齯齯a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\GGmm8888888mGG8888GG88Gm88GG齯齯齯齯齯齯齯a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$777777777777777777777777777777777a^\a^\GGmm888888888mGG8888mGGGGm88GG齯齯齯齯齯齯齯a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\GGmm88888888888mGGG8888mGGm88GG齯齯齯齯齯齯齯a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777a^\GGmm8888888888888mGGG88888mm888GG齯齯齯齯齯齯齯齯a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$77777777777777777777777777777a^\GGmm8888888888888mGGG888888888GG齯齯齯齯齯齯齯a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&77777777777777777777777777777a^\GGmm8888888888888mGGG88888888GG齯齯齯齯齯齯齯a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GGmm888888888888888888mGGG8888888GG齯齯齯齯齯齯齯a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#7777777777777777777777777777a^\GGmm88888888888mGGG8888GGG齯齯齯齯齯齯齯齯a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\Gmm888888888888888888mGGGGGGGG齯齯齯齯齯齯齯齯齯a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GmG888888888888888888888mGGGGG齯齯齯齯齯齯齯齯a^\77777777777777777777777777777tt|cP|cPtt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GmG888888888888888mG齯齯齯齯齯齯齯a^\7777777777777777777777777777ttѿѿ|cP|cPtttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GmG8888888888888888mG齯齯齯齯齯齯齯a^\77777777777777777777777777ttѿѿѿѿ|cP|cPtttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GmG88888888888888GmG齯齯齯齯a^\7777777777777777777777777ttѿѿѿѿѿѿ|cP|cPtttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GmG8888888888GGmmG齯齯齯a^\77777777777777777777777ttѿѿѿѿѿѿѿѿ|cP|cPtttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GmG88888888888GGmmGG齯齯a^\7777777777777777777777ttѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GmG8888888888888GGmmGG齯齯齯a^\77777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777a^\GmG88888888888GGmmGG齯齯a^\7777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GmG8888888GGmmGG齯齯777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777a^\GmG888888GGmmGG齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\GmG88888888GGmmGG齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GmG888888GGmmGG齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777齯GmG8888GGmmGG齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777齯GmG88GGmmGG齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777齯齯GmGGGmmGG齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\齯齯GmGmmGG齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777$77777777777777777777777a^\齯齯GmmGG77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777a^\齯齯GG77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777a^\齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\齯齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777#777777777777777777777777777a^\齯齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\齯齯齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\齯齯齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\齯齯齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\齯齯齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777&77777777777777777777777777777777a^\齯齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\齯齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\齯77777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtt|cP|cPѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777"777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777$7777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777"777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777"77777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿtt|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᖃtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿtt|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿtt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777 777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿtttt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿtt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777$77777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777!777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777 77777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777&7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttt|cP|cPtttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttt|cP|cPtttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿ|cP|cPtttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿ|cP|cPtttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttt7777777"7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttt7777777(7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttt7777777#7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿ/ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttt7777777$7777777777777777777777777|cPѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttt7777777"7777777777777777777777777|cPѿѿѿѿhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttttt7777777!7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttttt7777777#7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttt7777777!7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttttt7777777!7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttttt7777777"7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttttt77777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿttt7777777&7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿ77777777"7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPꧏ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿ7777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPQ/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPϓճ/qꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777$7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճ/qꧏq/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPϓqꧏq/pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPQꧏq/ճpƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPꧏq/ճ/Ɔp㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPq/ճ/qp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP/ճ/qꧏpƆp㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճ/qꧏqƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777'77777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqꧏqqճpƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777|cPttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777!7777777777777777777777777777777777777|cPttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777!7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777"7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777%7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp:/㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆpZ/:/㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777 7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp/Z/㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp/Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtt|cPqqճqqp://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtt|cP|cP|cP|cPqճqqճpƆp/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttt|cP|cPճqqճqƆpZ/://Z/://://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777(7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqpZ/:/㪻pqֺ~|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/㪻pqֺ~|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777 7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z//Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/:/Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777$7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/://Z/://Z/Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777&7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/:/Z/://Z/://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/:/://Z/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/Z/:/://Z/://Z/://Z/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː///Z/://Z/:/Z//Z/:/Z/://Z/://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//://Z/://Z/:///://Z//Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777)7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//://Z/://Z/://Z//:/:/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//://Z/://Z/://Z//://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//://Z/://Z/://Z//:/:/Z/:/Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//://Z/://Z/://Z//:/://Z/Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//:///Z/://Z/:/Z/:/://://Z//㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777(7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//:///Z/://Z/:/Z/:/Z///ː://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː:/Z//Z/://Z/://Z//////㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː:/:/Z/://Z/://:/Z/:///㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/:/Z///㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/://Z/://://://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/:/Z/:/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z//Z/:/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777"7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/Z//Z/://Z/q/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/i/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː:/:/Z/㻯/q/㻯/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z//q/i/q/iq/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/Z/:/:/i/q/i/q/㻯/q/pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777 7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/://Z/㻯/q/i/q/i/q/iճqqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/://Z/://q/i/q/i/q/i/qqճqqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/:/Z/:/i/q/i/q/i/q/qճqqճqq|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/Z/://㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/://Z/://Z/://q/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqi/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777 7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qq/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777 7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqi/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777,7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏqqq/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qi/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qq/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/i/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777$7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q㻯/q/i/q/i/q/iճqqճqqQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777%7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/q/i/i/q/i/qqճqqճq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777 7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qi/q//i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/㻯/q/iq//q/iճqqճqqQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qq/iq/q/i/qqꧏqqճq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/i/q//i/q/qꧏqqճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777&7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q/q//iq/iꧏq/ճ/qϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq//iq/i/q/ճ/qꧏ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q/i/q//ճ/qꧏq/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttt|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777 7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq//q/iճ/qꧏq/ϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttѿѿѿ|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q//qꧏq/ճ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttѿѿѿѿѿѿ|cP|cP|cPttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/qꧏq/ճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttѿѿѿѿѿѿѿѿѿ|cP|cP|cPtttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qꧏq/ճ/qϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPt|cPѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/ճ/qꧏ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPtttttttttttttttttttttttttttt7777777777777777777777777777$7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qꧏq/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/ϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPtttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPtttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPttttttttttttt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPtttttttttt7777777777777777777777777777#7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPttttttt7777777777777777777777777777 7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPtttt7777777777777777777777777777"7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtt77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP77777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777!7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777$7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777&7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777"7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777"7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777(7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777%7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777!7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777$7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777#7777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777!77777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777"777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#77777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777Ꮐ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'windows_installer_finish168.bmp000077500000000000000000016165201452337521700363610ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBMP6(+777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)-)-)-)-)-)-)-)-)AA-)-)-)-)-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)-)-)-)-)-)-)-)-)AA-)-)-)-)-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)-)-)-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)-)-)-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AAAAAA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAA777777AAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAA777777AAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AAAAAA,,AAAAAA,,AA,,AAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AAAAAA,,AAAAAA,,AA,,AAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,7777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,7777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,AA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,AA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777tttt|cP|cP|cP|cPtttt77777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777tttt|cP|cP|cP|cPtttt77777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777ttttѿѿѿѿ|cP|cP|cP|cPtttttttt77777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777ttttѿѿѿѿ|cP|cP|cP|cPtttttttt77777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777ttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttt7777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777ttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttt7777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7ttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttt7777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttt7777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttt77777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttt77777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\77777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\77777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\a^\a^\7777777777777777777777777777777t,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\a^\a^\777777777777777777777777777ttttѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777ttttѿѿѿ,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\7777777777777777777ttttѿѿѿѿѿѿѿ,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\777777777777777ttttѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777ttttѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\7777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAѿ|cP|cP|cP|cPtttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAѿ|cP|cP|cP|cPtttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\7ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ѿ|cP|cP|cP|cPtttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ѿ|cP|cP|cP|cPtttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\tttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAA|cP|cP|cPtttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAA|cP|cP|cPtttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGa^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA|cPtttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGa^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA|cPtttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmmmmmmGGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAA|cPtttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmmmmmmGGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAA|cPtttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmm888888GGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA,,AAttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmm888888GGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA,,AAttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGGGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGGGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGGGGGGG8888GGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,ttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGGGGGGG8888GGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,ttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmmmmmGGGGGGGGGGGGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmmmmmGGGGGGGGGGGGa^\a^\a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPt,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmmmm88888888mmmmGGGGGGa^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttt,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,AAAAAAttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmmmm88888888mmmmGGGGGGa^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cPttt,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,AAAAAAttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm88888888888888mmGG齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cPtttAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm88888888888888mmGG齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPtttAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\hhGGmm888888888888888888mmGG齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPtttt|cPAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttttt7777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\hhGGmm888888888888888888mmGG齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttttt777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GG8888888888888888888888GG齯ѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttttttt777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GG8888888888888888888888GG齯ѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttttttt77777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm8888888888888888888888GG齯齯齯ѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttttttttt77777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm8888888888888888888888GG齯齯齯ѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttttttttt7777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGGG88888888GGGGGG8888888888GG齯齯齯齯ѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttttttttt7777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGGG88888888GGGGGG8888888888GG齯齯齯齯|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttttttttt777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmGGGGmm888888GGmmmmmmGG88888888GG齯齯齯齯齯|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttt777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmGGGGmm888888GGmmmmmmGG88888888GG齯齯齯齯齯|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttt77777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88mmGGGG88888888GG888888GG888888GGGG齯齯齯齯齯|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttt77777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88mmGGGG88888888GG888888GG888888GGGG齯齯齯齯齯|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttt7777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888mmGGGGmm888888GG88888888GG888888GGGG齯齯齯齯齯齯齯|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttt7777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888mmGGGGmm888888GG88888888GG888888GGGG齯齯齯齯齯齯齯|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttt777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888mmGGGG88888888GG888888GGGG888888GGGG齯齯齯齯齯齯齯齯a^\a^\a^\|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttt777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888mmGGGG88888888GG888888GGGG888888GGGG齯齯齯齯齯齯齯齯a^\a^\a^\|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttt77777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88888888888888mmGGGG88888888GGGG8888GGmm8888GGGG齯齯齯齯齯齯齯a^\a^\|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAttttttt77777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88888888888888mmGGGG88888888GGGG8888GGmm8888GGGG齯齯齯齯齯齯齯a^\a^\|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAttttttt7777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888888888888888mmGGGG88888888mmGGGGGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAtttt7777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888888888888888mmGGGG88888888mmGGGGGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAttttt777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888mmGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttt777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888mmGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttt7777777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888mmmm888888GGGG齯齯齯齯齯齯齯齯a^\a^\|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttt7777777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888mmmm888888GGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttt77777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG888888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttt77777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG888888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttt77777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttt77777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttt777777777777777777a^\a^\GGGGmmmm888888888888888888888888888888888888mmGGGGGG88888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttt777777777777777777a^\a^\GGGGmmmm888888888888888888888888888888888888mmGGGGGG88888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttt777777777777777777a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888GGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttt777777777777777777a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888GGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttt7777777777777777a^\a^\GGmmmm888888888888888888888888888888888888mmGGGGGGGGGGGGGGGG齯齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttt7777777777777777a^\a^\GGmmmm888888888888888888888888888888888888mmGGGGGGGGGGGGGGGG齯齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿt7777777777777777a^\a^\GGmmGG888888888888888888888888888888888888888888mmGGGGGGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿt7777777777777777a^\a^\GGmmGG888888888888888888888888888888888888888888mmGGGGGGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿ77777777777777a^\a^\GGmmGG888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿ77777777777777a^\a^\GGmmGG888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttѿѿѿѿѿѿѿ77777777777777a^\a^\GGmmGG88888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttѿѿѿѿѿѿѿ77777777777777a^\a^\GGmmGG88888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttѿѿѿ777777777777a^\a^\GGmmGG8888888888888888888888888888GGmmGG齯齯齯齯a^\a^\ѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttѿѿѿ777777777777a^\a^\GGmmGG8888888888888888888888888888GGmmGG齯齯齯齯a^\a^\|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttt777777777777a^\a^\GGmmGG88888888888888888888GGGGmmmmGG齯齯齯a^\a^\|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttt777777777777a^\a^\GGmmGG88888888888888888888GGGGmmmmGG齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttt7777777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttt7777777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777a^\a^\GGmmGG88888888888888888888888888GGGGmmmmGGGG齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777a^\a^\GGmmGG88888888888888888888888888GGGGmmmmGGGG齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777a^\a^\GGmmGG88888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777a^\a^\GGmmGG88888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777a^\a^\GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777a^\a^\GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttt777777a^\a^\GGmmGG8888888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttt777777a^\a^\GGmmGG8888888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttt77777GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttt77777GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿ|cP|cP|cP|cPttttttttttttttttt77777齯GGmmGG88888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿ|cP|cP|cP|cPttttttttttttttttt77777齯GGmmGG88888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttt77777齯GGmmGG8888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttt77777齯GGmmGG8888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttt777777齯齯GGmmGGGGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttt777777齯齯GGmmGGGGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttt777777a^\a^\齯齯GGmmGGmmmmGGGG齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttt777777a^\a^\齯齯GGmmGGmmmmGGGG齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777a^\a^\齯齯GGmmmmGGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777a^\a^\齯齯GGmmmmGGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777a^\a^\齯齯GGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777a^\a^\齯齯GGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cPa^\a^\齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cPa^\a^\齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQ//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQ//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓճճ//qqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓճճ//qqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqq//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqq//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓqqꧏꧏqq//ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓqqꧏꧏqq//ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQꧏꧏqq//ճճppƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQꧏꧏqq//ճճppƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏqq//ճճ//ƆpƆp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏqq//ճճ//ƆpƆp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqq//ճճ//qqpp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqq//ճճ//qqpp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP//ճճ//qqꧏꧏppƆpƆp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP//ճճ//qqꧏꧏppƆpƆp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqqƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqqƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqꧏꧏqqqqճճppƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqꧏꧏqqqqճճppƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:/㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:/㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:/㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:/㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//Z/Z/㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//Z/Z/㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp//Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp//Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPqqqqճճqqqqpp:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPqqqqճճqqqqpp:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cP|cP|cP|cP|cPqqճճqqqqճճppƆpƆp//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cP|cP|cP|cP|cPqqճճqqqqճճppƆpƆp//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:///Z/Z/:/:///:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:///Z/Z/:/:///:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqppZ/Z/:/:/㪻ppqqֺֺ~~|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqppZ/Z/:/:/㪻ppqqֺֺ~~|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//㪻ppqqֺֺ~~|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//㪻ppqqֺֺ~~|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:/Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:/Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:///Z/Z/:/:///Z/Z/Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:///Z/Z/:/:///Z/Z/Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:/:/:///Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:/:/:///Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//////Z/Z/:/:///Z/Z/:/:/Z/Z///Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//////Z/Z/:/:///Z/Z/:/:/Z/Z///Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////:/:///Z/Z/:/:///Z/Z/:/://///:/:///Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////:/:///Z/Z/:/:///Z/Z/:/://///:/:///Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/Z/Z/:/:/Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/Z/Z/:/:/Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:///Z/Z/Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:///Z/Z/Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/:/:///:/:///Z/Z///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/:/:///:/:///Z/Z///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/Z/Z/////ː:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/Z/Z/////ː:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z///////////㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z///////////㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/:/:/Z/Z/:/:///Z/Z/:/:///:/:/Z/Z/:/://///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/:/:/Z/Z/:/:///Z/Z/:/:///:/:/Z/Z/:/://///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:/Z/Z/////㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:/Z/Z/////㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///:/:///:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///:/:///:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:/Z/Z/:/:/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:/Z/Z/:/:/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z///Z/Z/:/:/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z///Z/Z/:/:/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/Z/Z///Z/Z/:/:///Z/Z/q/q/iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/Z/Z///Z/Z/:/:///Z/Z/q/q/iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/ii//iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/ii//iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/:/:/Z/Z/㻯//q/q/㻯//iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/:/:/Z/Z/㻯//q/q/㻯//iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z///q/q/ii//q/q/iiq/q/iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z///q/q/ii//q/q/iiq/q/iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/Z/Z/:/:/:/:/ii//q/q/ii//q/q/㻯//q/q/ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/Z/Z/:/:/:/:/ii//q/q/ii//q/q/㻯//q/q/ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:///Z/Z/㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:///Z/Z/㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/:/:/Z/Z/:/:/ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/:/:/Z/Z/:/:/ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:///㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:///㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqqqqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqqqqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//q/q/ii//ii//q/q/ii//qqqqճճqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//q/q/ii//ii//q/q/ii//qqqqճճqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqii//q/q///ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqii//q/q///ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//㻯//q/q/iiq/q///q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//㻯//q/q/iiq/q///q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPt77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/iiq/q/q/q/ii//qqqqꧏꧏqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/iiq/q/q/q/ii//qqqqꧏꧏqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ii//q/q///ii//q/q/qqꧏꧏqqqqճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ii//q/q///ii//q/q/qqꧏꧏqqqqճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq//q/q///iiq/q/iiꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq//q/q///iiq/q/iiꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq////iiq/q/ii//qq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq////iiq/q/ii//qq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq//ii//q/q///ճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq//ii//q/q///ճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq////q/q/iiճճ//qqꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq////q/q/iiճճ//qqꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq////qqꧏꧏqq//ճճ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq////qqꧏꧏqq//ճճ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//qqꧏꧏqq//ճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//qqꧏꧏqq//ճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆp|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆp|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿwindows_installer_finish192.bmp000077500000000000000000022070001452337521700363440ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM 6(G[ 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)-)-)-)-)-)-)-)-)AA-)-)-)-)-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)-)-)-)-)-)-)-)-)AA-)-)-)-)-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)-)-)-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)-)-)-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAA777777AAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAA777777AAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AAAAAA,,AAAAAA,,AA,,AAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AAAAAA,,AAAAAA,,AA,,AAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,7777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,7777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,AA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,AA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA77777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA77777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA7777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA7777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA77777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA77777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA7777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA7777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777G5B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAA77777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAA77777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAA777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAA777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777G5B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA,,AA777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA,,AA777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tt77777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tt77777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,tttt7777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,tttt7777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777tttt,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttt777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777tttt,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttt777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGa^\a^\7777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿ,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,AAAAAAtttttttttt77777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGa^\a^\7777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿ,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,AAAAAAtttttttttt77777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmmmmmmGGa^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttt7777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmmmmmmGGa^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttt7777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGa^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttttt777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGa^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttttt777G5B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmm888888GGa^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmm888888GGa^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGGGa^\a^\a^\a^\777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttttttttttttttttG5B7777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGGGa^\a^\a^\a^\777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttttttttttttt\777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGGGGGGG8888GGa^\a^\a^\a^\77777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttttttttttttttG5B777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGGGGGGG8888GGa^\a^\a^\a^\77777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmmmmmGGGGGGGGGGGGa^\a^\a^\a^\7777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmmmmmGGGGGGGGGGGGa^\a^\a^\a^\7777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttttttttG5B7777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmmmm88888888mmmmGGGGGGa^\a^\777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmmmm88888888mmmmGGGGGGa^\a^\777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttttttB777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm88888888888888mmGG齯a^\a^\77777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttttttttttB777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm88888888888888mmGG齯a^\a^\77777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttttttttttt\77777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\hhGGmm888888888888888888mmGG齯a^\a^\7777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,ttttttttttttt\77777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\hhGGmm888888888888888888mmGG齯a^\a^\7777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,tttttttttttttB7777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GG8888888888888888888888GG齯777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAttttttttttt\7777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GG8888888888888888888888GG齯777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAtttttttttttB777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm8888888888888888888888GG齯齯齯77777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAttttt\777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm8888888888888888888888GG齯齯齯77777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿ,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAtttttB77777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGGG88888888GGGGGG8888888888GG齯齯齯齯7777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAtttttQC77777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGGG88888888GGGGGG8888888888GG齯齯齯齯7777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿAA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAttttt\7777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmGGGGmm888888GGmmmmmmGG88888888GG齯齯齯齯齯777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿtttttB7777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmGGGGmm888888GGmmmmmmGG88888888GG齯齯齯齯齯777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿtttttB777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88mmGGGG88888888GG888888GG888888GGGG齯齯齯齯齯77777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88mmGGGG88888888GG888888GG888888GGGG齯齯齯齯齯77777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888mmGGGGmm888888GG88888888GG888888GGGG齯齯齯齯齯齯齯7777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888mmGGGGmm888888GG88888888GG888888GGGG齯齯齯齯齯齯齯7777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888mmGGGG88888888GG888888GGGG888888GGGG齯齯齯齯齯齯齯齯a^\a^\a^\777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttG5B7777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888mmGGGG88888888GG888888GGGG888888GGGG齯齯齯齯齯齯齯齯a^\a^\a^\777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt\777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88888888888888mmGGGG88888888GGGG8888GGmm8888GGGG齯齯齯齯齯齯齯a^\a^\77ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt.777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88888888888888mmGGGG88888888GGGG8888GGmm8888GGGG齯齯齯齯齯齯齯a^\a^\77ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttQC77777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888888888888888mmGGGG88888888mmGGGGGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt77777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888888888888888mmGGGG88888888mmGGGGGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB7777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888mmGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttQC7777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888mmGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt77777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888mmmm888888GGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cPttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB77777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888mmmm888888GGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cPttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG888888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt.777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG888888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttG5B777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt.7777777777777777a^\a^\GGGGmmmm888888888888888888888888888888888888mmGGGGGG88888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttQC7777777777777777a^\a^\GGGGmmmm888888888888888888888888888888888888mmGGGGGG88888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt7777777777777777a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888GGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB7777777777777777a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888GGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttQC77777777777777a^\a^\GGmmmm888888888888888888888888888888888888mmGGGGGGGGGGGGGGGG齯齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt77777777777777a^\a^\GGmmmm888888888888888888888888888888888888mmGGGGGGGGGGGGGGGG齯齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB77777777777777a^\a^\GGmmGG888888888888888888888888888888888888888888mmGGGGGGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttQC77777777777777a^\a^\GGmmGG888888888888888888888888888888888888888888mmGGGGGGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB777777777777a^\a^\GGmmGG888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttB777777777777a^\a^\GGmmGG888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt\777777777777a^\a^\GGmmGG88888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttB777777777777a^\a^\GGmmGG88888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttB7777777777a^\a^\GGmmGG8888888888888888888888888888GGmmGG齯齯齯齯a^\a^\ѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt7777777777a^\a^\GGmmGG8888888888888888888888888888GGmmGG齯齯齯齯a^\a^\ѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt7777777777a^\a^\GGmmGG88888888888888888888GGGGmmmmGG齯齯齯a^\a^\ѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttQC7777777777a^\a^\GGmmGG88888888888888888888GGGGmmmmGG齯齯齯a^\a^\ѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttB77777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᖃttttttttttttttttttttttttttttttttttttttttttttB77777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᖃttttttttttttttttttttttttttttttttttttttttttttG9B77777777a^\a^\GGmmGG88888888888888888888888888GGGGmmmmGGGG齯齯齯a^\a^\ѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttB77777777a^\a^\GGmmGG88888888888888888888888888GGGGmmmmGGGG齯齯齯a^\a^\ѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttB777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttt\777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttB777777a^\a^\GGmmGG88888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttB777777a^\a^\GGmmGG88888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttB7777a^\a^\GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttB7777a^\a^\GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttB7777a^\a^\GGmmGG8888888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttB7777a^\a^\GGmmGG8888888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttB777GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttB777GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttB777齯GGmmGG88888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttB777齯GGmmGG88888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttt777齯GGmmGG8888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttB777齯GGmmGG8888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttB7777齯齯GGmmGGGGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttt7777齯齯GGmmGGGGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttB7777a^\a^\齯齯GGmmGGmmmmGGGG齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttB7777a^\a^\齯齯GGmmGGmmmmGGGG齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttt777777a^\a^\齯齯GGmmmmGGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttB777777a^\a^\齯齯GGmmmmGGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttG5B77777777a^\a^\齯齯GGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777a^\a^\齯齯GGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿ7777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿB777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿB777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿ77777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿB77777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿB7777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttttttttttttttttttttt\777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB77777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB77777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttttttttttttttttttttt7777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB7777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB777777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB777777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB77777777777777777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB77777777777777777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttt7777777777777777777777777777a^\a^\齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB7777777777777777777777777777a^\a^\齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttt777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttB777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt.77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt*77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQ//ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQ//ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓճճ//qqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓճճ//qqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqq//ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqq//ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓqqꧏꧏqq//ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt.777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓqqꧏꧏqq//ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQꧏꧏqq//ճճppƆpƆp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQꧏꧏqq//ճճppƆpƆp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\77777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏqq//ճճ//ƆpƆp㪻ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏqq//ճճ//ƆpƆp㪻ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqq//ճճ//qqpp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqq//ճճ//qqpp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt.7777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP//ճճ//qqꧏꧏppƆpƆp㪻ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP//ճճ//qqꧏꧏppƆpƆp㪻ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqqƆpƆp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqqƆpƆp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqꧏꧏqqqqճճppƆpƆp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqꧏꧏqqqqճճppƆpƆp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttG]B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppƆp/ճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt*7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:/㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:/㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:/㪻ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:/㪻ppƆpqꧏꧏqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//Z/Z/㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//Z/Z/㪻ppƆpqճճ//p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt:7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp//Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp//Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPqqqqճճqqqqpp:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttA7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPqqqqճճqqqqpp:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cP|cP|cP|cP|cPqqճճqqqqճճppƆpƆp//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cP|cP|cP|cP|cPqqճճqqqqճճppƆpƆp//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:///Z/Z/:/:///:/:///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:///Z/Z/:/:///:/:///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճppZ/Z/:/:/㪻ppƆpqֺֺ~~p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճppZ/Z/:/:/㪻ppƆpqֺֺ~~p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//㪻ppƆpqֺֺ~~p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//㪻ppƆpqֺֺ~~p|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt.7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z/:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z/:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt.7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt*7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ//Z/Z/:/:///Z/Z///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt:7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/:/:///Z/Z/:/:///Z/Z/Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttA7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/:/:///Z/Z/:/:///Z/Z/Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/:/:/:/:///Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt.7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/:/:/:/:///Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/Z/Z/Z/Z/:/:/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttA7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/Z/Z/Z/Z/:/:/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/////Z/Z/:/:///Z/Z/:/:/Z/Z///Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ/////Z/Z/:/:///Z/Z/:/:/Z/Z///Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///:/:///Z/Z/:/:///Z/Z/:/://///:/:///Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///:/:///Z/Z/:/:///Z/Z/:/://///:/:///Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/:/:///Z/Z/:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճճ///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/:/:///Z/Z/:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:///Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/Z/Z/:/:/Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/Z/Z/:/:/Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:///Z/Z/Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:///Z/Z/Z/Z/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt*7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/:/:///:/:///Z/Z///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt*7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/:/:///:/:///Z/Z///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/Z/Z/////ː:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttA7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/Z/Z/////ː:/:///Z/Z/:/:///Z/Z/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:/Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z///////////㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:/Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z///////////㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:/:/:/Z/Z/:/:///Z/Z/:/:///:/:/Z/Z/:/://///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:/:/:/Z/Z/:/:///Z/Z/:/:///:/:/Z/Z/:/://///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:///Z/Z/:/:/Z/Z/////㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:///Z/Z/:/:/Z/Z/////㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//Z/Z/:/:///Z/Z/:/:///:/:///:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//Z/Z/:/:///Z/Z/:/:///:/:///:/:///㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//:/:/Z/Z/:/:/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//:/:/Z/Z/:/:/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//Z/Z///Z/Z/:/:/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//Z/Z///Z/Z/:/:/:/:/㪻ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/Z/Z///Z/Z/:/:///Z/Z/q/q/iippƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/Z/Z///Z/Z/:/:///Z/Z/q/q/iippƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:///Z/Z/ii//iippƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:///Z/Z/ii//iippƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:/:/:/Z/Z/㻯//q/q/㻯//iippƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:/:/:/Z/Z/㻯//q/q/㻯//iippƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː////Z/Z///q/q/ii//q/q/iiq/q/iippƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː////Z/Z///q/q/ii//q/q/iiq/q/iippƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/Z/Z/:/:/:/:/ii//q/q/ii//q/q/㻯//q/q/ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttQC7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/Z/Z/:/:/:/:/ii//q/q/ii//q/q/㻯//q/q/ppƆpqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:///Z/Z/:/:///Z/Z/㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:///Z/Z/:/:///Z/Z/㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/:/:/Z/Z/:/:/ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճZ/Z/:/:/Z/Z/:/:/ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//Z/Z/Z/Z/:/:///㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː//Z/Z/Z/Z/:/:///㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճː:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճ㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqճq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqճq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt:7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqճii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt*7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqꧏ㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqꧏ㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqqqqճq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttA7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqqqqճq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճ㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճ㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏ㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏ㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճq/q/ii//ii//q/q/ii//qqqqճճqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճq/q/ii//ii//q/q/ii//qqqqճճqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏii//q/q///ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏii//q/q///ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճ㻯//q/q/iiq/q///q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճ㻯//q/q/iiq/q///q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏq/q/iiq/q/q/q/ii//qqqqꧏꧏqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏq/q/iiq/q/q/q/ii//qqqqꧏꧏqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճii//q/q///ii//q/q/qqꧏꧏqqqqճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճii//q/q///ii//q/q/qqꧏꧏqqqqճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏ//q/q///iiq/q/iiꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttG]B7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏ//q/q///iiq/q/iiꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttt\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճ//iiq/q/ii//qq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճ//iiq/q/ii//qq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttt*7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏ//ii//q/q///ճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏ//ii//q/q///ճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճ//q/q/iiճճ//qqꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճ//q/q/iiճճ//qqꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏ////qqꧏꧏqq//ճճ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏ////qqꧏꧏqq//ճճ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճqqꧏꧏqq//ճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճqqꧏꧏqq//ճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆp|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᣆB7777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆp|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ.7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\7777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᣆB7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777Bwindows_installer_finish216.bmp000077500000000000000000027400101452337521700363440ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM 6(nҿ 7!7!77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777717777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777t!777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777s7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)-)-)-)-)-)-)-)-)AA-)-)-)-)-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777W%7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)-)-)-)-)-)-)-)-)AA-)-)-)-)-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ް777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777!777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*37777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777߲7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)-)-)AA-)-)-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777F77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777L77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777m77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)-)-)-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)-)-)-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ܮ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%07777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777737777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777N777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777713777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777P"7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777I777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ꭏ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777l(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777717777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA-)-)AAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAAAAAAAAAAAAAA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AA-)-)AAAAAA-)-)AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777欏77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAA777777AAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAA777777AAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777x77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777𯏀77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA7777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA-)-)AAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777`%777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777խ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAA-)-)AAAAAA-)-)AAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777x7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777I77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777J7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777K77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAA7777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a%777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AAAAAA,,AAAAAA,,AA,,AAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AAAAAA,,AAAAAA,,AA,,AAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,7777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,7777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777A277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,AA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777A&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAAAA,,AA77777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777÷7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777n77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777ߨ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777767777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777707777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777a077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777:77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777c777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777ѥ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777٫7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777747777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777K77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777ư7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA77777777777777777777777777777777777777777777777777777777777777777747777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA777777777777777777777777777777777777777777777777777777777777777777A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA77777777777777777777777777777777777777777777777777777777777777ן77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAA77777777777777777777777777777777777777777777777777777777777777:7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777&,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777D(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777~7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777멏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777X77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777s77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777"*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA777777777777777777777777777777777777777777777777777777)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA77777777777777777777777777777777777777777777777777-77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA77777777777777777777777777777777777777777777777777O"7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777+7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAA777777777777777777777777777777777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAA7777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA7777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAA77777777777777777777777777777777777777777777773A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAAAAAA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,7777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,77777777777777777777777777777777777777773A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,AAAAAA777777777777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAAAA,,AAAAAA,,AA,,AAAAAA,,AAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777773A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA7777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AAAA7777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA77777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777tttt|cP|cP|cP|cPtttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777tttt|cP|cP|cP|cPtttt77777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿ|cP|cP|cP|cPtttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿ|cP|cP|cP|cPtttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGa^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGa^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmmmmmmGGa^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmmmmmmGGa^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGa^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGa^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmm888888GGa^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGmm888888GGa^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGGGa^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GG888888GGGGa^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGGGGGGG8888GGa^\a^\a^\a^\777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\齯GGGGGGGGGGGG8888GGa^\a^\a^\a^\777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmmmmmGGGGGGGGGGGGa^\a^\a^\a^\77777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmmmmmGGGGGGGGGGGGa^\a^\a^\a^\77777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmmmm88888888mmmmGGGGGGa^\a^\7777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmmmm88888888mmmmGGGGGGa^\a^\7777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm88888888888888mmGG齯a^\a^\777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm88888888888888mmGG齯a^\a^\777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777773A7777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\hhGGmm888888888888888888mmGG齯a^\a^\77777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\hhGGmm888888888888888888mmGG齯a^\a^\77777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GG8888888888888888888888GG齯7777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GG8888888888888888888888GG齯7777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm8888888888888888888888GG齯齯齯777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGmm8888888888888888888888GG齯齯齯777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777A7777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGGG88888888GGGGGG8888888888GG齯齯齯齯77777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGGG88888888GGGGGG8888888888GG齯齯齯齯77777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777B777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmGGGGmm888888GGmmmmmmGG88888888GG齯齯齯齯齯7777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777773A777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmmGGGGmm888888GGmmmmmmGG88888888GG齯齯齯齯齯7777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88mmGGGG88888888GG888888GG888888GGGG齯齯齯齯齯777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777o77777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88mmGGGG88888888GG888888GG888888GGGG齯齯齯齯齯777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777773A7777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888mmGGGGmm888888GG88888888GG888888GGGG齯齯齯齯齯齯齯77777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888mmGGGGmm888888GG88888888GG888888GGGG齯齯齯齯齯齯齯77777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777B777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888mmGGGG88888888GG888888GGGG888888GGGG齯齯齯齯齯齯齯齯a^\a^\7777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777B777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888mmGGGG88888888GG888888GGGG888888GGGG齯齯齯齯齯齯齯齯a^\a^\7777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88888888888888mmGGGG88888888GGGG8888GGmm8888GGGG齯齯齯齯齯齯齯a^\a^\77777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm88888888888888mmGGGG88888888GGGG8888GGmm8888GGGG齯齯齯齯齯齯齯a^\a^\77777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A7777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888888888888888mmGGGG88888888mmGGGGGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\7ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm888888888888888888mmGGGG88888888mmGGGGGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\7ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888mmGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777a^\a^\a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888mmGGGGmm8888GGGG齯齯齯齯齯齯齯a^\a^\ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888mmmm888888GGGG齯齯齯齯齯齯齯齯a^\a^\tttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888mmmm888888GGGG齯齯齯齯齯齯齯齯a^\a^\tttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG888888888888888888GGGG齯齯齯齯齯齯齯a^\a^\tѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG888888888888888888GGGG齯齯齯齯齯齯齯a^\a^\tѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777a^\a^\GGGGmmmm88888888888888888888888888mmGGGGGG8888888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777a^\a^\GGGGmmmm888888888888888888888888888888888888mmGGGGGG88888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB777777777777777777777777777a^\a^\GGGGmmmm888888888888888888888888888888888888mmGGGGGG88888888888888GGGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A777777777777777777777777777a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888GGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cPttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777a^\a^\GGGGmmmm8888888888888888888888mmGGGGGG88888888GGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cPttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttto7777777777777777777777777a^\a^\GGmmmm888888888888888888888888888888888888mmGGGGGGGGGGGGGGGG齯齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A7777777777777777777777777a^\a^\GGmmmm888888888888888888888888888888888888mmGGGGGGGGGGGGGGGG齯齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777a^\a^\GGmmGG888888888888888888888888888888888888888888mmGGGGGGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777777777a^\a^\GGmmGG888888888888888888888888888888888888888888mmGGGGGGGGGG齯齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777a^\a^\GGmmGG888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777a^\a^\GGmmGG888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777a^\a^\GGmmGG88888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777a^\a^\GGmmGG88888888888888888888888888888888mmGG齯齯齯齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777a^\a^\GGmmGG8888888888888888888888888888GGmmGG齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB777777777777777777777a^\a^\GGmmGG8888888888888888888888888888GGmmGG齯齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777a^\a^\GGmmGG88888888888888888888GGGGmmmmGG齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777a^\a^\GGmmGG88888888888888888888GGGGmmmmGG齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A7777777777777777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777a^\a^\GGmmGG88888888888888888888888888GGGGmmmmGGGG齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777a^\a^\GGmmGG88888888888888888888888888GGGGmmmmGGGG齯齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777a^\a^\GGmmGG8888888888888888888888GGGGmmmmGGGG齯齯a^\a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777a^\a^\GGmmGG88888888888888GGGGmmmmGGGG齯齯|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777a^\a^\GGmmGG88888888888888GGGGmmmmGGGG齯齯|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777a^\a^\GGmmGG888888888888GGGGmmmmGGGG齯齯ѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᖃttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB777777777777777a^\a^\GGmmGG888888888888GGGGmmmmGGGG齯齯ѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᖃttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB777777777777777a^\a^\GGmmGG8888888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777a^\a^\GGmmGG8888888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A7777777777777GGmmGG888888888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777齯GGmmGG88888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttto7777777777777齯GGmmGG88888888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A7777777777777齯GGmmGG8888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777齯GGmmGG8888GGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB777777777777777齯齯GGmmGGGGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A777777777777777齯齯GGmmGGGGGGmmmmGGGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777a^\a^\齯齯GGmmGGmmmmGGGG齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttB777777777777777a^\a^\齯齯GGmmGGmmmmGGGG齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttA77777777777777777a^\a^\齯齯GGmmmmGGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777a^\a^\齯齯GGmmmmGGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777a^\a^\齯齯GGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttt3A7777777777777777777a^\a^\齯齯GGGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttto777777777777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttt3A7777777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttt777777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttB777777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttt77777777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttt3A7777777777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttt5B777777777777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttB777777777777777777777777777777777a^\a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttt3A77777777777777777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttt77777777777777777777777777777777777a^\a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttt8B7777777777777777777777777777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttt7777777777777777777777777777777777777a^\a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttt777777777777777777777777777777777777777a^\a^\齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttB777777777777777777777777777777777777777a^\a^\齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttttttttt|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttt3A77777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttt77777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttB777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttt3A777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttt7777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttB7777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttt3A77777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ8B77777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿ3A77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿ77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿ?77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt?77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt(B77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt C77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQ//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQ//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓճճ//qqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓճճ//qqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqq//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqq//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓqqꧏꧏqq//ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPϓϓqqꧏꧏqq//ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQꧏꧏqq//ճճppƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPQQꧏꧏqq//ճճppƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏqq//ճճ//ƆpƆp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPꧏꧏqq//ճճ//ƆpƆp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqq//ճճ//qqpp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqq//ճճ//qqpp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP//ճճ//qqꧏꧏppƆpƆp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP//ճճ//qqꧏꧏppƆpƆp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqqƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճ//qqꧏꧏqqƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB7777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqꧏꧏqqqqճճppƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqꧏꧏqqqqճճppƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777ttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻pp//ճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:/㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt C77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:/㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:/㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:/㪻ppqqꧏꧏqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//Z/Z/㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqqqqճճqqqqpp//Z/Z/㪻ppqqճճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPqqճճqqqqճճppƆpƆp:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp//Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPճճqqqqճճqqƆpƆp//Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPqqqqճճqqqqpp:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPqqqqճճqqqqpp:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cP|cP|cP|cP|cPqqճճqqqqճճppƆpƆp//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cP|cP|cP|cP|cPqqճճqqqqճճppƆpƆp//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:///Z/Z/:/:///:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPճճqqqqճճqqƆpƆpZ/Z/:/:///Z/Z/:/:///:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqppZ/Z/:/:/㪻ppqqֺֺ~~|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqppZ/Z/:/:/㪻ppqqֺֺ~~|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//㪻ppqqֺֺ~~|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//㪻ppqqֺֺ~~|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq//Z/Z/:/:///Z/Z///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:/Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:/Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:///Z/Z/:/:///Z/Z/Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:///Z/Z/:/:///Z/Z/Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:/:/:///Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:/:/:///Z/Z/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//////Z/Z/:/:///Z/Z/:/:/Z/Z///Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//////Z/Z/:/:///Z/Z/:/:/Z/Z///Z/Z/:/:/Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////:/:///Z/Z/:/:///Z/Z/:/://///:/:///Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////:/:///Z/Z/:/:///Z/Z/:/://///:/:///Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/:/:///Z/Z/:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:///Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/Z/Z/:/:/Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:/Z/Z/:/:/Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:///Z/Z/Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/:///Z/Z/:/:///Z/Z/:/:///Z/Z///:/:/:/:///Z/Z/Z/Z/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/:/:///:/:///Z/Z///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/:/:///:/:///Z/Z///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt C77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/Z/Z/////ː:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z///:/://///Z/Z/:/:///Z/Z/:/:/Z/Z/:/:/Z/Z/////ː:/:///Z/Z/:/:///Z/Z/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z///////////㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/Z/Z///Z/Z/:/:///Z/Z/:/:///Z/Z///////////㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/:/:/Z/Z/:/:///Z/Z/:/:///:/:/Z/Z/:/://///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt C77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/:/:/Z/Z/:/:///Z/Z/:/:///:/:/Z/Z/:/://///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:/Z/Z/////㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:/Z/Z/////㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///:/:///:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///:/:///:/:///㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt:77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:/Z/Z/:/:/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//:/:/Z/Z/:/:/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt C77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z///Z/Z/:/:/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z///Z/Z/:/:/:/:/㪻ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/Z/Z///Z/Z/:/:///Z/Z/q/q/iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/Z/Z///Z/Z/:/:///Z/Z/q/q/iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/ii//iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/ii//iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/:/:/Z/Z/㻯//q/q/㻯//iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:/:/:/Z/Z/㻯//q/q/㻯//iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z///q/q/ii//q/q/iiq/q/iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː////Z/Z///q/q/ii//q/q/iiq/q/iippqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/Z/Z/:/:/:/:/ii//q/q/ii//q/q/㻯//q/q/ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/Z/Z/:/:/:/:/ii//q/q/ii//q/q/㻯//q/q/ppqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:///Z/Z/㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:///Z/Z/㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt C77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/:/:/Z/Z/:/:/ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqZ/Z/:/:/Z/Z/:/:/ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:///㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː//Z/Z/Z/Z/:/:///㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqː:/:///Z/Z/:/:///Z/Z/:/:///Z/Z/:/:///q/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt C77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճqqqq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqqqqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqqqqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqճճpp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt C77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/ii//q/q/ii//q/q/ii//qqqqճճqqqqճճqqƆpƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ii//q/q/ii//q/q/ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq㻯//q/q/ii//q/q/ii//q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//q/q/ii//ii//q/q/ii//qqqqճճqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//q/q/ii//ii//q/q/ii//qqqqճճqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqii//q/q///ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqii//q/q///ii//q/q/qqճճqqqqճճqqqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//㻯//q/q/iiq/q///q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//㻯//q/q/iiq/q///q/q/iiճճqqqqճճqqqqQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/iiq/q/q/q/ii//qqqqꧏꧏqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqq/q/iiq/q/q/q/ii//qqqqꧏꧏqqqqճճqq|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ii//q/q///ii//q/q/qqꧏꧏqqqqճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttt8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ii//q/q///ii//q/q/qqꧏꧏqqqqճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq//q/q///iiq/q/iiꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq//q/q///iiq/q/iiꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttttttttttttttttttttttttttttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq////iiq/q/ii//qq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttt3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq////iiq/q/ii//qq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq//ii//q/q///ճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttt|cP|cP|cP|cP|cP|cPtttttttttttttt C77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq//ii//q/q///ճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttt|cP|cP|cP|cP|cP|cPttttttttttttttcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq////q/q/iiճճ//qqꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPttttttttA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq////q/q/iiճճ//qqꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttttttѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPttttttttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq////qqꧏꧏqq//ճճ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPttB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qq////qqꧏꧏqq//ճճ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtt77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//qqꧏꧏqq//ճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//qqꧏꧏqq//ճճ////|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPhB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//ճճ//qqϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ճճ//qqꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpճճ//qqꧏꧏqq//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ3A77777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏqq//ϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿcA77777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆpꧏꧏ//|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆp|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttƆpƆp|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ8B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿcA77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿC77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ3A77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿB77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777773A77777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777773A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777773A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ777777777777777777777777777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773Awindows_installer_finish96.bmp000077500000000000000000004556601452337521700363060ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM[6(:z[77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)A-)-)-)-)-)-)-)A-)-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)-)A-)-)-)A-)-)-)A-)-)-)A-)-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A-)A-)A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)-)A-)-)-)A-)-)-)A-)-)-)A-)-)-)A-)-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)-)-)A-)A-)A-)A-)A-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)AAA-)AAA-)A-)A-)A-)A-)AAA-)AAA-)A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)AAA-)AAA-)AAA-)AAA-)AAA-)AAA-)AAA-)A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)AAA-)AAA-)AAAAAAAAAAAAAAA-)AAA-)AAA-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAA-)AAA-)AAAAAAAAAAA-)AAA-)AAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAA-)A-)A-)AAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)A-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)A-)A-)A-)A-)A-)A-)A-)A-)AAA-)A-)AAA-)A-)A-)A-)A-)A-)A-)A-)A-)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A-)AAA-)A-)A-)A-)A-)A-)A-)AAAAAAAAA-)A-)A-)A-)A-)A-)A-)AAA-)A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)AAA-)AAA-)AAA-)AAA-)AAAAAAAAAAAA-)AAA-)AAA-)AAA-)AAA-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-)AAA-)AAA-)AAA-)AAA-)AAAAAA777AAAAAA-)AAA-)AAA-)AAA-)AAA-)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA77777AAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAA-)AAA-)AAA-)AAA-)AAAAAAA77777AAAAAAA-)AAA-)AAA-)AAA-)AAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAA-)AAA-)AAAAAAA777777777AAAAAAA-)AAA-)AAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,AAAAAAAAAAAAAAAAAAA7777777777777AAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,AAA,AAA,AAAAAAAAAAAA777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA77777777777777777AAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,AAA,AAA,AAAAAAAAA77777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,AAA,AAA,A,AAA777777777777777777777AAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,AAAAAAAAAAAAAAAAAAAAAA777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,AAA,77777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAA,AAAAAAAAAAAAAAAAAA7777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,AAA,A7777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAA,AAA,AAAAAAAAAAAAAAA777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A77777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,AAA,AAA,AAAAAAAAAAAA77777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,7777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777A,AAA,AAA,AAA,AAAAAAAA777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777A,AAA,AAA,AAA,AAA,A,AAA77777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A7777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,7777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A7777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A77777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A7777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAA,AAA,AAA,AAA,AAA,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,AAA,AAA,AAA,AAA,AAA,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,AAA,AAA,AAA,AAA,AAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,AAA,AAA,AAA,AAA,AAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,AAA,AAA,AAA,AAA,AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\77777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A,A,A,AA777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\7777777777777777777777777777777777777777777777AA,AAA,AAA,AAA,AAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\77777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,A7777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\7777777777777777777777777777777777777777777AAA,AAA,AAA,AAA,AAAAA,A777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\777777777777777777777777777777777777777777A,A,A,A,A,A,A,A,A,A,A,t77777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\7777777777777777777777777777777777777777,AAA,AAA,AAA,AAA,A,AAA,tt7777777777777777777777777777777777777777777777777777777777777a^\a^\a^\7777777777777777777777777777777777777tt,A,A,A,A,A,A,A,A,A,A,A,ttt777777777777777777777777777777777777777777777777777777777a^\a^\齯GGGa^\77777777777777777777777777777777777ttѿѿѿ,AAA,AAA,AAA,A,AAA,AAAttttt77777777777777777777777777777777777777777777777777777a^\a^\齯GmmmGa^\a^\77777777777777777777777777777777ttѿѿѿѿѿA,A,A,A,A,A,A,A,A,A,A,Atttttt7777777777777777777777777777777777777777777777777a^\a^\齯G888Ga^\a^\777777777777777777777777777777ttѿѿѿѿѿѿѿѿA,A,A,A,A,A,A,A,A,A,A,Attttttt777777777777777777777777777777777777777777777a^\a^\齯Gm888Ga^\a^\7777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿ,A,A,A,A,A,A,A,A,A,A,A,ttttttttt7777777777777777777777777777777777777777777a^\a^\齯G888GGa^\a^\77777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿ,A,A,A,A,A,A,A,A,A,A,A,tttttttt77777777777777777777777777777777777777777a^\a^\齯GGGGGG88Ga^\a^\777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ,A,A,A,A,A,A,A,A,A,A,A,ttttttt777777777777777777777777777777777777777a^\a^\GGmmmmGGGGGGa^\a^\7777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPA,A,A,A,A,A,A,A,A,A,A,Attttttt7777777777777777777777777777777777777a^\a^\Gmm8888mmGGGa^\77777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿA,A,A,A,A,A,A,A,A,A,A,Atttttt77777777777777777777777777777777777a^\a^\Gm8888888mG齯a^\777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿA,A,A,A,A,A,A,A,A,A,A,Attttt777777777777777777777777777777777a^\a^\hGm888888888mG齯a^\7777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿ,A,A,A,A,A,A,A,A,A,A,A,ttttt7777777777777777777777777777777a^\a^\G88888888888G齯77777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿ,A,A,A,A,A,A,A,A,A,A,AAtttt77777777777777777777777777777a^\a^\Gm88888888888G齯齯齯777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿ,A,A,A,A,A,A,A,A,A,A,AAttt777777777777777777777777777a^\a^\GGG8888GGG88888G齯齯齯齯7777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿA,A,A,A,A,A,A,A,A,A,A,Attt7777777777777777777777777a^\a^\GGmmGGm888GmmmG8888G齯齯齯齯齯77777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿttt77777777777777777777777a^\a^\GGmm8mGG8888G888G888GG齯齯齯齯齯777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt777777777777777777777a^\a^\GGmm888mGGm888G8888G888GG齯齯齯齯齯齯齯7777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777a^\a^\GGmm88888mGG8888G888GG888GG齯齯齯齯齯齯齯齯a^\77ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt77777777777777777a^\a^\GGmm8888888mGG8888GG88Gm88GG齯齯齯齯齯齯齯a^\7ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt777777777777777a^\a^\GGmm888888888mGG8888mGGGGm88GG齯齯齯齯齯齯齯a^\ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777a^\a^\GGmm88888888888mGGG8888mGGm88GG齯齯齯齯齯齯齯a^\ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt777777777777a^\GGmm8888888888888mGGG88888mm888GG齯齯齯齯齯齯齯齯a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttttѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt77777777777a^\GGmm8888888888888mGGG888888888GG齯齯齯齯齯齯齯a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtt|cP|cPѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt77777777777a^\GGmm8888888888888mGGG88888888GG齯齯齯齯齯齯齯a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777a^\GGmm888888888888888888mGGG8888888GG齯齯齯齯齯齯齯a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777a^\GGmm88888888888mGGG8888GGG齯齯齯齯齯齯齯齯a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt777777777a^\Gmm888888888888888888mGGGGGGGG齯齯齯齯齯齯齯齯齯a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt777777777a^\GmG888888888888888888888mGGGGG齯齯齯齯齯齯齯齯a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt77777777a^\GmG888888888888888mG齯齯齯齯齯齯齯a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttt77777777a^\GmG8888888888888888mG齯齯齯齯齯齯齯a^\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttt7777777a^\GmG88888888888888GmG齯齯齯齯a^\ѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttt7777777a^\GmG8888888888GGmmG齯齯齯a^\ѿѿѿ|cPѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttt777777a^\GmG88888888888GGmmGG齯齯a^\ѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿtt|cP|cP|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᖃtttttttttttttttttttttt777777a^\GmG8888888888888GGmmGG齯齯齯a^\ѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿtt|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttt77777a^\GmG88888888888GGmmGG齯齯a^\ѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿtt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttt77777a^\GmG8888888GGmmGG齯齯ѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿtttt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttt7777a^\GmG888888GGmmGG齯齯ѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿtt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttt7777a^\GmG88888888GGmmGG齯齯ѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttt777GmG888888GGmmGG齯齯ѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttt777齯GmG8888GGmmGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttѿѿѿѿѿѿѿѿtttttttt777齯GmG88GGmmGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttѿѿѿѿѿѿѿtttttt7777齯齯GmGGGmmGG齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttѿѿѿѿѿѿѿtttt7777a^\齯齯GmGmmGG齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttѿѿѿѿѿѿѿtt77777a^\齯齯GmmGGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttѿѿѿѿѿѿѿ777777a^\齯齯GGѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttѿѿѿѿѿ7777777a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttѿѿѿ77777777a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttѿ777777777a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttt7777777777a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttttttttttttttttttt77777777777a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttt|cP|cPtttttttttttttttt777777777777a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿtttttttttttttttttttttt|cP|cPtttttttttttttttt7777777777777a^\齯齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿ|cP|cPtttttttttttttttt77777777777777a^\齯齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿ|cP|cPtttttttttttttttt777777777777777a^\齯齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿ|cP|cPtttttttttttttttt7777777777777777a^\齯ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttt77777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttt7777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttt777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttt77777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿ////ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿ//ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿ/ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿhhhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿhhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿhѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPꧏ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPQ/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPϓճ/qꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճ/qꧏq/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt77777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPϓqꧏq/pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPQꧏq/ճpƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPꧏq/ճ/Ɔp㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt77777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPq/ճ/qp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP/ճ/qꧏpƆp㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿttttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճ/qꧏqƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt77777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777777|cP|cPѿѿѿѿttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqꧏqqճpƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt777777777777777777777777777777777777777777777777|cP|cPttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt777777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777777ttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻p/ճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPttѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp:/㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆpZ/:/㪻pqꧏq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPqqճqqp/Z/㪻pqճ/|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPqճqqճpƆp://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPճqqճqƆp/Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtt|cPqqճqqp://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtt|cP|cP|cP|cPqճqqճpƆp/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttt|cP|cPճqqճqƆpZ/://Z/://://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqpZ/:/㪻pqֺ~|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/㪻pqֺ~|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq/Z/://Z//Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/:/Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/://Z/://Z/Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z/:/Z/://Z/://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/:/://Z/Z/://Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/Z/:/://Z/://Z/://Z/://Z/://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː///Z/://Z/:/Z//Z/:/Z/://Z/://Z/://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//://Z/://Z/:///://Z//Z/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//://Z/://Z/://Z//:/:/://Z/://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//://Z/://Z/://Z//://Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//://Z/://Z/://Z//:/:/Z/:/Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//://Z/://Z/://Z//:/://Z/Z/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//:///Z/://Z/:/Z/:/://://Z//㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ//:///Z/://Z/:/Z/:/Z///ː://Z/://Z/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː:/Z//Z/://Z/://Z//////㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː:/:/Z/://Z/://:/Z/:///㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/:/Z///㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/://Z/://://://㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/:/Z/:/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z//Z/:/:/㪻pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/Z//Z/://Z/q/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/i/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː:/:/Z/㻯/q/㻯/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː//Z//q/i/q/iq/ipqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/Z/:/:/i/q/i/q/㻯/q/pqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/://Z/㻯/q/i/q/i/q/iճqqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/://Z/://q/i/q/i/q/i/qqճqqճq|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqZ/:/Z/:/i/q/i/q/i/q/qճqqճqq|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː/Z/Z/://㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqː://Z/://Z/://Z/://q/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqi/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qq/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqqi/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճqq㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏqqq/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qi/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/㻯/q/i/q/i/q/iճqqճqqճp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qq/i/q/i/q/i/qqճqqճqƆp|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/i/q/i/q/i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q㻯/q/i/q/i/q/iճqqճqqQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/q/i/i/q/i/qqճqqճq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qi/q//i/q/qճqqճqq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/㻯/q/iq//q/iճqqճqqQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qq/iq/q/i/qqꧏqqճq|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/i/q//i/q/qꧏqqճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q/q//iq/iꧏq/ճ/qϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtt7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq//iq/i/q/ճ/qꧏ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q/i/q//ճ/qꧏq/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq//q/iճ/qꧏq/ϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/q//qꧏq/ճ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/qꧏq/ճ//|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qꧏq/ճ/qϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/ճ/qꧏ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpճ/qꧏq/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏq/ϓ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆpꧏ/|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttttƆp|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtttt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPtt|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777Ꮐ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777windows_installer_header.bmp000077500000000000000000000623341452337521700360670ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBMd6(9dŹ9989c9Z:6:߾p׾>>޾ >>˾ i==E==˽>O>H;?h?>?F>)?ɾ?>>windows_installer_header120.bmp000077500000000000000000001102301452337521700362770ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM6(FbttӾ'>>>u>u=? B?<?Ծ">D?3>R??پuH?m>w?}?Щ>c???6?\?>?? WUԾ G?? ?A*?>?|Sag?>=3y?M??'߾LϾ&?ނ>1?? ?windows_installer_header144.bmp000077500000000000000000001555441452337521700363260ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBMd6(S.%%z||/k^P|iJ?Agq\7 &0Myw(9!99windows_installer_header168.bmp000077500000000000000000002320101452337521700363140ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM46(d3windows_installer_header192.bmp000077500000000000000000002775541452337521700363370ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBMl6(,m6windows_installer_header216.bmp000077500000000000000000003770541452337521700363300ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM,6(Q7!7!;;<;;<<<:<=;<;;<;<:<<=<;<<<<<;<=:;<<=<=;=<<:windows_installer_header96.bmp000077500000000000000000000623341452337521700362460ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBMd6(9dŹ9989c9Z:6:߾p׾>>޾ >>˾ i==E==˽>O>H;?h?>?F>)?ɾ?>>windows_installer_welcome.bmp000077500000000000000000004556601452337521700363020ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM[6(:z[777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|//777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|///7777777777777777777777777777777777777777777777777ѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|//////////////77777777777777777777777777777777777777777777ѿѿ---ѿѿ77777777777777777777777777777777777777ó777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|///7777777777777777777777777777777777777777ѿѿ-------ѿѿ7777777777777777777777777777777777ó77777777777777777777777777777777777777777777777B|B|B|//7777777777777777777777777777777777777ѿѿ---------ѿѿ777777777777777777777777777777|cP|cPó77777777777777777777777777777777777777777777777777B|B|/77777777777777777777777777777777777ѿѿ----EE-------ѿѿ77777777777777777777777777|cP|cP|cP|cPó77777777777777777777777777777777777777777B|/7777777777777777777777777777777777------EE-----------ѿѿ7777777777777777777777|cP|cP|cP|cP|cP|cPᏀ7777777777777777777///////77777777777777777777B|/7777777777777777777777777777777777-----------------ѿѿ777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777B|B|B|B|B|//7777777777777777777B|/77777777777777777777777777777777777-----------------ѿѿ77777777777777|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777B|B|/777777777777777777/7777777777777777777777777777777-------------------ѿѿ77777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ777777777777777777777777777777777777777B|/77777777777777777/77777777777777777777|cP|cPDDDDDD|cP|cP77777777777-----------------777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777B|/7777777777777777/7777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP777777777777-------------77777777|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777B|/77777777777777/7777777777777777777|cP|cP77777777777777-----------777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP7777777777777777777777777777777777777777B|//77777777777/B|777777777777777777777777777777777777-------7777777777|cP|cP|cP|cP|cP|cP|cP77777777777777777777777LL777777777777777777B|B|//7777777/B|777777777777777777777|cP|cP|cP|cP777777777777777777---777777777777|cP|cP|cP|cP|cP|cPó77777777777777777777777LL77LL777777777777777777B|B|////B|7777777777777777777777|cP|cP|cP7777777777777777777777777777777777|cP|cP|cP|cPᏀ77777777777777777777777LL777777LL777777777777777777B|B|///////B|B|777777777777777777777777777777777777777777777777777777777777|cP|cPᏀ77777777777777777777777LL7777777777LL777777777777777777B|B|B|B|B|B|B|7777777777777777777777777|cP|cP|cP|cP77777777777777777777777777777777777777|cP|cPᏀ77777777777777777777777LL77777777777777LL777777777777777777777777777777777777777777777777|cP|cP|cP777777777777777777777777777777777777777|cP|cPᏀ77777777777777777777777LL77777777777777LL77777777777777777777777777777777777777777777777777ӽӽ|cPӽӽ77777777777777777777777777777777777777777Ꮐ77777777777777777777777LL77LL7L77777777LL777777ѿѿ777777777777777777777777777777777777777777777ӽӽ77777777777777777777777777777777777777777777Ꮐ77777777777777777777777LL77LL77L7L77777LL77LLL7ѿѿ77777777777777777777777777777777777777777777777ӽ|cPӽ7777777777777777777777777777777777777777777777777777777777777777777777LL77LL77777L7777LL77LL77ѿLL77ѿ))))))ѿ777777777777777777777777777777777777777777ӽ|cPӽ77777777777777777777ѿѿѿ777777777777777777777777777777777777777777777LL77LL7777777777LL77LL77ѿѿ777ѿ))))))))))))))))))ѿ777777777777777777777777777777777MMMMӽӽӽ7777777777777777777ѿѿѿѿ77777777777777777777777777777777777777777777LL77LL777777LL77LL77ѿѿ7777))))))))))))))))))))))))))))))7L777777777777777777777777777MMMMMMMMMMMMMMMMhMM77777777777777777777ѿѿttѿѿ77777777777777777777777777777777777777777777LL77LL77LL77LL77ѿѿ777))))))77ѿ))))))))))))))))))ѿ7777L777777777777777777777777MM<7777777777777777777777777777777777777777777777777777777777777777@AAAA@AAAA@AAAA@@AAAA@AAA@@A@AAA@A@A@@@AA@AAAA@AAA@A@AA7777777777777777777777777777777777777777777777777777777777777777777777(=777777777777777777777777777777777777777777777777777777777777777AA.*AAA-*AAA.*AAA.*@AAAAAAAAAAAAAA@AAA@AAA-*AAA-*AAA.*AAA-*AAA-*AA777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777@@@AA@AAA@@AAA@@A@@AA@A@AAAAA@@AA@AA@AAAAAA@@@AA@A@AAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777ü7777777777777777777777777777777777777777777777777777777777777AA-*AAA-*@AAAAAAAA@@AA@@A@AAA@AAAA@AAAAAAAAAAAA@AAAA-*A@A-*AA@-*A@7777777777777777777777777777777777777777777777777777777777777777777eT777777777777777777777777777777777777777777777777777777777777AA@AA@AAA@@AA@A@AAA@AAAAA@AA@AAAA@AA@AAAAA@@@@AAAAAAAAAAA@@AAAA777777777777777777777777777777777777777777777777777777777777777777;77777777777777777777777777777777777777777777777777777777777AA-*AAA.*@AAAAAA@AAAAAAAAA@AAA@AAAAAA@AAAA@A@AAAAAAAAA@A@@AA.*AA@-*@A77777777777777777777777777777777777777777777777777777777777777777+=7777777777777777777777777777777777777777777777777777777777@AAAA@AAAAAAAAA@@AAAAA@AAAAAAAAAAAA@AA@AAA@AAA@@AAAAAAA@AAA@@@@@AAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA.*A@AAAA@AAAAAAA@AAAAAAA@AAA@AAA@A@@AAAAAAAAAAA@AAA@AAAAA@AAA-*@AA-*AA777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777A@AAAA@AAAAAAAAA@AAAA@AAAAA@A@A@AAA@AAAAAAAA@@AAA@AAAAAAAA@A@AAAAA@AAAA77777777777777777777777777777777777777777777777777777777777777J7777777777777777777777777777777777777777777777777777777@A-*AAAAAAA@@A@AAAAAA@@AAAAA@@@@AA@AAAAA@AA@A@AA@AA@@A@@AAA@@AA@AAA-*AAA.*AA7777777777777777777777777777777777777777777777777777777777777"777777777777777777777777777777777777777777777777777777A@AAAAAAAAAAAAAAAAA@AAAA@AA@@AAAAA@A@AAAAAAAAAAAA@@@AA@AA@A@@AAAAAAAAAAA@AA777777777777777777777777777777777777777777777777777777777777і77777777777777777777777777777777777777777777777777777AA-*AAAAAAA@AAAAAAA@A@AAAA@@@AAAAAAAAAAAAA@AA@AAAAA@AAAAAA@@AAAAA@AA@@@@A@A-*AA77777777777777777777777777777777777777777777777777777777777^77777777777777777777777777777777777777777777777777777AAAAAAAAA@AAAAA@AAAAAAAAA@@A@AAAA@A77777777777777777777777777777777777777777777777777777777777𨼏77777777777777777777777777777777777777777777777777777777777777777777777777AAA@@AAA@AAAAAAAAAAA@AA@AAAA@A@@@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777A@AAAAAA@AAA@AA@AAAAAAAAAAAAAA@@A@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A@A@AAAAA@@@A@AA@AA@AAAAAAAAAAA@AA@77777777777777777777777777777777777777777777777777777777777777777777777777777777E77777777777777777777777777777777777777777777777777777777777777777777777777A@,@AA,AAA,AAA,@AA,AAA,AA@,AAAAA@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777m77777777777777777777777777777777777777777777777777777777777777777777777777@AAAAAAAAA@AAA@AAA@AAAAAAAA@AAAA@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777|<77777777777777777777777777777777777777777777777777777777777777777777777777,AAA,AA@,@AA,A-A,@,A,A-A-AA@-@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777!;77777777777777777777777777777777777777777777777777777777777777777777777777@AA@AA@AAAAAA@AAAAA@A@AAAAAA@@AA@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777{77777777777777777777777777777777777777777777777777777777777777777777777777@A,@@A,A,A,A,A-A,A,@,A,A-A,AAA,A@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777ꊼ77777777777777777777777777777777777777777777777777777777777777777777777777AA@AAAAAAA@AA,AAA,A@AAAAA@@AAAAAA@@77777777777777777777777777777777777777777777777777777777777777777777777777777777Ś<77777777777777777777777777777777777777777777777777777777777777777777777777,AAA-A,@-@,A,A,A,@,A,@,A,A,A,A,A,@A77777777777777777777777777777777777777777777777777777777777777777777777777777777~77777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@AA@AA,A@A,AA@,AA@,AAA@AAA@AAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-@,A,A,A,@-A,A,@-A,A,A,@,A,A-A,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777p77777777777777777777777777777777777777777777777777777777777777777777777777A@AA@AAAA,@AA,@AA,AAA,AAA,AAA@AAA@A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,@-@,A,A,A,A,@,A,A,A,A-A,A,A,@,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777_v<77777777777777777777777777777777777777777777777777777777777777777777777777@AA-A@@-A@@,AAA,AAA,AAA,AAA-@A@,@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777=77777777777777777777777777777777777777777777777777777777777777777777777777,A,A,@,A,A-A,@,A,A,@,A-A,A,A,A,@,A,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@,AA@,AAA,AAA,A@@-AAA,A@@,AAA,A@A,A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,@,A,A,A,A,@-A,A,A,A,@-A-A,@,A,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777:77777777777777777777777777777777777777777777777777777777777777777777777777AAA,AAA,@@A,AAA-A,@-@AA,@@A,AA@,@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777);77777777777777777777777777777777777777777777777777777777777777777777777777,A-A-A,A,A-A,@-@,A-@,A,A,A,A-A,A,A,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,AAA,A@@,A,@,A,A,@,A,A@@,AAA,A@@,A77777777777777777777777777777777777777777777777777777777777777777777777777777777徼77777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A,A,A,A-A,A,A,A,A-A,A,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777877777777777777777777777777777777777777777777777777777777777777777777777777A@A,AAA-@,A,A,A,A-A,A-A,A,@,AAA,@A@77777777777777777777777777777777777777777777777777777777777777777777777777777777<<77777777777777777777777777777777777777777777777777777777777777777777777777,A,@,A,A,A,A-@,@,A,A,A,A-A,A,A,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777MԻ77777777777777777777777777777777777777777777777777777777777777777777777777A,A,A-@-A,A,A,A,A,@,A,A,A,A,@,AAA,A77777777777777777777777777777777777777777777777777777777777777777777777777777777:77777777777777777777777777777777777777777777777777777777777777777777777777,A,A-A-A,A,A,@,@,A,A,@,A,A,A-A-A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777%$77777777777777777777777777777777777777777777777777777777777777777777777777A,@,A,A,A,@,A-A,A,@,@,A-A,@,A,A,A,@77777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777,A,A,@,@,A,A,A,A-A-@,A,A,@,A,A-A,A-7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,@,A,@,A,A,A,A,A,@,@,A,A,A-@,A-A,A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,@,A,@,@,@-A-A,A,A,A,A,A,A,A,A,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777A,A-A-A,A,A,@,@,A,@,A,A,A-A,A,A,A,A77777777777777777777777777777777777777777777777777777777777777777777777777777777G77777777777777777777777777777777777777777777777777777777777777777777777777,A,A,@,A,A,@-A,A,@,A-A,A,A-@-A-@,A,77777777777777777777777777777777777777777777777777777777777777777777777777777777=77777777777777777777777777777777777777777777777777777777777777777777777777A,A,@,A,@,A,A,@,A,A,A,A,A,A,A,A,@,A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,@,A,A,A,A,@-A,A,@-@,A,A,A,A,@,A,A-7777777777777777777777777777777777777777777777777777777777777777777h=77777777777777777777777777777777777777777777777777777777777777777777777777A,@,A,A,A,@,A-A,A,@,@,A-A,@,A,A,A,@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,A,A,@,@,A,A,A,A-A-@,A,A,@,A,A-A,A-7777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777A,@,A,@,A,A,A,A,A,@,@,A,A,A-@,A-A,A777777777777777777777777777777777777777777777777777777f<77777777777777777777777777777777777777777777777777777777777777777777777777,A,@,A,@,@,@-A-A,A,A,A,A,A,A,A,A,A,7777777777777777777777777777777777777777777777777A<77777777777777777777777777777777777777777777777777777777777777777777777777A,A-A-A,A,A,@,@,A,@,A,A,A-A,A,A,A,A777777777777777777777777777777777777777777777ۭ;77777777777777777777777777777777777777777777777777777777777777777777777777,A,A,@,A,A,@-A,A,@,A-A,A,A-@-A-@,A,777777777777777齯7777777777777777777777777=77777777777777777777777777777777777777777777777777777777777777777777777777A,A,@,A,@,A,A,@,A,A,A,A,A,A,A,A,@,A777777777777齯a^\777777777777777777777777;77777777777777777777777777777777777777777777777777777777777777777777777777,@,A,A,A,A,@-A,A,@-@,A,A,A,A,@,A,A-777777777齯a^\77777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777A,@,A,A,A,@,A-A,A,@,@,A-A,@,A,A,A,@77777齯a^\77777777777777777777772n<77777777777777777777777777777777777777777777777777777777777777777777777777,A,A,@,@,A,A,A,A-A-@,A,A,@,A,A-A,A-77齯a^\777777777777777777777{6=77777777777777777777777777777777777777777777777777777777777777777777777777A,@,A,@,A,A,A,A,A,@,@,A,A,A-@,A-A,齯a^\7777777777777777777778<77777777777777777777777777777777777777777777777777777777777777777777777777,A,@,A,@,@,@-A-A,A,A,A,A,A,A,A,齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A,A-A-A,A,A,@,@,A,@,A,A,A-A齯77777777777777777777ؼ77777777777777777777777777777777777777777777777777777777777777777777777777,A,A,@,A,A,@-A,A,@,A-A,A齯77777777777777777777[w<77777777777777777777777777777777777777777777777777777777777777777777777777A,A,@,A,@,A,A,@,A,A,齯77777777777777777777q<77777777777777777777777777777777777777777777777777777777777777777777777777,@,A,A,A,A,@-A,A, I I I I齯77777777777777777777m%<77777777777777777777777777777777777777777777777777777777777777777777777777A,A,A,@,A,A,@ I Immmm I齯77777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777,A,A,A,A,A Imm8888m I齯a^\77777777777777777777经77777777777777777777777777777777777777777777777777777777777777777777777777A,A,A, Im8888888m I齯a^\77777777777777777777r<77777777777777777777777777777777777777777777777777777777777777777777777777,@, Im8888888m I齯a^\77777777777777777777E*77777777777777777777777777777777777777777777777777777777777777777777777777 Im88888888m I齯a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I I I I I I IG8888888G I齯a^\77777777777777777777q77777777777777777777777777777777777777777777777777777777777777777777 I Immmmmmmm I I I IG8888888G I齯a^\77777777777777777777t;7777777777777777777777777777777777777777777777777777777777777777 I Imm88888888mmm I IG8888GG I齯a^\77777777777777777777U<7777777777777777777777777777777777777777777777777777777777777 I Imm88G8G88888888m I IGGGG I I齯a^\77777777777777777777p<7777777777777777777777777777777777777777777777777777777770 Imm888G8G8G88888888m I I I I I齯齯齯齯a^\77777777777777777777;7777777777777777777777777777777777777777777777777777770##0 Im888888G8G8888888888m I齯齯齯齯a^\77777777777777777777k777777777777777777777777777777777777777777777777770 Im888888G8G8G8888888888m I齯齯齯齯_ya^\77777777777777777777𶼏77777777777777777777777777777777777777777777777 Im88888888G8G88888888888m I齯齯齯齯齯_y77777777777777777777;77777777777777777777777777777777777777777778mm Im88888888888888888888888m I齯齯齯齯齯_y齯77777777777777777777ZY77777777777777777777777777777777777777777888888m Im88888888888888888888888mm I齯齯齯齯_y齯齯77777777777777777777w7777777777777777777777777777777777777778888888888m Im8888888888 I I I I88888G8G888m I齯齯齯齯齯齯齯齯77777777777777777777ʛ777777777777777777777777777777777777788888888G8G8G8m Im888888888 I Immmm I888G8G8G88m I齯齯齯齯齯齯齯齯齯77777777777777777777P=7777777777777777777777777777777777788888888G8G8G8G88m Im88888888 Imm8888m I888G8G888m I齯齯齯齯齯齯齯齯齯777777777777777777777777777777777777777777777777777777_y8888888G8G8G8G8G8G8G8m Im88888888 Im8888888m I8G8G8G88m I齯齯齯齯_y齯齯齯齯齯77777777777777777777;<777777777777777777777777777777777_ya^\88888888G8G8G8G8G8G8G8G88m I888888888 I88888888G I88G8G888m I齯齯齯齯_y齯齯齯齯齯77777777777777777777 {77777777777777777777777777777777_y88888888888G8G8G8G8G8G8G8G8G8m I88888888 IG88888888G I88888888m I齯齯齯齯_y齯齯齯齯齯齯77777777777777777777n<77777777777777777777777777777777_y8888888888888G8G8G8G8G8G8G8G8G88m IG88G8G888 IG8888888G Im88888888 I齯齯齯齯齯齯齯齯齯齯齯齯77777777777777777777Q軏7777777777777777777777777777777_y888888888&&&&&&&&&&&&&&&88G8G8G8G8G8G8G8G8G8G8m IG8G8G8G88 IG8888888G Im88888888 I齯齯齯齯齯齯齯齯齯齯齯齯齯77777777777777777777.C777777777777777777777777777777_y888888888888888888&&&&&&8G8G8G8G8G8G8G8G8G&&&8m IG88G8G888m IG8888GG Im888888888 I齯齯齯齯_y齯齯齯齯齯齯齯齯齯777777777777777777775$=777777777777777777777777777777_y888888888888888888888888&&&8G8G8G8G8G8G8&&&8&&&&&&G8m IG8G8G8G888m IGGGG I Im88888888G I齯齯齯齯_y齯齯齯齯齯齯齯齯齯_y77777777777777777777<77777777777777777777777777777_y888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&8G8G8G8&&&8G&&&G8&&&8G8G88m IG88G8G88888m I I I Imm888888888G I齯齯齯齯_y齯齯齯齯齯齯齯齯齯_y77777777777777777777l77777777777777777777777777777_y888888888888888&&&&&&&&&&&&&&&88888&&&&&&888&&&&&&G8G8&&&8G&&&G&&&G&&&G8G8m IG88888888888mmmm8888888888G I齯齯齯齯_y齯齯齯齯齯齯齯齯齯_y77777777777777777777707777777777777777777777777777_ym8888888888888&&&&&&&&&&&&&&&&&&8888&&&&&&888888G&&&G&&&G&&&G8&&&8G&&&G&&&G88m IG888888888888888888888888G I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y777777777777777777777<777777777777777777777777777_ym888888888888&&&88888&&&&&&&&&&&&&&&&&&&&&888888&&&&&&8&&&8&&&8G8G8G&&&G8G8m IG88888888888G8G8G88888888G I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y77777777777777777777775777777777777777777777777777_ym888888888888888888888&&&&&&&&&&&&&&&&&&88&&&&&&88G8G8G8G8G8G8G88m IG888888888G8G8G88888888G I齯齯齯齯_y齯齯齯齯齯齯齯齯齯_y777777777777777777777777777777777777777777777777_ym888888G8G&&&G8G&&&G8G8G8888&&&&&&&&&&&&&&&88888888G8G8G8G88888m IG8888888888G8G8G888888G I齯齯齯齯_y齯齯齯齯齯齯齯齯齯_y777777777777777777777777777777777777777777777777_ym888G8G8G8G&&&&&&&&&G&&&&&&&&&G8G8G888&&&&&&&&&&&&8888888888888888888m IG88888888G8G8G888888G I齯齯齯齯_y齯齯齯齯齯齯齯齯齯齯_y777777777777777777777777777777777777777777777777_ym88G8G8G8G&&&&&&&&&G&&&G8G&&&&&&&&&G8G8G8G&&&&&&&&&888888888888888888m IG88888888G8G88888GG I齯齯齯齯_y齯齯齯齯齯齯齯齯齯齯_y777777777777777777777777HA777777777777777777777777_ym8&&&8G8G8G&&&&&&&&&&&&&&&G&&&G8G8G&&&&&&8G8G8G8&&&8888&&&88&&&8888888888m IG8888888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y7777777777777777777777777777777777777777777777777_ym8&&&G8G8G8&&&&&&&&&&&&&&&8&&&8G8&&&8G8&&&&&&G8G8G&&&8&&&88&&&88&&&8888888888m IGG888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y7777777777777777777777777𼏀77777777777777777777777_ym8G&&&G8G8G&&&G&&&&&&8G&&&G8G&&&G&&&G8&&&&&&&&&&&&&&&&&&G8&&&88&&&88&&&8888888888m I IGGGGGGGGG I I齯齯齯齯_y齯齯齯齯齯齯齯齯齯_y777777777777777777777777771 7777777777777777777777_ym88&&&8G8G8G&&&G8G&&&G&&&G8G8&&&8G&&&G8G8G8&&&888&&&88&&&8888888888m I I I I I I I I I齯齯齯_y齯齯齯齯齯齯齯齯齯_y7777777777777777777777777777777777777777777777777_ym8G8&&&8G8G8G&&&&&&&&&G8G&&&&&&8G8G8&&&8G8G8G8G8&&&88&&&88888888888m齯齯_y齯齯齯齯齯齯齯齯齯齯_y777777777777777777777777777777777777777777777777_ym88G&&&G8G8G8G8G8G8&&&8&&&&&&G8G&&&G8G8G8G8&&&888&&&88888888888m齯_y齯齯齯齯齯齯齯齯齯齯_y7777777777777777777777777777R<77777777777777777777_ym8G8G&&&G8G8G8G8G8&&&&&&G8G&&&&&&&&&G8G8G8G8G888&&&8888888GG888_y齯齯齯齯齯齯齯齯齯齯_y7777777777777777777777777777/77777777777777777777_y齯齯m88G8G&&&G8G8G8G8&&&8G8G8G&&&G8G8G8G8G888&&&8888GGGG88888齯齯齯齯齯齯齯齯齯齯_y777777777777777777777777777777777777777777777777_y齯齯齯m8G8G8G&&&G8G8G&&&&&&8G8G8&&&&&&G8G8G8G8G8G888GGGG88888888齯齯齯齯齯齯齯齯齯_y777777777777777777777777777777!7777777777777777777_y齯齯齯齯齯m88G8G8G&&&&&&&&&&&&&&&G8G8G&&&&&&8G8G8G8G8G8G8GGG888888888齯齯齯齯齯齯齯齯齯_y777777777777777777777777777777ݻ7777777777777777777_y齯齯齯齯齯齯m8G8G8G8G8&&&&&&&&&&&&&&&&&&&&&&&&G8G8G8G8G8GGGGG88888888齯齯齯齯齯齯齯齯_y7777777777777777777777777777777] 77777777777777777777_y齯齯齯齯齯齯齯m88G8G8G8G8G8G8G8G8G8G8G8GGGG88888888齯齯齯齯齯齯齯_y77777777777777777777777777777777E<777777777777777777777_y齯齯齯齯齯齯齯m8G8G8G8G8G8G8G8G8G8G8GGG88888888齯齯齯齯齯齯齯_y77777777777777777777777777777777[777777777777777777777_y齯齯齯齯齯齯m88G8G8G8G8G8G8G8GGGGG8888888齯a^\a^\齯齯齯齯齯_y777777777777777777777777777777777U7777777777777777777777_y齯齯齯齯齯齯m8G8G8G8G8G8G88GGG88888888齯a^\a^\a^\齯齯齯齯齯_y77777777777777777777777777777777777777777777777777777777_y齯齯齯齯齯齯m88G8G8G8G8GGGG8888888齯a^\a^\a^\齯齯齯齯_y7777777777777777777777777777777777h77777777777777777777777_y齯齯齯齯齯齯齯m8G8G8GGGGG8888888齯a^\a^\a^\齯齯齯齯_y77777777777777777777777777777777777u<777777777777777777777777_y齯齯齯齯齯齯齯m8GGGGG8888888齯a^\a^\a^\齯齯齯齯_y77777777777777777777777777777777777yʸ7777777777777777777777777_y齯齯齯齯齯齯齯m8888888888齯a^\a^\a^\齯齯齯齯_y777777777777777777777777777777777777^;77777777777777777777777777_y齯齯齯齯齯齯齯m888888齯a^\a^\a^\齯齯齯_y7777777777777777777777777777777777777H=77777777777777777777777777_y齯齯齯齯齯齯m88齯a^\a^\a^\齯齯齯77777777777777777777777777777777777777777777777777777777777777777_y齯齯齯齯齯齯齯a^\a^\a^\齯齯齯7777777777777777777777777777777777777777y7777777777777777777777777777_y齯齯齯齯齯齯a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777Mq<7777777777777777777777777777_y齯齯齯齯齯齯齯a^\齯齯齯77777777777777777777777777777777777777777777777?;77777777777777777777777777777_y齯齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777S=777777777777777777777777777777_y齯齯齯齯齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777770b777777777777777777777777777777_y齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777c877777777777777777777777777777777_y齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777_y齯齯齯齯齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777;777777777777777777777777777777777_y齯齯齯齯齯a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777,7777777777777777777777777777777777_y齯齯齯齯a^\a^\a^\齯77777777777777777777777777777777777777777777777777777777777777777777777777777*t77777777777777777777777777777777777_y齯齯齯a^\a^\a^\齯77777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777_y_y齯a^\a^\a^\齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y齯a^\a^\a^\齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+q7777777777777777777777777777777777777齯a^\a^\a^\齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_77777777777777777777777777777777777777a^\a^\a^\齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777m777777777777777777777777777777777777777a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777d77777777777777777777777777777777777777777齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777774<7777777777777777777777777777777777777777777齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777𿼏7777777777777777777777777777777777777777777777齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777^777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\577777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777!7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q2=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777D77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777L#77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Z7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 =77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777h77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#37777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777D<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777f77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.?=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Z77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777޼77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777:77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Γ<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 =77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777';windows_installer_welcome144.bmp000077500000000000000000012223701452337521700365220ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM$6($%%77777777777777777777777777777777777777777777777777777777777777777777777777777777-Ds-Ds-Ds-Ds-Ds-Ds-Ds777777777777777777777777777777777777777777-Ds-Ds=X-Ds=X-Ds=X-Ds=X=XQm=XQm=XQm=XQm=XQm=XQm=XQmQmfQmf=XQmQm-DsQmQmQmQm=X-Ds=X-Ds=XQm=XQm=XQm=X-Ds-Ds-Ds 6` 6` 6` 6`77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-Ds-Ds-Ds-Ds-Ds-Ds-Ds777777777777777777777777777777777777777777777-Ds-Ds-Ds=X-Ds=X=XQm=XQm=XQm=XQm=XQm=XQm=XQmQmfQmfQmQmQmQmQmQmQmQm=XQm=XQm=XQm=X=X=X=X=X=X=X-Ds-Ds-Ds 6` 6` 6`(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-Ds-Ds-Ds-Ds-Ds-Ds-Ds77777777777777777777777777777777777777777777777-Ds-Ds=X=X-Ds=XQm=XQm=XQm=XQm=XQm=XQmQmfQmfQmfQmfQmQmQmfQmQmQm-Ds=X-Ds=XQm=XQm=XQm=XQm=X-Ds-Ds-Ds-Ds 6` 6`7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 6`-Ds-Ds-Ds-Ds 6`-Ds7777777777777777777777777777777777777777777777777-Ds-Ds=X=XQm=XQm=XQm=XQm=XQm=XQmQmfQmfQmfQmQmfQmfQmfQmQmQmQmQmf=X=XQm=X=X=X=X=X-Ds=X-Ds=X-Ds-Ds 6`(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 6`-Ds 6` 6` 6`-Ds 6`77777777777777777777777777777777777777777777777777-Ds-Ds=X=X-Ds=XQm=XQm=XQm=XQmQmfQmfQmfQmffQmfffQmfQmfQmfQmfQm=XQm=XQm=X=X=X-Ds=X-Ds=X-Ds 6` 6`(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 6`-Ds 6`-Ds 6` 6`777777777777777777777777777777777777777777777777777-Ds=X=XQm-Ds=XQm=XQm=XQmQmfQmfQmfQmf=XQmfQmfQmfffQmfffQm=X=X=XQm=X=X=X-Ds=X-Ds=X-Ds=X-Ds-Ds 6`777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 6` 6`-Ds 6` 6` 6`7777777777777777777777777777777777777777777777777777-Ds=X-DsQm-Ds=XQm=XQm=XfQmfQmfQmffQmfffQmfffQmfQmfQmfQm=XQm=XQm=XQm=X-Ds=X-Ds=X-Ds=X-Ds 6`(G77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 6`-Ds 6`-Ds 6` 6`77777777777777777777777777777777777777777777777777777-Ds=X=XQm-DsQmQm=XQmQmQmQmfQmQmfQmfQmfQmfQmfQmfffQmfQmQmQmQm=X=XQm-Ds-Ds-Ds-Ds=X-Ds=X-Ds-Ds-Ds 6`(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G 6` 6` 6` 6`(G(G77777777777777777777777777777777777777777777777777777-Ds=X-DsQm-DsQmQmQmfQmfQmffQmfffQmfffffQmfQm=XQm=XQm=XQm=XQm=X=X-Ds-Ds-Ds-Ds=X-Ds-Ds-Ds 6`7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 6`(G 6` 6`(G 6`(G777777777777777777777777777777777777777777777777777777-Ds=X=XQmQmQmQmQmfQmQmfQmfQmfQmfQmfQmfffQm=X=X=XQm=X=X=XQm=X=XQmQm=X-Ds-Ds-Ds=X-Ds-Ds-Ds(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G 6`(G(G(G 6`(G777777777777777777777777777777777777777777777777777777-Ds=X-DsQm-DsQmQmQmffQmfffQmfffQmfQmQmQm=XQm=X-Ds-Ds-Ds-Ds=X=X=X=X=X=X-Ds-Ds-Ds=X-Ds-Ds 6`(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 6`(G 6`(G 6`(G 6`(G77777777777777777777777777777777777777777777777777777-Ds=X=XQmQmQmQmQmQmfQmfQmfffQmff=XQm=X=X=X=X=XQm=X-Ds=X-Ds-Ds-Ds-Ds-Ds=X-Ds=X-Ds-Ds 6`7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G(G 6`(G(G(G 6`(G(G7777777777777777777777777777777777777777777777777777-Ds=X-DsQm-DsQmQmfffQmfffQmfQm=XQm=XQm=XQm=XQm=XQm=X-Ds=X-Ds=X-Ds-Ds-Ds-Ds-Ds-Ds=X-Ds=X-Ds-Ds 6`777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G 6`(G 6`(G 6`(G(G(G(G(G777777777777777777777777777777777777777777-Ds=X=X=XQmfffQmfffQmQm=X=XQm=X=X=XQm=X=X=XQm=X=X=XQm=X=X=X-Ds=X-Ds=X-Ds-Ds-Ds-Ds=X-Ds=X-Ds-Ds(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G(G(G 6`(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G777777777777777777777777777777777777777777-Ds=XQm=XQmfQmfQmff-DsQmQm=XQm=XQm=XQm=XQm=XQm=XQm=XQm=XQm=X=X=X-Ds=X-Ds-Ds-Ds-Ds=X-Ds=X-Ds-Ds(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G 6`(G 6`(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777-Ds=X=X=XQmfffQmQm=X=XQm=X=X=XQm=X=X=XQm=X=X=XQm=X=X=XQm=X=X=XQm=X-Ds=X-Ds-Ds-Ds-Ds=X-Ds=X-Ds 6`(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G77777777777777777777777777777777777777777777-Ds=XQm=XQm=X-Ds=X=XQm=XQm=XQm=XQm=XQmQmQmQmQm=XQm=XQm=XQm=XQm=XQm=X-Ds-Ds-Ds-Ds-Ds-Ds-Ds=X-Ds=X-Ds 6`(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777=X=X=X=X-Ds-Ds=X=XQm=X=X=XQm=X=XQmQmQmQmQmQmQmQmQmQmQm=X=XQm=X=X=XQm=X-Ds=X-Ds-Ds=X-Ds=X-Ds=X-Ds(G77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G(G(G(G(G(G(G(G777777777777777777777777777777777777777777777777=X=X-Ds-Ds-Ds=X=XQm=XQm=XQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQm=XQm=XQm=X-Ds-Ds-Ds-Ds=X-Ds=X-Ds-Ds(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-Ds-Ds=X=X=X=XQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQm=X=X=X-Ds=X-Ds-Ds-Ds=X=X-Ds-Ds-Ds-Ds(G77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-Ds-Ds=XQm=XQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQm-Ds=X-Ds=X-Ds=X-Ds-Ds-Ds-Ds-Ds-Ds-Ds 6`777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-Ds-Ds=X=XQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQm-Ds=X-Ds=X-Ds-Ds-Ds-Ds-Ds-Ds 6`-Ds 6` 6`(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-Ds=XQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQm-DsQm-DsQm-Ds=X-Ds-Ds-Ds-Ds-Ds-Ds-Ds-Ds 6` 6` 6` 6`(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=XQm=XQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQmQm-DsQm=X=X-Ds=X-Ds-Ds-Ds-Ds-Ds-Ds-Ds 6`-Ds 6` 6` 6` 6`(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Qm=XQmQmQmQmQmQmQmQmQmQmQmfQmfQmQmQmQmQmQmQmQm-DsQm-DsQm-Ds=X-Ds=X-Ds-Ds-Ds 6`-Ds 6`-Ds 6`-Ds(G 6`(G 6`(G 6`(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=X=X=XQmQmQmQmQmQmQmfQmfffQmQmQmQmQmQmQmQm-DsQmQmQm-Ds=X=X-Ds-Ds-Ds-Ds-Ds-Ds 6`-Ds-Ds 6`(G 6` 6` 6`(G 6`(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GDGDGDGDGDGDGD777777777777777777777777777777777777777777Qm=XQmQmQmQmQmQmQmfQmfQmfQmfQmQmQmQmQmQm-DsQm-DsQm-DsQm-Ds-Ds 6`-Ds 6`77 6` 6` 6` 6` 6`(G 6`(G 6`(G 6`(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GDGDGD q q q q q q q GDGDGD7777777777777777777777777777777777777777=XQm=XQmQmQmQmQmQmQmfffQmfffQmQmQmQm-DsQmQmQm-Ds-Ds-Ds-Ds 6`-Ds-Ds-Ds 6` 6` 6` 6`(G 6` 6` 6`(G(G(G77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD q q q 7777777 q q q GDGD77777777777777777777777777777777777777Qm=XQmQmQmQmQmQmQmfQmfQmfQmfQmfQmQmQmQm-DsQm-Ds-Ds 6`-Ds 6`-Ds 6`-Ds 6` 6`77 6`(G 6`(G 6`(G(G(G(G(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD q 7777777777777 q q GDGD7777777777777777777777777777777777777=X=X=XQmQmQmQmQmQmffQmfffQmffQmQmQmQmQm-DsQm-Ds-Ds 6`-Ds-Ds-Ds 6` 6` 6` 6`777 6` 6` 6`(G 6` 6` 6`(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD q 7777777777777777 q GD777777777777777777777777777777777777QmQmQmQmQmQmQmQmQmfQmfQmfQmfQmfQmQmQmQm-DsQm-Ds-Ds 6`-Ds 6`-Ds(G 6`(G 6`(G7777 6`(G 6`(G 6`(G(G(G(G(G(G(G(G(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD q 77777777777777777GD7777777777777777777777777777777777777Qm-DsQm-DsQmQmQmQmQmfffQmfffQmQmQmQm-DsQmQm-Ds 6`-Ds-Ds-Ds 6` 6` 6` 6`(G 6`77777 6` 6`(G(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD777777777777777777GD7777777777777777777777777777777777777-DsQmQmQm-DsQmQmQmQmQmfQmfQmfQmfQmQmQmQm-DsQm-Ds-Ds 6`-Ds(G 6`(G 6`(G 6`(G(G77777 6`(G(G(G(G(G(G(G(G(G(G(G(G(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD777777777777777777GD77777777777777777777777777777777777Qm-DsQm-DsQm-DsQm-DsQmQmQmQmffQmffQmQmQmQmQm-DsQm-Ds-Ds 6` 6` 6` 6`(G 6` 6` 6`(G777777(G(G(G(G(G(G(G(G(G(G(G(G(G(G77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD777777777777777777GD777777777777777777777777777777777-Ds-DsQm-Ds-Ds-DsQm-Ds-DsQmQmQmQmQmQmQmQmQmQmQm-DsQm-Ds-Ds-Ds 6`(G 6`(G 6`(G(G(G(G7777777(G(G(G(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD7777777777777777GD q 777777777777777777777777777777777777777-DsQm-DsQm 6`Qm 6`Qm-DsQmQmQmQmQmQmQmQmQmQmQmQmQmQm 6` 6` 6` 6`(G 6`(G(G(G(G(G77777777(G(G(G(G(G(G(G(G(G(G(G(G(G(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD777777777GDGD q 77777777777777777777777777777777777-Ds-Ds-Ds 6`-Ds 6`-Ds 6`-Ds 6`-Ds-DsQm-DsQmQmQmQmQmQmQmQm(G(G(G(G(G(G(G(G(G77777777(G(G(G(G(G(G(G(G(G(G(G(G777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GD7777777//GDGD q q 7777777777777GDGDGDGDGD777777777777777777-Ds 6`Qm 6`Qm 6`Qm 6`Qm-DsQm-DsQmQmQmQmQmQmQm 6` 6` 6`(G(G(G(G(G(G(G(G777777777(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 q GD77777777 q q 7777777777777GDGD q q q q q GDGD777777777777777 6`-Ds 6` 6` 6` 6` 6` 6` 6` 6`-Ds-Ds-DsQmQmQmQm(G 6`(G 6`(G(G(G(G(G(G(G(G7777777777(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 q GD777777777777777777777777777GDGD q q 77777 q q GD77777777777777 6` 6` 6` 6`(G 6`(G 6` 6` 6`-DsQm 6`(G 6` 6` 6`(G 6`(G(G(G(G(G(G(G77777777777(G(G(G(G(G(G(G77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 q GD7777777777777777777777777GD q q 777777777 q GD7777777777777777 6` 6` 6`(G 6`(G 6`(G 6` 6` 6`(G(G 6`(G 6`(G 6`(G(G(G(G(G77777777777777(G(G(G7777777777777777777777777777777777777777777777777777777777777777777-d-d-d77777777777777777777777777777777777777777777777777 q GD777777777777777777777GD q 77777777777 q 77777777777777777 6`(G 6`(G 6`(G 6` 6` 6` 6`777 6` 6` 6`(G 6`(G(G(G(G(G(G(G77777777777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d7777777777777777777777777777777777777777777777777 q GDGD77777777777777777GDGD q 7777777777777777777777777777 6` 6`(G(G(G(G(G 6` 6` 6`7777(G(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d-d-d777777777777777777777777777777777777777777777777 q q GDGD7777777777GDGD q q 777777777777777777777777777777(G(G(G(G(G(G(G 6`777777(G(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777777777777777777 q q GDGDGDGDGDGDGD q q 7777777777777777777777777777777777(G(G(G(G(G(G(G 6`7777777(G(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d777777777777777777777777777777777777777777777777777 q q q q GDGDGDGDGDGDGDGDGDGD q q q 777777777777777777777/ߏ77777777777777777(G(G(G(G(G(G(G77777777(G(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d77777777777777777777777777777777777777777777777777777777 q q q q q q q q q q 777777777777777777777777777/ߏ7777777777777777(G(G(G(G(G(G(G777777777(G(G(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G(G(G(G(G(G7777777777(G(G(G(G(G(G(G(G(G(G(G777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G(G(G(G777777777777(G(G(G(G(G(G(G(G(G(G7777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d77777777777777777777777777777777ѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777(G(G(G7777777777777(G(G(G(G(G(G(G(G/////ߏ7777777777777777777777777777777777777777777777777777777777777777-d-d-d-dEE-d-d-d-d-d-d-dѿѿ7777777777777777777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777(G777777777777777(G(G(G(G(G(G//B|B|B|77777777777777777777777777777777777777777777777777777777777777777777-d-d-d-dEE-d-d-d-d-dѿѿ777777777777777777777777ѿѿttѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(G(G(G(GB|B|B|777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-dѿѿ777777777777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/B|77777777777777777777777777777777777777777777777777777777777777777777777777777777ѿ-d-d-d7777777777777777777ѿѿttѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/B|77777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ777777777777777777ѿѿtt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ777777777777777777ѿѿtt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ777777777777777777ѿѿtt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|//77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|///7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|//////////////77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|///777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|//77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ó77777777777777777777777777777777///////77777777777777777777B|/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ó7777777777777777777777777777777777B|B|B|B|B|//7777777777777777777B|/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPó777777777777777777777777777777777777777777777B|B|/777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPó77777777777777777777777777777777777777777777777B|/77777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777B|/7777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ777777777777777777777777777777777777777777777777777B|/77777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿ77777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cPᏀ777777777777777777777777777777777777777777777777777777B|//77777777777/B|777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ---ѿѿ7777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ777777777777777777777777777777777777777777777777777777777B|B|//7777777/B|77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ-------ѿѿ777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777B|B|////B|777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ---------ѿѿ77777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777B|B|///////B|B|77777777777777777777777777777777l7777777777777777777777777777777777777777777777777777777ѿѿ----EE-------ѿѿ77777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|B|77777777777777777777777777777777770777777777777777777777777777777777777|cP|cPDDDDDD|cP|cP77777777777777777------EE-----------ѿѿ77777777777777777777|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777-----------------ѿѿ777777777777777777|cP|cP|cP|cP|cP|cPó777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP7777777777777777777-----------------ѿѿ7777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-------------------ѿѿ777777777777777|cP|cPᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777477777777777777777777777777777777777|cP|cP|cP|cP77777777777777777777777-----------------7777777777777777|cP|cPᏀ77777777777777777777777777777777LL77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP7777777777777777777777777-------------777777777777777777|cP|cPᏀ77777777777777777777777777777777LL77LL777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-----------7777777777777777777777Ꮐ77777777777777777777777777777777LL777777LL77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP77777777777777777777777777777-------77777777777777777777777777Ꮐ77777777777777777777777777777777LL7777777777LL777777777777777777777777777777777777777777777777777777777777777777J77777777777777777777777777777777777|cP|cP|cP7777777777777777777777777777777---77777777777777777777777777777777777777777777777777777777777777777LL77777777777777LL777777777777777777777777777777777777777777777777GGGG777777777777#77777777777777777777777777777777777ӽӽ|cPӽӽ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LL77777777777777LL777777777777777777777777777777777777777777777777GGGG7777777777777777777777777777777777777777777777ӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LL77LL7L77777777LL777777ѿѿ7777777777777777777777777777777777777777GGGG77777777̏777777777777777777777777777777777777ӽ|cPӽ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LL77LL77L7L77777LL77LLL7ѿѿ7777777777777777777777777777777777777777GGGG7777773777777777777777777777777777777777777ӽ|cPӽ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LL77LL77777L7777LL77LL77ѿLL77ѿ))))))ѿ7777777777777777777777777777777777GGGGGGGGGGGG777777777777777777777777777777777MMMMӽӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LL77LL7777777777LL77LL77ѿѿ777ѿ))))))))))))))))))ѿ77777777777777777777777777777777GGGGGGGGGGGG777폀77777777777777777777777777MMMMMMMMMMMMMMMMhMM77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LL77LL777777LL77LL77ѿѿ7777))))))))))))))))))))))))))))))7L77777777777777777777777777777GGGGѿѿѿѿGGGGGGGG7777777777777777777777777777MM77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//77777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//7777777777777777777777777777777777777777777777777777777777777777776777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//777777777777777777777777777777777777777777777777777777777777777777~P777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//7777777777777777777777777777777777777777777777777777777777777777773A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//777777777777777777777777777777777777777777777777777777777777777777.777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//777777777777777777777777777777777777777777777777777777777777777777JT777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//777777777777777777777777777777777777777777777777777777777777777777A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//77777777777777777777777777777777777777777777777777777777777777m777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|////77777777777777777777777777777777777777777777777777777777.v777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|////77777777777777777777777777777777777777777777777777777777x}777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//////77777777777777777777777777774~777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//////7777777777777777777777777777!777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|////////////////////////////7777777777777777777777#$777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|////////////////////////////7777777777777777777777977777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ------ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777ó777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|//////777777777777777777277777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ------ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777ó777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|//////777777777777777777$7777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ--------------ѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777ó7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|////7777777777777777@}7777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ--------------ѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777ó7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|////7777777777777777揀777777777777777777777777777777777777777777777777777777777ѿѿѿѿ------------------ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPó7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//77777777777777pz777777777777777777777777777777777777777777777777777777777ѿѿѿѿ------------------ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPó7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//77777777777777-7777777777777777777777777777777777777777777777777777777ѿѿѿѿ--------EEEE--------------ѿѿѿѿ7777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cPó7777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//777777777777A7777777777777777777777777777777777777777777777777777777ѿѿѿѿ--------EEEE--------------ѿѿѿѿ7777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cPó7777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//77777777777757777777777777777777777777777777777777777777777777777777------------EEEE----------------------ѿѿѿѿ77777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777//////////////7777777777777777777777777777777777777777B|B|//777777777797777777777777777777777777777777777777777777777777777777------------EEEE----------------------ѿѿѿѿ77777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777//////////////7777777777777777777777777777777777777777B|B|//77777777776777777777777777777777777777777777777777777777777777777777----------------------------------ѿѿѿѿ777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|////77777777777777777777777777777777777777B|B|//77777777773|777777777777777777777777777777777777777777777777777777777----------------------------------ѿѿѿѿ777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|////77777777777777777777777777777777777777B|B|//7777777777A77777777777777777777777777777777777777777777777777777777777----------------------------------ѿѿѿѿ7777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//777777777777777777777777777777777777//7777777777㏀77777777777777777777777777777777777777777777777777777777777----------------------------------ѿѿѿѿ7777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//777777777777777777777777777777777777//7777777777R`k777777777777777777777777777777777777777777777777777--------------------------------------ѿѿѿѿ7777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//7777777777777777777777777777777777//7777777777777777777777777777777777777777777777777777777777777--------------------------------------ѿѿѿѿ7777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//7777777777777777777777777777777777//77777777778v77777777777777777777777777777|cP|cP|cP|cPDDDDDDDDDDDD|cP|cP|cP|cP7777777777777777777777----------------------------------777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//77777777777777777777777777777777//7777777777;!:77777777777777777777777777777|cP|cP|cP|cPDDDDDDDDDDDD|cP|cP|cP|cP7777777777777777777777----------------------------------777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//77777777777777777777777777777777//77777777778777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777--------------------------7777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//7777777777777777777777777777//77777777774777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777--------------------------7777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//7777777777777777777777777777//7777777777;777777777777777777777777777|cP|cP|cP|cP7777777777777777777777777777----------------------777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|////7777777777777777777777//B|B|777777777777777777777777777777777777777|cP|cP|cP|cP7777777777777777777777777777----------------------777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|////7777777777777777777777//B|B|777777777777ӏ77777777777777777777777777777777777777777777777777777777777--------------77777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP7777777777777777777777777777777777777777777777LLLL777777777777777777777777777777777777B|B|B|B|////77777777777777//B|B|77777777777777%+777777777777777777777777777777777777777777777777777777777777--------------77777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP7777777777777777777777777777777777777777777777LLLL777777777777777777777777777777777777B|B|B|B|////77777777777777//B|B|77777777777777JOc777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777------777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPó7777777777777777777777777777777777777777777777LLLL7777LLLL777777777777777777777777777777777777B|B|B|B|////////B|B|77777777777777779~777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777------777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPó7777777777777777777777777777777777777777777777LLLL7777LLLL777777777777777777777777777777777777B|B|B|B|////////B|B|7777777777777777a~777777777777777777777777777|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777LLLL777777777777LLLL777777777777777777777777777777777777B|B|B|B|//////////////B|B|B|B|7777777777777777775777777777777777777777777777|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777LLLL777777777777LLLL777777777777777777777777777777777777B|B|B|B|//////////////B|B|B|B|777777777777777777-%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777LLLL77777777777777777777LLLL777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777LLLL77777777777777777777LLLL777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|7777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP7777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777LLLL7777777777777777777777777777LLLL77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP7777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777LLLL7777777777777777777777777777LLLL77777777777777777777777777777777777777777777777777777777777777777777p777777777777777777777777777|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777LLLL7777777777777777777777777777LLLL777777777777777777777777777777777777777777777777777777777777777777777777p777777777777777777777777777|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777LLLL7777777777777777777777777777LLLL777777777777777777777777777777777777777777777777777777777777777777777777w777777777777777777777777777ӽӽӽӽ|cP|cPӽӽӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777LLLL7777LLLL77LL7777777777777777LLLL777777777777ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777778{777777777777777777777777777ӽӽӽӽ|cP|cPӽӽӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777LLLL7777LLLL77LL7777777777777777LLLL777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777277777777777777777777777777777ӽӽӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777LLLL7777LLLL7777LL77LL7777777777LLLL7777LLLLLL77ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777r}77777777777777777777777777777ӽӽӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777LLLL7777LLLL7777LL77LL7777777777LLLL7777LLLLLL77ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777叀77777777777777777777777777777ӽӽ|cP|cPӽӽ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777777777LL77777777LLLL7777LLLL7777ѿѿLLLL7777ѿѿ))))))))))))ѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777ӽӽ|cP|cPӽӽ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777777777LL77777777LLLL7777LLLL7777ѿѿLLLL7777ѿѿ))))))))))))ѿѿ777777777777777777777777777777777777777777777777777777ُ77777777777777777777777777777ӽӽ|cP|cPӽӽ7777777777777777777777777777777777777777ѿѿѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL77777777777777777777LLLL7777LLLL7777ѿѿѿѿ777777ѿѿ))))))))))))))))))))))))))))))))))))ѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777ӽӽ|cP|cPӽӽ7777777777777777777777777777777777777777ѿѿѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL77777777777777777777LLLL7777LLLL7777ѿѿѿѿ777777ѿѿ))))))))))))))))))))))))))))))))))))ѿѿ77777777777777777777777777777777777777777777777777t777777777777777MMMMMMMMӽӽӽӽӽӽ77777777777777777777777777777777777777ѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL777777777777LLLL7777LLLL7777ѿѿѿѿ77777777))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))77LL77777777777777777777777777777777777777777777777777777777777MMMMMMMMӽӽӽӽӽӽ77777777777777777777777777777777777777ѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL777777777777LLLL7777LLLL7777ѿѿѿѿ77777777))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))77LL77777777777777777777777777777777777777777777Bft777777777MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMhhMMMM7777777777777777777777777777777777777777ѿѿѿѿttttѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777LLLL7777LLLL7777ѿѿѿѿ777777))))))))))))7777ѿѿ))))))))))))))))))))))))))))))))))))ѿѿ77777777LL77777777777777777777777777777777777777778777777777MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMhhMMMM7777777777777777777777777777777777777777ѿѿѿѿttttѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777LLLL7777LLLL7777ѿѿѿѿ777777))))))))))))7777ѿѿ))))))))))))))))))))))))))))))))))))ѿѿ77777777LL77777777777777777777777777777777777777777777777MMMM77777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777:V77777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+77777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/x77777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777I777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAA-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAA-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-*-*AA-*-*AA.*.*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-*-*AA-*-*AA.*.*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777AA@@-*-*AA@@AA-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777AA@@-*-*AA@@AA-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777CY7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*AA-*-*ѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)J7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*AA-*-*ѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿᏀ777777777777777777777777777777777777AAAA-*-*AAAAAA-*-*@@AA@@-*-*Ꮐ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿᏀ777777777777777777777777777777777777AAAA-*-*AAAAAA-*-*@@AA@@-*-*Ꮐ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ77777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA.*.*AA.*.*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ77777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA.*.*AA.*.*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AA@@@@.*.*AA@@AA-*-*AAAAAA.*.*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AA@@@@.*.*AA@@AA-*-*AAAAAA.*.*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777747777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*@@-*-*@@-*-*@@-*-*AA-*-*AA-*-*AA.*.*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*@@-*-*@@-*-*@@-*-*AA-*-*AA-*-*AA.*.*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@@@-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AA@@AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@@@-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AA@@AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777FN777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.*.*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*AA-*-*@@.*.*AA.*.*AA-*-*@@.*.*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.*.*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*AA-*-*@@.*.*AA.*.*AA-*-*@@.*.*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA-*-*AA@@AA@@@@AAAAAAAA@@@@-)-)@@AAAA-*-*AAAAAA-*-*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA-*-*AA@@AA@@@@AAAAAAAA@@@@-)-)@@AAAA-*-*AAAAAA-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777377777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAAAAAA@@AAAAAAAAAAAA@@AAAA.*.*AAAAAA-*-*@@AAAA.*.*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAAAAAA@@AAAAAAAAAAAA@@AAAA.*.*AAAAAA-*-*@@AAAA.*.*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777D7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*@@-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 47777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*@@-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAAAAAAAA@@AAAAAA@@AA@@AAAAAAAAAAAA-*-*AAAA@@-*-*AAAAAA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAAAAAAAA@@AAAAAA@@AA@@AAAAAAAAAAAA-*-*AAAA@@-*-*AAAAAA-*-*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*AA-*-*@@-*-*AA-*-*AA-*-*AA.*.*AA-*-*AA-*-*AA.*.*AA-*-*AA-*-*AA-*-*AA-*-*@@-*-*@@-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*AA-*-*@@-*-*AA-*-*AA-*-*AA.*.*AA-*-*AA-*-*AA.*.*AA-*-*AA-*-*AA-*-*AA-*-*@@-*-*@@-*-*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA@@AAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAAAAAA@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA@@AAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAAAAAA@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*@@@@AA-*-*AAAAAA-*-*AA@@AA-*-*@@AAAA-*-*AA@@AA-*-*AA-*-*AA-*-*AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*@@@@AA-*-*AAAAAA-*-*AA@@AA-*-*@@AAAA-*-*AA@@AA-*-*AA-*-*AA-*-*AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777R777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@@@AAAA@@AAAAAAAAAA@@AAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAA@@AAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@@@AAAA@@AAAAAAAAAA@@AAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAA@@AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AA@@AA-*-*@@AAAA.*.*@@AAAA.*.*AAAAAA-*-*AAAAAA-*-*@@AA@@-*-*@@@@AA-*-*AAAAAA.*.*AAAA@@-*-*AA-*-*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AA@@AA-*-*@@AAAA.*.*@@AAAA.*.*AAAAAA-*-*AAAAAA-*-*@@AA@@-*-*@@@@AA-*-*AAAAAA.*.*AAAA@@-*-*AA-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA@@AAAAAAAA@@AA@@AAAA@@AA@@AA@@@@AAAAAA@@AAAAAAAAAA@@AAAAAAAAAAAAAAAA@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777b҆77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA@@AAAAAAAA@@AA@@AAAA@@AA@@AA@@@@AAAAAA@@AAAAAAAAAA@@AAAAAAAAAAAAAAAA@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA.*.*AAAAAA-*-*@@AAAA-*-*AAAAAA-*-*AAAAAA-)-)AAAAAA-*-*AAAAAA.*.*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA.*.*AAAAAA-*-*@@AAAA-*-*AAAAAA-*-*AAAAAA-)-)AAAAAA-*-*AAAAAA.*.*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%D7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@@@AAAAAAAAAAAAAAAAAAAAAAAA@@@@AAAAAA@@@@@@AAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAA@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777I7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@@@AAAAAAAAAAAAAAAAAAAAAAAA@@@@AAAAAA@@@@@@AAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAA@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*@@@@AA-*-*AAAA@@-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AAAA@@-*-*@@AAAA-*-*AA@@AA-*-*AAAAAA-*-*AAAAAA.*.*AAAAAA.*.*AA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*@@@@AA-*-*AAAA@@-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AAAA@@-*-*@@AAAA-*-*AA@@AA-*-*AAAAAA-*-*AAAAAA.*.*AAAAAA.*.*AA@@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAA@@AA@@AAAAAAAAAAAA@@AAAA@@@@AAAAAAAAAAAAAA@@AAAAAAAAAAAA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAA@@AA@@AAAAAAAAAAAA@@AAAA@@@@AAAAAAAAAAAAAA@@AAAAAAAAAAAA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@-*-*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*AAAA@@-*-*AA@@AA-)-)@@AAAA-*-*AA@@AA-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*@@AA@@-*-*@@@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@-*-*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*AAAA@@-*-*AA@@AA-)-)@@AAAA-*-*AA@@AA-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*@@AA@@-*-*@@@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAA@@AAAAAAAA@@AAAAAAAA@@@@AAAAAAAA@@AAAAAA@@@@AA@@AAAAAA@@AA@@AA@@@@@@AAAA@@AAAAAAAA@@AAAAAA@@AA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777E77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAA@@AAAAAAAA@@AAAAAAAA@@@@AAAAAAAA@@AAAAAA@@@@AA@@AAAAAA@@AA@@AA@@@@@@AAAA@@AAAAAAAA@@AAAAAA@@AA@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA.*.*AAAAAA-*-*AAAAAA.*.*AAAAAA.*.*@@AAAAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAA-*-*AAAAAA-*-*AAAAAA.*.*AAAAAA-*-*AAAAAA-*-*AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA.*.*AAAAAA-*-*AAAAAA.*.*AAAAAA.*.*@@AAAAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAA-*-*AAAAAA-*-*AAAAAA.*.*AAAAAA-*-*AAAAAA-*-*AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@@@@@AAAA@@AAAAAA@@@@AAAAAA@@@@AA@@@@AAAA@@AA@@AAAAAAAAAA@@@@AAAA@@AAAA@@AAAAAAAAAAAA@@@@@@AAAA@@AA@@AAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@@@@@AAAA@@AAAAAA@@@@AAAAAA@@@@AA@@@@AAAA@@AA@@AAAAAAAAAA@@@@AAAA@@AAAA@@AAAAAAAAAAAA@@@@@@AAAA@@AA@@AAAAAAAAAAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA-*-*@@AAAAAAAAAAAAAAAA@@@@AAAA@@@@AA@@AAAAAA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAAAA-*-*AA@@AA-*-*AAAA@@-*-*AA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA-*-*@@AAAAAAAAAAAAAAAA@@@@AAAA@@@@AA@@AAAAAA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAAAA-*-*AA@@AA-*-*AAAA@@-*-*AA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@AAAA@@AAAAAA@@@@AAAA@@AA@@AAAAAA@@AAAAAAAAAA@@AAAA@@AAAAAAAA@@AAAA@@AAAAAAAAAA@@@@@@@@AAAAAAAAAAAAAAAAAAAAAA@@@@AAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@AAAA@@AAAAAA@@@@AAAA@@AA@@AAAAAA@@AAAAAAAAAA@@AAAA@@AAAAAAAA@@AAAA@@AAAAAAAAAA@@@@@@@@AAAAAAAAAAAAAAAAAAAAAA@@@@AAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Gax7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA.*.*@@AAAAAAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAAAAAAAA@@AAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AA@@@@AAAA.*.*AAAA@@-*-*@@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA.*.*@@AAAAAAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAAAAAAAA@@AAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AA@@@@AAAA.*.*AAAA@@-*-*@@AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@@@AAAAAAAAAA@@AAAAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAA@@AAAAAA@@@@AAAAAAAAAAAAAA@@AAAAAA@@@@@@@@@@AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@@@AAAAAAAAAA@@AAAAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAA@@AAAAAA@@@@AAAAAAAAAAAAAA@@AAAAAA@@@@@@@@@@AAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA.*.*AA@@AAAAAAAA@@AAAAAAAAAAAAAA@@AAAAAAAAAAAAAA@@AAAAAA@@AAAAAA@@AA@@@@AAAAAAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAAAAAA@@AAAAAA-*-*@@AAAA-*-*AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA.*.*AA@@AAAAAAAA@@AAAAAAAAAAAAAA@@AAAAAAAAAAAAAA@@AAAAAA@@AAAAAA@@AA@@@@AAAAAAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAAAAAA@@AAAAAA-*-*@@AAAA-*-*AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAAAAAAAA@@AA@@AA@@AAAAAA@@AAAAAAAAAAAAAAAA@@@@AAAAAA@@AAAAAAAAAAAAAAAA@@AA@@AAAAAAAAAA@@AAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAAAAAAAA@@AA@@AA@@AAAAAA@@AAAAAAAAAAAAAAAA@@@@AAAAAA@@AAAAAAAAAAAAAAAA@@AA@@AAAAAAAAAA@@AAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777577777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA-*-*AAAAAAAAAAAAAA@@@@AA@@AAAAAAAAAAAA@@@@AAAAAAAAAA@@@@@@@@AAAA@@AAAAAAAAAA@@AAAA@@AA@@AAAA@@AAAA@@@@AA@@@@AAAAAA@@@@AAAA@@AAAAAA-*-*AAAAAA.*.*AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777477777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA-*-*AAAAAAAAAAAAAA@@@@AA@@AAAAAAAAAAAA@@@@AAAAAAAAAA@@@@@@@@AAAA@@AAAAAAAAAA@@AAAA@@AA@@AAAA@@AAAA@@@@AA@@@@AAAAAA@@@@AAAA@@AAAAAA-*-*AAAAAA.*.*AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAA@@@@AAAAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAAAAAAAA@@@@@@AAAA@@AAAA@@AA@@@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAA@@@@AAAAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAAAAAAAA@@@@@@AAAA@@AAAA@@AA@@@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777727777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAAAAAAAAAA@@AAAAAAAAAAAAAA@@AA@@AAAAAAAA@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAAAA@@AAAAAAAAAAAA@@@@AAAAAAAAAA@@AAAA@@@@@@@@AA@@AA-*-*AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAAAAAAAAAA@@AAAAAAAAAAAAAA@@AA@@AAAAAAAA@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAAAA@@AAAAAAAAAAAA@@@@AAAAAAAAAA@@AAAA@@@@@@@@AA@@AA-*-*AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAA@@AAAAAAAAAA@@AAAAAAAAAAAAAAAAAA@@@@AA@@AAAAAAAA@@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAA@@AAAAAAAAAA@@AAAAAAAAAAAAAAAAAA@@@@AA@@AAAAAAAA@@AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 37777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA@@@@AAAAAA@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAA@@AA@@@@@@AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777C7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA@@@@AAAAAA@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAA@@AA@@@@@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777757777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAAAAAA@@AAAAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAAAAAAAA@@@@AA@@@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G~7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAAAAAA@@AAAAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAAAAAAAA@@@@AA@@@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AA@@AAAAAAAAAA@@@@@@AA@@AAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777E~7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AA@@AAAAAAAAAA@@@@@@AA@@AAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA@@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@,,@@AAAA,,AAAAAA,,AAAAAA,,@@AAAA,,AAAAAA,,AAAA@@,,AAAAAAAAAA@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@,,@@AAAA,,AAAAAA,,AAAAAA,,@@AAAA,,AAAAAA,,AAAA@@,,AAAAAAAAAA@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAA@@AAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777767777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAA@@AAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAA@@,,@@AAAA,,AA--AA,,@@,,AA,,AA--AA--AAAA@@--@@@@AAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779{7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAA@@,,@@AAAA,,AA--AA,,@@,,AA,,AA--AA--AAAA@@--@@@@AAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ϗ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAA@@AAAAAAAAAAAA@@AAAAAAAAAA@@AA@@AAAAAAAAAAAA@@@@AAAA@@AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ï7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAA@@AAAAAAAAAAAA@@AAAAAAAAAA@@AA@@AAAAAAAAAAAA@@@@AAAA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA,,@@@@AA,,AA,,AA,,AA,,AA--AA,,AA,,@@,,AA,,AA--AA,,AAAAAA,,AA@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA,,@@@@AA,,AA,,AA,,AA,,AA--AA,,AA,,@@,,AA,,AA--AA,,AAAAAA,,AA@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@AAAAAAAAAAAAAA@@AAAA,,AAAAAA,,AA@@AAAAAAAAAA@@@@AAAAAAAAAAAA@@@@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@AAAAAAAAAAAAAA@@AAAA,,AAAAAA,,AA@@AAAAAAAAAA@@@@AAAAAAAAAAAA@@@@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777757777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA--AA,,@@--@@,,AA,,AA,,AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)U7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA--AA,,@@--@@,,AA,,AA,,AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAA@@@@AAAA@@AAAA,,AA@@AA,,AAAA@@,,AAAA@@,,AAAAAA@@AAAAAA@@AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAA@@@@AAAA@@AAAA,,AA@@AA,,AAAA@@,,AAAA@@,,AAAAAA@@AAAAAA@@AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777--@@,,AA,,AA,,AA,,@@--AA,,AA,,@@--AA,,AA,,AA,,@@,,AA,,AA--AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777--@@,,AA,,AA,,AA,,@@--AA,,AA,,@@--AA,,AA,,AA,,@@,,AA,,AA--AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAA@@AAAAAAAA,,@@AAAA,,@@AAAA,,AAAAAA,,AAAAAA,,AAAAAA@@AAAAAA@@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAA@@AAAAAAAA,,@@AAAA,,@@AAAA,,AAAAAA,,AAAAAA,,AAAAAA@@AAAAAA@@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,@@,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777717777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,@@,,AA,,AA,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ŏ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA--AA@@@@--AA@@@@,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA--@@AA@@,,@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA--AA@@@@--AA@@@@,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA--@@AA@@,,@@AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777揀7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA--AA,,@@,,AA,,AA,,@@,,AA--AA,,AA,,AA,,AA,,@@,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA--AA,,@@,,AA,,AA,,@@,,AA--AA,,AA,,AA,,AA,,@@,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@,,AAAA@@,,AAAAAA,,AAAAAA,,AA@@@@--AAAAAA,,AA@@@@,,AAAAAA,,AA@@AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@,,AAAA@@,,AAAAAA,,AAAAAA,,AA@@@@--AAAAAA,,AA@@@@,,AAAAAA,,AA@@AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,AA,,AA,,@@--AA--AA,,@@,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777:7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,AA,,AA,,@@--AA--AA,,@@,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777~7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,@@@@AA,,AAAAAA--AA,,@@--@@AAAA,,@@@@AA,,AAAA@@,,@@AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,@@@@AA,,AAAAAA--AA,,@@--@@AAAA,,@@@@AA,,AAAA@@,,@@AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA--AA--AA,,AA,,AA--AA,,@@--@@,,AA--@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777H7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA--AA--AA,,AA,,AA--AA,,@@--@@,,AA--@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777揀7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA,,AA--@@--AA--@@,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777;7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA,,AA--@@--AA--@@,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,@@,,AA77777777777777777777777777777777777777777777777777777777777777я7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,@@,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA--777777777777777777777777777777齯777777777777777777777747777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA--777777777777777777777777777777齯7777777777777777777777u7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,@@,,AA--AA,,@@,,AA,,AA,,AA,,@@777777777777777777777777齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,@@,,AA--AA,,@@,,AA,,AA,,AA,,@@777777777777777777777777齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA--AA--@@,,AA,,AA,,@@,,AA,,AA--AA,,AA--777777777777777777齯a^\a^\77777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA--AA--@@,,AA,,AA,,@@,,AA,,AA--AA,,AA--777777777777777777齯a^\a^\777777777777777777%7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@,,@@,,AA,,AA,,AA--@@,,AA--AA,,AA7777777777齯a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@,,@@,,AA,,AA,,AA--@@,,AA--AA,,AA7777777777齯a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@,,@@--AA--AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777齯a^\a^\777777777777770O/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@,,@@--AA--AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777齯a^\a^\77777777777777A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA,,AA,,AA,,AA,,齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA,,AA,,AA,,AA,,齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA,,AA--@@--AA--齯77777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA,,AA--@@--AA--齯777777777777(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,AA齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,AA齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,@@--@@,,AA,,AA齯777777777777ٮ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,@@--@@,,AA,,AA齯777777777777Դ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,齯777777777777V 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA-- I I I I I I I I齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA-- I I I I I I I I齯77777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA I I I Immmmmmmm I I齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA I I I Immmmmmmm I I齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@ I Immmm88888888mm I I齯a^\a^\777777777777b77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@ I Immmm88888888mm I I齯a^\a^\777777777777`7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA-- I Imm88888888888888mm I I齯a^\a^\77777777777717777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA-- I Imm88888888888888mm I I齯a^\a^\777777777777[7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,, I Imm88888888888888mm I I齯a^\a^\777777777777䏀7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,, I Imm88888888888888mm I I齯a^\a^\777777777777ory7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I Imm8888888888888888mm I I齯a^\a^\77777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I Imm8888888888888888mm I I齯a^\a^\777777777777ˏ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I I I I I I I I I I I I I I I IGG88888888888888GG I I齯a^\a^\777777777777,)"7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I I I I I I I I I I I I I I I IGG88888888888888GG I I齯a^\a^\777777777777$7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmmmmmmmmmmmmmm I I I I I I I IGG88888888888888GG I I齯a^\a^\777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmmmmmmmmmmmmmm I I I I I I I IGG88888888888888GG I I齯a^\a^\777777777777877777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmm8888888888888888mmmmmm I I I IGG88888888GGGG I I齯a^\a^\777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmm8888888888888888mmmmmm I I I IGG88888888GGGG I I齯a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmm8888GG88GG8888888888888888mm I I I IGGGGGGGG I I I I齯a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmm8888GG88GG8888888888888888mm I I I IGGGGGGGG I I I I齯a^\a^\777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777700 I Immmm888888GG88GG88GG8888888888888888mm I I I I I I I I I I齯齯齯齯a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700 I Immmm888888GG88GG88GG8888888888888888mm I I I I I I I I I I齯齯齯齯a^\a^\777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777700####00 I Imm888888888888GG88GG88888888888888888888mm I I齯齯齯齯a^\a^\777777777777j77777777777777777777777777777777777777777777777777777777777777777777777777777777700####00 I Imm888888888888GG88GG88888888888888888888mm I I齯齯齯齯a^\a^\777777777777b777777777777777777777777777777777777777777777777777777777777777777777777700 I Imm888888888888GG88GG88GG88888888888888888888mm I I齯齯齯齯_y_ya^\a^\7777777777778777777777777777777777777777777777777777777777777777777777777777777777777700 I Imm888888888888GG88GG88GG88888888888888888888mm I I齯齯齯齯_y_ya^\a^\777777777777:7777777777777777777777777777777777777777777777777777777777777777777 I Imm8888888888888888GG88GG8888888888888888888888mm I I齯齯齯齯齯_y_y777777777777~7777777777777777777777777777777777777777777777777777777777777777777 I Imm8888888888888888GG88GG8888888888888888888888mm I I齯齯齯齯齯_y_y777777777777Ǐ7777777777777777777777777777777777777777777777777777777777788mmmm I Imm8888888888888888888888888888888888888888888888mm I I齯齯齯齯齯_y_y齯777777777777.7777777777777777777777777777777777777777777777777777777777788mmmm I Imm8888888888888888888888888888888888888888888888mm I I齯齯齯齯齯_y_y齯7777777777777777777777777777777777777777777777777777777777777777777888888888888mm I Imm8888888888888888888888888888888888888888888888mmmm I I齯齯齯齯_y_y齯齯777777777777[7777777777777777777777777777777777777777777777777777777888888888888mm I Imm8888888888888888888888888888888888888888888888mmmm I I齯齯齯齯_y_y齯齯77777777777777777777777777777777777777777777777777777777777777788888888888888888888mm I Imm88888888888888888888 I I I I I I I I8888888888GG88GG888888mm I I齯齯齯齯齯齯齯齯777777777777477777777777777777777777777777777777777777777777777788888888888888888888mm I Imm88888888888888888888 I I I I I I I I8888888888GG88GG888888mm I I齯齯齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777778888888888888888GG88GG88GG88mm I Imm888888888888888888 I I I Immmmmmmm I I888888GG88GG88GG8888mm I I齯齯齯齯齯齯齯齯齯777777777777Ȗe777777777777777777777777777777777777777777777778888888888888888GG88GG88GG88mm I Imm888888888888888888 I I I Immmmmmmm I I888888GG88GG88GG8888mm I I齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777778888888888888888GG88GG88GG88GG8888mm I Imm8888888888888888 I Immmm88888888mm I I888888GG88GG888888mm I I齯齯齯齯齯齯齯齯齯777777777777؏77777777777777777777777777777777777777777778888888888888888GG88GG88GG88GG8888mm I Imm8888888888888888 I Immmm88888888mm I I888888GG88GG888888mm I I齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777_y_y88888888888888GG88GG88GG88GG88GG88GG88GG88mm I Imm8888888888888888 I Imm88888888888888mm I I88GG88GG88GG8888mm I I齯齯齯齯_y_y齯齯齯齯齯77777777777777777777777777777777777777777777777777777_y_y88888888888888GG88GG88GG88GG88GG88GG88GG88mm I Imm8888888888888888 I Imm88888888888888mm I I88GG88GG88GG8888mm I I齯齯齯齯_y_y齯齯齯齯齯777777777777 777777777777777777777777777777777777777_y_y8888888888888888GG88GG88GG88GG88GG88GG88GG88GG8888mm I I888888888888888888 I I8888888888888888GG I I8888GG88GG888888mm I I齯齯齯齯_y_y齯齯齯齯齯777777777777 777777777777777777777777777777777777777_y_y8888888888888888GG88GG88GG88GG88GG88GG88GG88GG8888mm I I888888888888888888 I I8888888888888888GG I I8888GG88GG888888mm I I齯齯齯齯_y_y齯齯齯齯齯77777777777787777777777777777777777777777777777777_y_y8888888888888888888888GG88GG88GG88GG88GG88GG88GG88GG88GG88mm I I8888888888888888 I IGG8888888888888888GG I I8888888888888888mm I I齯齯齯齯_y_y齯齯齯齯齯齯777777777777mZ7777777777777777777777777777777777777_y_y8888888888888888888888GG88GG88GG88GG88GG88GG88GG88GG88GG88mm I I8888888888888888 I IGG8888888888888888GG I I8888888888888888mm I I齯齯齯齯_y_y齯齯齯齯齯齯7777777777777777777777777777777777777777777777777_y_y88888888888888888888888888GG88GG88GG88GG88GG88GG88GG88GG88GG8888mm I IGG8888GG88GG888888 I IGG88888888888888GG I Imm8888888888888888 I I齯齯齯齯齯齯齯齯齯齯齯齯777777777777{{7777777777777777777777777777777777777_y_y88888888888888888888888888GG88GG88GG88GG88GG88GG88GG88GG88GG8888mm I IGG8888GG88GG888888 I IGG88888888888888GG I Imm8888888888888888 I I齯齯齯齯齯齯齯齯齯齯齯齯777777777777揀77777777777777777777777777777777777_y_y888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88mm I IGG88GG88GG88GG8888 I IGG88888888888888GG I Imm8888888888888888 I I齯齯齯齯齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777_y_y888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88mm I IGG88GG88GG88GG8888 I IGG88888888888888GG I Imm8888888888888888 I I齯齯齯齯齯齯齯齯齯齯齯齯齯777777777777777777777777777777777777777777777_y_y888888888888888888888888888888888888&&&&&&&&&&&&88GG88GG88GG88GG88GG88GG88GG88GG88GG&&&&&&88mm I IGG8888GG88GG888888mm I IGG88888888GGGG I Imm888888888888888888 I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯777777777777&777777777777777777777777777777777_y_y888888888888888888888888888888888888&&&&&&&&&&&&88GG88GG88GG88GG88GG88GG88GG88GG88GG&&&&&&88mm I IGG8888GG88GG888888mm I IGG88888888GGGG I Imm888888888888888888 I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯777777777777(777777777777777777777777777777777_y_y888888888888888888888888888888888888888888888888&&&&&&88GG88GG88GG88GG88GG88GG88&&&&&&88&&&&&&&&&&&&GG88mm I IGG88GG88GG88GG888888mm I IGGGGGGGG I I I Imm8888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777$777777777777777777777777777777777_y_y888888888888888888888888888888888888888888888888&&&&&&88GG88GG88GG88GG88GG88GG88&&&&&&88&&&&&&&&&&&&GG88mm I IGG88GG88GG88GG888888mm I IGGGGGGGG I I I Imm8888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_y888888888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88GG88GG88GG88&&&&&&88GG&&&&&&GG88&&&&&&88GG88GG8888mm I IGG8888GG88GG8888888888mm I I I I I I I Immmm888888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777쏀7777777777777777777777777777777_y_y888888888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88GG88GG88GG88&&&&&&88GG&&&&&&GG88&&&&&&88GG88GG8888mm I IGG8888GG88GG8888888888mm I I I I I I I Immmm888888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_y888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888888888&&&&&&&&&&&&888888&&&&&&&&&&&&GG88GG88&&&&&&88GG&&&&&&GG&&&&&&GG&&&&&&GG88GG88mm I IGG8888888888888888888888mmmmmmmm88888888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y77777777777777?7777777777777777777777777777777_y_y888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888888888&&&&&&&&&&&&888888&&&&&&&&&&&&GG88GG88&&&&&&88GG&&&&&&GG&&&&&&GG&&&&&&GG88GG88mm I IGG8888888888888888888888mmmmmmmm88888888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y77777777777777Ï77777777777777777777777777777_y_ymm88888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88888888&&&&&&&&&&&&888888888888GG&&&&&&GG&&&&&&GG&&&&&&GG88&&&&&&88GG&&&&&&GG&&&&&&GG8888mm I IGG888888888888888888888888888888888888888888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y77777777777777쏀77777777777777777777777777777_y_ymm88888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88888888&&&&&&&&&&&&888888888888GG&&&&&&GG&&&&&&GG&&&&&&GG88&&&&&&88GG&&&&&&GG&&&&&&GG8888mm I IGG888888888888888888888888888888888888888888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y77777777777777 777777777777777777777777777_y_ymm888888888888888888888888&&&&&&8888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&888888888888&&&&&&&&&&&&88&&&&&&88&&&&&&88GG88GG88GG&&&&&&GG88GG88mm I IGG8888888888888888888888GG88GG88GG8888888888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777I777777777777777777777777777_y_ymm888888888888888888888888&&&&&&8888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&888888888888&&&&&&&&&&&&88&&&&&&88&&&&&&88GG88GG88GG&&&&&&GG88GG88mm I IGG8888888888888888888888GG88GG88GG8888888888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_ymm888888888888888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888&&&&&&&&&&&&8888GG88GG88GG88GG88GG88GG88GG8888mm I IGG888888888888888888GG88GG88GG8888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_ymm888888888888888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888&&&&&&&&&&&&8888GG88GG88GG88GG88GG88GG88GG8888mm I IGG888888888888888888GG88GG88GG8888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777_y_ymm888888888888GG88GG&&&&&&GG88GG&&&&&&GG88GG88GG88888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888888888888888GG88GG88GG88GG8888888888mm I IGG88888888888888888888GG88GG88GG888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777ɏ7777777777777777777777777_y_ymm888888888888GG88GG&&&&&&GG88GG&&&&&&GG88GG88GG88888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888888888888888GG88GG88GG88GG8888888888mm I IGG88888888888888888888GG88GG88GG888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777577777777777777777777777_y_ymm888888GG88GG88GG88GG&&&&&&&&&&&&&&&&&&GG&&&&&&&&&&&&&&&&&&GG88GG88GG888888&&&&&&&&&&&&&&&&&&&&&&&&88888888888888888888888888888888888888mm I IGG8888888888888888GG88GG88GG888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777_y_ymm888888GG88GG88GG88GG&&&&&&&&&&&&&&&&&&GG&&&&&&&&&&&&&&&&&&GG88GG88GG888888&&&&&&&&&&&&&&&&&&&&&&&&88888888888888888888888888888888888888mm I IGG8888888888888888GG88GG88GG888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777_y_ymm8888GG88GG88GG88GG&&&&&&&&&&&&&&&&&&GG&&&&&&GG88GG&&&&&&&&&&&&&&&&&&GG88GG88GG88GG&&&&&&&&&&&&&&&&&&888888888888888888888888888888888888mm I IGG8888888888888888GG88GG8888888888GGGG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777N77777777777777777777777_y_ymm8888GG88GG88GG88GG&&&&&&&&&&&&&&&&&&GG&&&&&&GG88GG&&&&&&&&&&&&&&&&&&GG88GG88GG88GG&&&&&&&&&&&&&&&&&&888888888888888888888888888888888888mm I IGG8888888888888888GG88GG8888888888GGGG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777_y_ymm88&&&&&&88GG88GG88GG&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88GG88&&&&&&88888888&&&&&&8888&&&&&&88888888888888888888mm I IGG88888888888888888888888888GGGG I I I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_ymm88&&&&&&88GG88GG88GG&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88GG88&&&&&&88888888&&&&&&8888&&&&&&88888888888888888888mm I IGG88888888888888888888888888GGGG I I I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777쏀777777777777777777777_y_ymm88&&&&&&GG88GG88GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88&&&&&&88GG88&&&&&&88GG88&&&&&&&&&&&&GG88GG88GG&&&&&&88&&&&&&8888&&&&&&8888&&&&&&88888888888888888888mm I IGGGG888888888888888888GGGG I I I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777돀777777777777777777777_y_ymm88&&&&&&GG88GG88GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88&&&&&&88GG88&&&&&&88GG88&&&&&&&&&&&&GG88GG88GG&&&&&&88&&&&&&8888&&&&&&8888&&&&&&88888888888888888888mm I IGGGG888888888888888888GGGG I I I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777叀7777777777777777777_y_ymm88GG&&&&&&GG88GG88GG&&&&&&GG&&&&&&&&&&&&88GG&&&&&&GG88GG&&&&&&GG&&&&&&GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88&&&&&&8888&&&&&&8888&&&&&&88888888888888888888mm I I I IGGGGGGGGGGGGGGGGGG I I I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777797777777777777777777_y_ymm88GG&&&&&&GG88GG88GG&&&&&&GG&&&&&&&&&&&&88GG&&&&&&GG88GG&&&&&&GG&&&&&&GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88&&&&&&8888&&&&&&8888&&&&&&88888888888888888888mm I I I IGGGGGGGGGGGGGGGGGG I I I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777_y_ymm8888&&&&&&88GG88GG88GG&&&&&&GG88GG&&&&&&GG&&&&&&GG88GG88&&&&&&88GG&&&&&&GG88GG88GG88&&&&&&888888&&&&&&8888&&&&&&88888888888888888888mm I I I I I I I I I I I I I I I I I I齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777_y_ymm8888&&&&&&88GG88GG88GG&&&&&&GG88GG&&&&&&GG&&&&&&GG88GG88&&&&&&88GG&&&&&&GG88GG88GG88&&&&&&888888&&&&&&8888&&&&&&88888888888888888888mm I I I I I I I I I I I I I I I I I I齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_ymm88GG88&&&&&&88GG88GG88GG&&&&&&&&&&&&&&&&&&GG88GG&&&&&&&&&&&&88GG88GG88&&&&&&88GG88GG88GG88GG88&&&&&&8888&&&&&&8888888888888888888888mm齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_ymm88GG88&&&&&&88GG88GG88GG&&&&&&&&&&&&&&&&&&GG88GG&&&&&&&&&&&&88GG88GG88&&&&&&88GG88GG88GG88GG88&&&&&&8888&&&&&&8888888888888888888888mm齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777ꏀ777777777777777_y_ymm8888GG&&&&&&GG88GG88GG88GG88GG88GG88&&&&&&88&&&&&&&&&&&&GG88GG&&&&&&GG88GG88GG88GG88&&&&&&888888&&&&&&8888888888888888888888mm齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777菀777777777777777_y_ymm8888GG&&&&&&GG88GG88GG88GG88GG88GG88&&&&&&88&&&&&&&&&&&&GG88GG&&&&&&GG88GG88GG88GG88&&&&&&888888&&&&&&8888888888888888888888mm齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777_y_ymm88GG88GG&&&&&&GG88GG88GG88GG88GG88&&&&&&&&&&&&GG88GG&&&&&&&&&&&&&&&&&&GG88GG88GG88GG88GG888888&&&&&&88888888888888GGGG888888_y_y齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777鏀7777777777777_y_ymm88GG88GG&&&&&&GG88GG88GG88GG88GG88&&&&&&&&&&&&GG88GG&&&&&&&&&&&&&&&&&&GG88GG88GG88GG88GG888888&&&&&&88888888888888GGGG888888_y_y齯齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777797777777777777_y_y齯齯mm8888GG88GG&&&&&&GG88GG88GG88GG88&&&&&&88GG88GG88GG&&&&&&GG88GG88GG88GG88GG888888&&&&&&88888888GGGGGGGG8888888888齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_y齯齯mm8888GG88GG&&&&&&GG88GG88GG88GG88&&&&&&88GG88GG88GG&&&&&&GG88GG88GG88GG88GG888888&&&&&&88888888GGGGGGGG8888888888齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777_y_y齯齯齯mm88GG88GG88GG&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88&&&&&&&&&&&&GG88GG88GG88GG88GG88GG888888GGGGGGGG8888888888888888齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_y齯齯齯mm88GG88GG88GG&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88&&&&&&&&&&&&GG88GG88GG88GG88GG88GG888888GGGGGGGG8888888888888888齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777쏀77777777777_y_y齯齯齯齯齯mm8888GG88GG88GG&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88GG88GG88GG88GG88GGGGGG888888888888888888齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777鏀77777777777_y_y齯齯齯齯齯mm8888GG88GG88GG&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88GG88GG88GG88GG88GGGGGG888888888888888888齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯mm88GG88GG88GG88GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88GG88GG88GG88GG88GGGGGGGGGG8888888888888888齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777돀77777777777_y_y齯齯齯齯齯齯mm88GG88GG88GG88GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88GG88GG88GG88GG88GGGGGGGGGG8888888888888888齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777770}7777777777777_y_y齯齯齯齯齯齯齯mm8888GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GGGGGGGG8888888888888888齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777797777777777777_y_y齯齯齯齯齯齯齯mm8888GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GGGGGGGG8888888888888888齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm88GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GGGGGG8888888888888888齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777揀777777777777777_y_y齯齯齯齯齯齯齯mm88GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GGGGGG8888888888888888齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯mm8888GG88GG88GG88GG88GG88GG88GG88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯mm8888GG88GG88GG88GG88GG88GG88GG88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯mm88GG88GG88GG88GG88GG88GG8888GGGGGG8888888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯齯_y_y77777777777777777777777777777777777777叀77777777777777777_y_y齯齯齯齯齯齯mm88GG88GG88GG88GG88GG88GG8888GGGGGG8888888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯齯_y_y77777777777777777777777777777777777777.w7777777777777777777_y_y齯齯齯齯齯齯mm8888GG88GG88GG88GG88GGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777797777777777777777777_y_y齯齯齯齯齯齯mm8888GG88GG88GG88GG88GGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777797777777777777777777_y_y齯齯齯齯齯齯齯mm88GG88GG88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777777J7777777777777777777_y_y齯齯齯齯齯齯齯mm88GG88GG88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777777쏀777777777777777777777_y_y齯齯齯齯齯齯齯mm88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y7777777777777777777777777777777777777777778<=777777777777777777777_y_y齯齯齯齯齯齯齯mm88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777777揀77777777777777777777777_y_y齯齯齯齯齯齯齯mm88888888888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y77777777777777777777777777777777777777777777쏀77777777777777777777777_y_y齯齯齯齯齯齯齯mm88888888888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y77777777777777777777777777777777777777777777D7777777777777777777777777_y_y齯齯齯齯齯齯齯mm888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯_y_y777777777777777777777777777777777777777777777797777777777777777777777777_y_y齯齯齯齯齯齯齯mm888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯_y_y777777777777777777777777777777777777777777777797777777777777777777777777_y_y齯齯齯齯齯齯mm8888齯a^\a^\a^\a^\a^\a^\齯齯齯77777777777777777777777777777777777777777777777797777777777777777777777777_y_y齯齯齯齯齯齯mm8888齯a^\a^\a^\a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777777772~777777777777777777777777777_y_y齯齯齯齯齯齯齯a^\a^\a^\a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯a^\a^\a^\a^\a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯a^\a^\a^\a^\a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯a^\a^\a^\a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777777777777777777&o~77777777777777777777777777777_y_y齯齯齯齯齯齯齯a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777;77777777777777777777777777777_y_y齯齯齯齯齯齯齯a^\a^\齯齯齯77777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777я777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777_y_y齯齯齯齯齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777_y_y齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777_y_y齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777_y_y齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777_y_y齯齯齯齯齯a^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777_y_y齯齯齯齯齯a^\a^\a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777_y_y齯齯齯齯齯a^\a^\a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯a^\a^\a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770j77777777777777777777777777777777777777777_y_y齯齯齯齯a^\a^\a^\a^\a^\a^\齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777277777777777777777777777777777777777777777_y_y齯齯齯齯a^\a^\a^\a^\a^\a^\齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777_y_y齯齯齯a^\a^\a^\a^\a^\a^\齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777_y_y齯齯齯a^\a^\a^\a^\a^\a^\齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777_y_y_y_y齯a^\a^\a^\a^\a^\a^\齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777_y_y_y_y齯a^\a^\a^\a^\a^\a^\齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777_y_y齯a^\a^\a^\a^\a^\a^\齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777_y_y齯a^\a^\a^\a^\a^\a^\齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?77777777777777777777777777777777777777777777777齯a^\a^\a^\a^\a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Z77777777777777777777777777777777777777777777777齯a^\a^\a^\a^\a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777k7777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776I/7777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777]1777777777777777777777777777777777777777777777777777a^\a^\齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777a^\a^\齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ҏ7777777777777777777777777777777777777777777777777777777齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Z7777777777777777777777777777777777777777777777777777777齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777O77777777777777777777777777777777777777777777777777777777777齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777y7777777777777777777777777777777777777777777777777777777777777齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)7777777777777777777777777777777777777777777777777777777777777齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+877777777777777777777777777777777777777777777777777777777777777777齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ǐ77777777777777777777777777777777777777777777777777777777777777777齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777V77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777z77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,ˋ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777̏77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ԯ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ly7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777͏7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ۏe77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿtttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777////B|B|B|B|B|B|B|B|B|B|777777777777777777777777777777777777777777777777777777777777777>77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//B|B|777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//B|B|7777777777777777777777777777777777777777777777777777777777777777777777777м7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//777777777777777777777777777777777777777777777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//77777777777777777777777777777777777777777777777777777777777777777777777777797777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//777777777777777777777777777777777777777777777777777777777777777777777777777ý7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//777777777777777777777777777777777777777777777777777777777777777777777777777a777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777//777777777777777777777777777777777777777777777777777777777777777777777777777m;777777777777777777777777777777777777777ѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//77777777777777777777777777777777777777777777777777777777777777777777777I=777777777777777777777777777777777777777ѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//77777777777777777777777777777777777777777777777777777777777777777777777=77777777777777777777777777777777777ѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|////7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|////777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//////7777777777777777777777777777777777777m>7777777777777777777777777777777ѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//////7777777777777777777777777777777777777>777777777777777777777777777ѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|////////////////////////////7777777777777777777777777777777㽏777777777777777777777777777ѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|////////////////////////////7777777777777777777777777777777>77777777777777777777777ѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|//////777777777777777777777777777^77777777777777777777777ѿѿѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|B|//////777777777777777777777777777>7777777777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|////7777777777777777777777777j>7777777777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|////7777777777777777777777777=777777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//77777777777777777777777=777777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//77777777777777777777777>77777777777ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//777777777777777777777H>77777777777ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//777777777777777777777W:777777777ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ó777777777777777777777777777777777777777777//////////////7777777777777777777777777777777777777777B|B|//7777777777777777777*>777777777ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ó777777777777777777777777777777777777777777//////////////7777777777777777777777777777777777777777B|B|//77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ó7777777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|////77777777777777777777777777777777777777B|B|//7777777777777777777J<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ó7777777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|////77777777777777777777777777777777777777B|B|//7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPó77777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//777777777777777777777777777777777777//7777777777777777777M777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cPó77777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//777777777777777777777777777777777777//7777777777777777777t7777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cPó777777777777777777777777777777777777777777777777777777777777777777777777B|B|//7777777777777777777777777777777777//77777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cPó777777777777777777777777777777777777777777777777777777777777777777777777B|B|//7777777777777777777777777777777777//7777777777777777777𽏀77777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ------ѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//77777777777777777777777777777777//7777777777777777777Ͻ77777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ------ѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//77777777777777777777777777777777//7777777777777777777=7777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ--------------ѿѿѿѿ777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//7777777777777777777777777777//7777777777777777777H7777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ--------------ѿѿѿѿ777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|//7777777777777777777777777777//7777777777777777777<77777777777777777-d-d-d-d-d-d7777777777777777777777777777777777777777ѿѿѿѿ------------------ѿѿѿѿ7777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|////7777777777777777777777//B|B|777777777777777777777977777777777777777-d-d-d-d-d-d7777777777777777777777777777777777777777ѿѿѿѿ------------------ѿѿѿѿ7777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|////7777777777777777777777//B|B|777777777777777777777 7777777777777-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777ѿѿѿѿ--------EEEE--------------ѿѿѿѿ77777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|////77777777777777//B|B|77777777777777777777777=7777777777777-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777ѿѿѿѿ--------EEEE--------------ѿѿѿѿ77777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|////77777777777777//B|B|77777777777777777777777*777777777-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d777777777777777777777777777777------------EEEE----------------------ѿѿѿѿ777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|////////B|B|7777777777777777777777777>777777777-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d777777777777777777777777777777------------EEEE----------------------ѿѿѿѿ777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|////////B|B|7777777777777777777777777Q77777-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d777777777777777777777777777777----------------------------------ѿѿѿѿ7777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//////////////B|B|B|B|777777777777777777777777777 >77777-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d777777777777777777777777777777----------------------------------ѿѿѿѿ7777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|//////////////B|B|B|B|777777777777777777777777777B>7-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777----------------------------------ѿѿѿѿ7777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|7777777777777777777777777777777<7-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777----------------------------------ѿѿѿѿ7777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|7777777777777777777777777777777ν-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777777777--------------------------------------ѿѿѿѿ777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ڼ-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777777777--------------------------------------ѿѿѿѿ777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d777777777777777777777777777777777777777777777777----------------------------------777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPó7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d777777777777777777777777777777777777777777777777----------------------------------777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPó7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777F>-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d77777777777777777777777777777777777777777777777777777777--------------------------77777777777777|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+>-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d77777777777777777777777777777777777777777777777777777777--------------------------77777777777777|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777777777777777777777777777777777----------------------777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777LLLL777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ľ-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777777777777777777777777777777777----------------------777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777LLLL777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<-d-d-d-d-dEEEE-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777777777777777777777777777777777777777--------------777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777LLLL7777LLLL77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-dEEEE-d-d-d-d-d-d-d-d-d-d-d-d-d-d7777777777777777777777777777777777777777777777777777777777777777777777--------------777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777LLLL7777LLLL77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d-dEEEE-d-d-d-d-d-d-d-d-d-d777777777777777777777777777777777777777777777777777777777777777777------777777777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777LLLL777777777777LLLL7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d-d-dEEEE-d-d-d-d-d-d-d-d-d-d777777777777777777777777777777777777777777777777777777777777777777------777777777777777777777777777777|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777777777777777LLLL777777777777LLLL7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777">7-d-d-d-d-d-d-d-d-d-d-d-d-d-d777777777777777777777777|cP|cP|cP|cPDDDDDDDDDDDD|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777777777LLLL77777777777777777777LLLL777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.=7-d-d-d-d-d-d-d-d-d-d-d-d-d-d777777777777777777777777|cP|cP|cP|cPDDDDDDDDDDDD|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777777777LLLL77777777777777777777LLLL77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-d-d-d-d-d-d77777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777777777LLLL7777777777777777777777777777LLLL77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=77777-d-d-d-d-d-d77777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ7777777777777777777777777777777777777777777777777777LLLL7777777777777777777777777777LLLL77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777߼777777777777777777777777777777777777777|cP|cP|cP|cP7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777777777777777777777777777LLLL777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777S777777777777777777777777777777777777777|cP|cP|cP|cP7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777777777777777777777777777LLLL777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL77LL7777777777777777LLLL777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL77LL7777777777777777LLLL777777777777ѿѿѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777777777>777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777LL77LL7777777777LLLL7777LLLLLL77ѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777774>777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777LL77LL7777777777LLLL7777LLLLLL77ѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777L=777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777777777LL77777777LLLL7777LLLL7777ѿѿLLLL7777ѿѿ))))))))))))ѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777b777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777777777LL77777777LLLL7777LLLL7777ѿѿLLLL7777ѿѿ))))))))))))ѿѿ777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL77777777777777777777LLLL7777LLLL7777ѿѿѿѿ777777ѿѿ))))))))))))))))))))))))))))))))))))ѿѿ77777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL77777777777777777777LLLL7777LLLL7777ѿѿѿѿ777777ѿѿ))))))))))))))))))))))))))))))))))))ѿѿ77777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL777777777777LLLL7777LLLL7777ѿѿѿѿ77777777))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))77LL777777777777777777777777777777777777777777777777777777777777777775777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL777777777777LLLL7777LLLL7777ѿѿѿѿ77777777))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))77LL77777777777777777777777777777777777777777777777777777777777777777ҽ777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777LLLL7777LLLL7777ѿѿѿѿ777777))))))))))))7777ѿѿ))))))))))))))))))))))))))))))))))))ѿѿ77777777LL7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777LLLL7777LLLL7777ѿѿѿѿ777777))))))))))))7777ѿѿ))))))))))))))))))))))))))))))))))))ѿѿ77777777LL7777777777777777777777777777777777777777777777777777777777777)=777777777777777777777777777777777777777777777ӽӽӽӽ|cP|cPӽӽӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777LLLL7777ѿѿѿѿ777777))))))))))))77'w 'w 'w 'w 7777'w 'w ѿѿ))))))))))))ѿѿ'w 'w 'w 'w 77777777777777777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777777777777777ӽӽӽӽ|cP|cPӽӽӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777LLLL7777ѿѿѿѿ777777))))))))))))77'w 'w 'w 'w 7777'w 'w ѿѿ))))))))))))ѿѿ'w 'w 'w 'w 77777777777777777777777777777777777777777777777777777777777777777777777^=77777777777777777777777777777777777777777777777ӽӽӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777ѿѿѿѿ777777777777'w 'w 'w 'w 7777))))))))))))77777777777777'w 'w 'w 'w 777777ѿѿ))))))))))))))))))ѿѿ777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777ӽӽӽӽ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777LLLL7777ѿѿѿѿ777777777777'w 'w 'w 'w 7777))))))))))))77777777777777'w 'w 'w 'w 777777ѿѿ))))))))))))))))))ѿѿ7777777777777777777777777777777777777777777777777771>77777777777777777777777777777777777777777777777ӽӽ|cP|cPӽӽ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777ѿѿѿѿ77777777ѿѿѿѿ77777777))))))))))))77777777ѿѿ7777ѿѿ777777'w 'w 'w 'w 77))))))))))))))))))))))))))))))))))))7777777777777777777777777777777777777777777777777w>77777777777777777777777777777777777777777777777ӽӽ|cP|cPӽӽ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777LLLL7777ѿѿѿѿ77777777ѿѿѿѿ77777777))))))))))))77777777ѿѿ7777ѿѿ777777'w 'w 'w 'w 77))))))))))))))))))))))))))))))))))))7777777777777777777777777777777777777777777777777>77777777777777777777777777777777777777777777777ӽӽ|cP|cPӽӽ7777777777777777777777777777777777777777ѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ77777777))))))))))))ѿѿѿѿѿѿѿѿ7777777777'w 'w 'w 'w 'w 'w 'w 'w 7777777777777777'w 'w 'w 'w ѿѿ))))))))))))))))))ѿѿ7777777777777777777777777777777777777777777777777177777777777777777777777777777777777777777777777ӽӽ|cP|cPӽӽ7777777777777777777777777777777777777777ѿѿѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿ77777777))))))))))))ѿѿѿѿѿѿѿѿ7777777777'w 'w 'w 'w 'w 'w 'w 'w 7777777777777777'w 'w 'w 'w ѿѿ))))))))))))))))))ѿѿ7777777777777777777777777777777777777777777777777b777777777777777777777777777777777MMMMMMMMӽӽӽӽӽӽ77777777777777777777777777777777777777ѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ))))))))))))))))))ѿѿѿѿ'w 'w 'w 'w 'w 'w 'w 'w 'w 'w 77777777'w 'w 'w 'w 'w 'w 'w 'w 777777777777'w 'w 'w 'w 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777MMMMMMMMӽӽӽӽӽӽ77777777777777777777777777777777777777ѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ))))))))))))))))))ѿѿѿѿ'w 'w 'w 'w 'w 'w 'w 'w 'w 'w 77777777'w 'w 'w 'w 'w 'w 'w 'w 777777777777'w 'w 'w 'w 7777777777777777777777777777777777777777777777777777777777777777777777777777777777MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMhhMMMM7777777777777777777777777777777777777777ѿѿѿѿttttѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ))))))))))))))))))))))))))))))777777777777'w 'w 'w 'w 'w 'w 77777777'w 'w ѿѿ))))))))))))))))))ѿѿ7777'w 'w 'w 'w 'w 'w 'w 'w 'w 'w 'w 'w 7777777777777777777777777777777777777777777 >777777777777777777777777777MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMhhMMMM7777777777777777777777777777777777777777ѿѿѿѿttttѿѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿ))))))))))))))))))))))))))))))777777777777'w 'w 'w 'w 'w 'w 77777777'w 'w ѿѿ))))))))))))))))))ѿѿ7777'w 'w 'w 'w 'w 'w 'w 'w 'w 'w 'w 'w 7777777777777777777777777777777777777777777O=7777777777777777777777777MMMM77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtt|cP|cP|cP|cP|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777ѿѿѿѿѿѿѿѿGGGGGGGGGGGGѿѿѿѿ=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQaa|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777ѿѿѿѿѿѿѿѿGGGGGGGGGGGGѿѿѿѿ<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQaa|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777ѿѿѿѿѿѿѿѿGGGGGGGGGGGGѿѿѿѿh77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777ѿѿѿѿѿѿѿѿGGGGGGGGGGGGѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777ѿѿѿѿѿѿѿѿGGGGGGGGGGGGѿѿѿѿ><77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=7=7=7=7=%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿGGGGGGGGGGGGѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=7=7=7=7=%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿGGGGGGGGGGGGѿѿѿ9<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=7=7=7=7=%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG677777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=7=7=7=7=%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿѿѿGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGC=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=7=7=7=7=%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=7=7=7=7=%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttѿѿGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=%%3%%3%%3%%3%%3%%3HHHHHH%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿѿѿѿѿGGGGGGGGGGGG:77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%37=7=7=7=%%3%%3%%3%%3%%3%%3HHHHHH%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿѿѿѿѿGGGGGGGGGGGG77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3HH%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿGGGGGGGGGGGGѿѿѿѿ=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3HH%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿGGGGGGGGGGGGѿѿѿѿ<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3HH%%3%%3HH%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿѿѿѿѿѿѿGGGGGGGGGGGGGGGGGG<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3HH%%3%%3HH%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿѿѿѿѿѿѿGGGGGGGGGGGGGGGGGG<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3HH%%3%%3HH%%3%%3%%3%%3HH%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿѿѿѿѿѿѿѿѿȼ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3HH%%3%%3HH%%3%%3%%3%%3HH%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿѿѿѿѿѿѿѿѿ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿ<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGѿѿѿѿ<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3HH%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGtttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3HH%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttGGGGGGGGGGGGGGGGGGGGGGGGtttt=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%32I2I%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777ttttGGGGGGGGGGGGttttm77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HH%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%32I2I%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777ttttGGGGGGGGGGGGtttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3%%3%%3BB%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777tttttttttttt/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3%%3%%3BB%%3%%3%%3%%3QQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777ttttttttttttT77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777ttttttttt㼏77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777ttttttttt=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777ttttttttttttttttR<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3HHHH%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777tttttttttttttttt>77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3HH%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777ttttѿѿѿѿtttttttt);77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3HH%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777ttttѿѿѿѿttttttttn77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777ttttѿѿѿѿtttttttt1<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777ttttѿѿѿѿtttttttt;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777ѿѿѿѿtttttttt(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3%%3%%3%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777ѿѿѿѿttttttttC=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777ѿѿѿѿtttttttt{=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3!f!f%%3%%3!f!f!f!f%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777ѿѿѿѿtttttttt<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3HHHH%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777tttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3HHHH%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777tttttttt>77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777tttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777tttttttt<<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777ttttttttF77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3%%3%%3%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777tttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777tttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQ%%3%%3%%3%%3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777tttttttt777B=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777tttt7777777;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777tttt7777777v77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777tttt77777777777Y=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777tttt77777777777=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777770;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777L<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777鼏77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQQQQQQQQQQQQQQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQϓϓQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQϓϓQQQQQQQQQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777o<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQϓϓQQϓϓQQϓϓQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQϓϓQQϓϓQQϓϓQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQϓϓQQϓϓQQϓϓQQϓϓQQϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 <77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQϓϓQQϓϓQQϓϓQQϓϓQQϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777t77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQϓϓQQϓϓQQϓϓQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttt|cP|cP|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777N77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQϓϓQQϓϓQQϓϓQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPtttttt|cP|cP|cP|cP|cP|cPtttttttttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777977777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQϓϓQQϓϓQQϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttttttttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQϓϓQQϓϓQQϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPttѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQϓϓQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPϓϓQQϓϓQQ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttttttttttttttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cPQQϓϓ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777޼77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777~;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777jZ\jZ\ѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtttt|cP|cP|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttttttttt77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cPtt|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttttttttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ|cP|cP|cP|cP|cP|cPtttt7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿjZ\jZ\|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777˼77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿjZ\jZ\|cP|cP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|cP|cPѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAA-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿAAAA-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-*-*AA-*-*AA.*.*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿ-*-*AA-*-*AA.*.*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777AA@@-*-*AA@@AA-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ777777777777777777AA@@-*-*AA@@AA-*-*ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*AA-*-*ѿѿѿѿѿѿѿѿᏀ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*AA-*-*ѿѿѿѿѿѿѿѿᏀ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿᏀ777777777777777777777777777777777777AAAA-*-*AAAAAA-*-*@@AA@@-*-*Ꮐ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѿѿѿѿѿѿᏀ777777777777777777777777777777777777AAAA-*-*AAAAAA-*-*@@AA@@-*-*Ꮐ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ77777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA.*.*AA.*.*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ꮐ77777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA.*.*AA.*.*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AA@@@@.*.*AA@@AA-*-*AAAAAA.*.*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AA@@@@.*.*AA@@AA-*-*AAAAAA.*.*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*@@-*-*@@-*-*@@-*-*AA-*-*AA-*-*AA.*.*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*@@-*-*@@-*-*@@-*-*AA-*-*AA-*-*AA.*.*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@@@-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AA@@AA-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@@@-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AA@@AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.*.*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*AA-*-*@@.*.*AA.*.*AA-*-*@@.*.*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777叀777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.*.*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*AA-*-*@@.*.*AA.*.*AA-*-*@@.*.*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA-*-*AA@@AA@@@@AAAAAAAA@@@@-)-)@@AAAA-*-*AAAAAA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA-*-*AA@@AA@@@@AAAAAAAA@@@@-)-)@@AAAA-*-*AAAAAA-*-*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAAAAAA@@AAAAAAAAAAAA@@AAAA.*.*AAAAAA-*-*@@AAAA.*.*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAAAAAA@@AAAAAAAAAAAA@@AAAA.*.*AAAAAA-*-*@@AAAA.*.*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*@@-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*@@-*-*@@-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*AA-*-*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAAAAAAAA@@AAAAAA@@AA@@AAAAAAAAAAAA-*-*AAAA@@-*-*AAAAAA-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAAAAAAAA@@AAAAAA@@AA@@AAAAAAAAAAAA-*-*AAAA@@-*-*AAAAAA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*AA-*-*@@-*-*AA-*-*AA-*-*AA.*.*AA-*-*AA-*-*AA.*.*AA-*-*AA-*-*AA-*-*AA-*-*@@-*-*@@-*-*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*@@-*-*AA-*-*AA-*-*@@-*-*AA-*-*AA-*-*AA.*.*AA-*-*AA-*-*AA.*.*AA-*-*AA-*-*AA-*-*AA-*-*@@-*-*@@-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA@@AAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAAAAAA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA@@AAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAAAAAA@@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*@@@@AA-*-*AAAAAA-*-*AA@@AA-*-*@@AAAA-*-*AA@@AA-*-*AA-*-*AA-*-*AA-*-*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-*-*AA-*-*AA-*-*AA-*-*@@-*-*AA-*-*@@@@AA-*-*AAAAAA-*-*AA@@AA-*-*@@AAAA-*-*AA@@AA-*-*AA-*-*AA-*-*AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@@@AAAA@@AAAAAAAAAA@@AAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAA@@AAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@@@AAAA@@AAAAAAAAAA@@AAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAA@@AAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AA@@AA-*-*@@AAAA.*.*@@AAAA.*.*AAAAAA-*-*AAAAAA-*-*@@AA@@-*-*@@@@AA-*-*AAAAAA.*.*AAAA@@-*-*AA-*-*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AA@@AA-*-*@@AAAA.*.*@@AAAA.*.*AAAAAA-*-*AAAAAA-*-*@@AA@@-*-*@@@@AA-*-*AAAAAA.*.*AAAA@@-*-*AA-*-*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA@@AAAAAAAA@@AA@@AAAA@@AA@@AA@@@@AAAAAA@@AAAAAAAAAA@@AAAAAAAAAAAAAAAA@@AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAA@@AAAAAAAA@@AA@@AAAA@@AA@@AA@@@@AAAAAA@@AAAAAAAAAA@@AAAAAAAAAAAAAAAA@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA.*.*AAAAAA-*-*@@AAAA-*-*AAAAAA-*-*AAAAAA-)-)AAAAAA-*-*AAAAAA.*.*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA.*.*AAAAAA-*-*@@AAAA-*-*AAAAAA-*-*AAAAAA-)-)AAAAAA-*-*AAAAAA.*.*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@@@AAAAAAAAAAAAAAAAAAAAAAAA@@@@AAAAAA@@@@@@AAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@@@AAAAAAAAAAAAAAAAAAAAAAAA@@@@AAAAAA@@@@@@AAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AAAA@@AAAA@@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*@@@@AA-*-*AAAA@@-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AAAA@@-*-*@@AAAA-*-*AA@@AA-*-*AAAAAA-*-*AAAAAA.*.*AAAAAA.*.*AA@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*@@@@AA-*-*AAAA@@-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AAAA@@-*-*@@AAAA-*-*AA@@AA-*-*AAAAAA-*-*AAAAAA.*.*AAAAAA.*.*AA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAA@@AA@@AAAAAAAAAAAA@@AAAA@@@@AAAAAAAAAAAAAA@@AAAAAAAAAAAA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAA@@AA@@AAAAAAAAAAAA@@AAAA@@@@AAAAAAAAAAAAAA@@AAAAAAAAAAAA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@-*-*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*AAAA@@-*-*AA@@AA-)-)@@AAAA-*-*AA@@AA-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*@@AA@@-*-*@@@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@-*-*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*AAAA@@-*-*AA@@AA-)-)@@AAAA-*-*AA@@AA-*-*AA@@@@-*-*AAAAAA-*-*AAAAAA-*-*AAAAAA-*-*@@AA@@-*-*@@@@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAA@@AAAAAAAA@@AAAAAAAA@@@@AAAAAAAA@@AAAAAA@@@@AA@@AAAAAA@@AA@@AA@@@@@@AAAA@@AAAAAAAA@@AAAAAA@@AA@@AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAA@@AAAAAAAA@@AAAAAAAA@@@@AAAAAAAA@@AAAAAA@@@@AA@@AAAAAA@@AA@@AA@@@@@@AAAA@@AAAAAAAA@@AAAAAA@@AA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA.*.*AAAAAA-*-*AAAAAA.*.*AAAAAA.*.*@@AAAAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAA-*-*AAAAAA-*-*AAAAAA.*.*AAAAAA-*-*AAAAAA-*-*AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA.*.*AAAAAA-*-*AAAAAA.*.*AAAAAA.*.*@@AAAAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAA-*-*AAAAAA-*-*AAAAAA.*.*AAAAAA-*-*AAAAAA-*-*AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@@@@@AAAA@@AAAAAA@@@@AAAAAA@@@@AA@@@@AAAA@@AA@@AAAAAAAAAA@@@@AAAA@@AAAA@@AAAAAAAAAAAA@@@@@@AAAA@@AA@@AAAAAAAAAAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@@@@@AAAA@@AAAAAA@@@@AAAAAA@@@@AA@@@@AAAA@@AA@@AAAAAAAAAA@@@@AAAA@@AAAA@@AAAAAAAAAAAA@@@@@@AAAA@@AA@@AAAAAAAAAAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA-*-*@@AAAAAAAAAAAAAAAA@@@@AAAA@@@@AA@@AAAAAA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAAAA-*-*AA@@AA-*-*AAAA@@-*-*AA@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA-*-*@@AAAAAAAAAAAAAAAA@@@@AAAA@@@@AA@@AAAAAA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAAAA-*-*AA@@AA-*-*AAAA@@-*-*AA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@AAAA@@AAAAAA@@@@AAAA@@AA@@AAAAAA@@AAAAAAAAAA@@AAAA@@AAAAAAAA@@AAAA@@AAAAAAAAAA@@@@@@@@AAAAAAAAAAAAAAAAAAAAAA@@@@AAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@AAAA@@AAAAAA@@@@AAAA@@AA@@AAAAAA@@AAAAAAAAAA@@AAAA@@AAAAAAAA@@AAAA@@AAAAAAAAAA@@@@@@@@AAAAAAAAAAAAAAAAAAAAAA@@@@AAAAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA.*.*@@AAAAAAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAAAAAAAA@@AAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AA@@@@AAAA.*.*AAAA@@-*-*@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAA.*.*@@AAAAAAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAAAAAAAA@@AAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAA@@AA@@@@AAAA.*.*AAAA@@-*-*@@AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@@@AAAAAAAAAA@@AAAAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAA@@AAAAAA@@@@AAAAAAAAAAAAAA@@AAAAAA@@@@@@@@@@AAAAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@@@AAAAAAAAAA@@AAAAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAA@@AAAAAA@@@@AAAAAAAAAAAAAA@@AAAAAA@@@@@@@@@@AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA.*.*AA@@AAAAAAAA@@AAAAAAAAAAAAAA@@AAAAAAAAAAAAAA@@AAAAAA@@AAAAAA@@AA@@@@AAAAAAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAAAAAA@@AAAAAA-*-*@@AAAA-*-*AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA.*.*AA@@AAAAAAAA@@AAAAAAAAAAAAAA@@AAAAAAAAAAAAAA@@AAAAAA@@AAAAAA@@AA@@@@AAAAAAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAAAAAA@@AAAAAA-*-*@@AAAA-*-*AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAAAAAAAA@@AA@@AA@@AAAAAA@@AAAAAAAAAAAAAAAA@@@@AAAAAA@@AAAAAAAAAAAAAAAA@@AA@@AAAAAAAAAA@@AAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAA@@AAAAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAAAAAAAA@@AA@@AA@@AAAAAA@@AAAAAAAAAAAAAAAA@@@@AAAAAA@@AAAAAAAAAAAAAAAA@@AA@@AAAAAAAAAA@@AAAAAAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA-*-*AAAAAAAAAAAAAA@@@@AA@@AAAAAAAAAAAA@@@@AAAAAAAAAA@@@@@@@@AAAA@@AAAAAAAAAA@@AAAA@@AA@@AAAA@@AAAA@@@@AA@@@@AAAAAA@@@@AAAA@@AAAAAA-*-*AAAAAA.*.*AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA-*-*AAAAAAAAAAAAAA@@@@AA@@AAAAAAAAAAAA@@@@AAAAAAAAAA@@@@@@@@AAAA@@AAAAAAAAAA@@AAAA@@AA@@AAAA@@AAAA@@@@AA@@@@AAAAAA@@@@AAAA@@AAAAAA-*-*AAAAAA.*.*AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAA@@@@AAAAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAAAAAAAA@@@@@@AAAA@@AAAA@@AA@@@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAA@@@@AAAAAAAAAA@@AA@@AAAAAAAAAAAAAAAAAAAAAAAA@@@@@@AAAA@@AAAA@@AA@@@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAAAAAAAAAA@@AAAAAAAAAAAAAA@@AA@@AAAAAAAA@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAAAA@@AAAAAAAAAAAA@@@@AAAAAAAAAA@@AAAA@@@@@@@@AA@@AA-*-*AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA-*-*AAAAAAAAAAAAAA@@AAAAAAAAAAAAAA@@AA@@AAAAAAAA@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAAAA@@AAAAAAAAAAAA@@@@AAAAAAAAAA@@AAAA@@@@@@@@AA@@AA-*-*AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAA@@AAAAAAAAAA@@AAAAAAAAAAAAAAAAAA@@@@AA@@AAAAAAAA@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAAAAAAAAAAAA@@AAAAAAAAAA@@AAAAAAAAAAAAAAAAAA@@@@AA@@AAAAAAAA@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA@@@@AAAAAA@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAA@@AA@@@@@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA@@@@AAAAAA@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA@@AAAAAAAA@@AA@@@@@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAAAAAA@@AAAAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAAAAAAAA@@@@AA@@@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAAAAAAAAAA@@AAAAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAAAAAAAA@@@@AA@@@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AA@@AAAAAAAAAA@@@@@@AA@@AAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AA@@AAAAAAAAAA@@@@@@AA@@AAAA@@AAAA@@AAAAAAAAAAAAAAAAAAAAAA@@AAAA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@,,@@AAAA,,AAAAAA,,AAAAAA,,@@AAAA,,AAAAAA,,AAAA@@,,AAAAAAAAAA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@,,@@AAAA,,AAAAAA,,AAAAAA,,@@AAAA,,AAAAAA,,AAAA@@,,AAAAAAAAAA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAA@@AAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAAAAAAAAAAAAAAAA@@AAAAAA@@AAAAAA@@AAAAAAAAAAAAAAAA@@AAAAAAAA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAA@@,,@@AAAA,,AA--AA,,@@,,AA,,AA--AA--AAAA@@--@@@@AAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA,,AAAA@@,,@@AAAA,,AA--AA,,@@,,AA,,AA--AA--AAAA@@--@@@@AAAAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAA@@AAAAAAAAAAAA@@AAAAAAAAAA@@AA@@AAAAAAAAAAAA@@@@AAAA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA@@AAAA@@AAAAAAAAAAAA@@AAAAAAAAAA@@AA@@AAAAAAAAAAAA@@@@AAAA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA,,@@@@AA,,AA,,AA,,AA,,AA--AA,,AA,,@@,,AA,,AA--AA,,AAAAAA,,AA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AA,,@@@@AA,,AA,,AA,,AA,,AA--AA,,AA,,@@,,AA,,AA--AA,,AAAAAA,,AA@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@AAAAAAAAAAAAAA@@AAAA,,AAAAAA,,AA@@AAAAAAAAAA@@@@AAAAAAAAAAAA@@@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAA@@AAAAAAAAAAAAAA@@AAAA,,AAAAAA,,AA@@AAAAAAAAAA@@@@AAAAAAAAAAAA@@@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA--AA,,@@--@@,,AA,,AA,,AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AAAAAA--AA,,@@--@@,,AA,,AA,,AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAA@@@@AAAA@@AAAA,,AA@@AA,,AAAA@@,,AAAA@@,,AAAAAA@@AAAAAA@@AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAAAA@@@@AAAA@@AAAA,,AA@@AA,,AAAA@@,,AAAA@@,,AAAAAA@@AAAAAA@@AAAAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777--@@,,AA,,AA,,AA,,@@--AA,,AA,,@@--AA,,AA,,AA,,@@,,AA,,AA--AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777--@@,,AA,,AA,,AA,,@@--AA,,AA,,@@--AA,,AA,,AA,,@@,,AA,,AA--AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAA@@AAAAAAAA,,@@AAAA,,@@AAAA,,AAAAAA,,AAAAAA,,AAAAAA@@AAAAAA@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AAAA@@AAAAAAAA,,@@AAAA,,@@AAAA,,AAAAAA,,AAAAAA,,AAAAAA@@AAAAAA@@AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,@@,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,@@,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA--AA@@@@--AA@@@@,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA--@@AA@@,,@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@AAAA--AA@@@@--AA@@@@,,AAAAAA,,AAAAAA,,AAAAAA,,AAAAAA--@@AA@@,,@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA--AA,,@@,,AA,,AA,,@@,,AA--AA,,AA,,AA,,AA,,@@,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA--AA,,@@,,AA,,AA,,@@,,AA--AA,,AA,,AA,,AA,,@@,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@,,AAAA@@,,AAAAAA,,AAAAAA,,AA@@@@--AAAAAA,,AA@@@@,,AAAAAA,,AA@@AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@@,,AAAA@@,,AAAAAA,,AAAAAA,,AA@@@@--AAAAAA,,AA@@@@,,AAAAAA,,AA@@AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,AA,,AA,,@@--AA--AA,,@@,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,AA,,AA,,@@--AA--AA,,@@,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,@@@@AA,,AAAAAA--AA,,@@--@@AAAA,,@@@@AA,,AAAA@@,,@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AAAAAA,,AAAAAA,,@@@@AA,,AAAAAA--AA,,@@--@@AAAA,,@@@@AA,,AAAA@@,,@@AAAA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA--AA--AA,,AA,,AA--AA,,@@--@@,,AA--@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA--AA--AA,,AA,,AA--AA,,@@--@@,,AA--@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AA@@@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA@@@@,,AAAAAA,,AA@@@@,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AAAAAA,,AA@@@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA@@@@,,AAAAAA,,AA@@@@,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA--AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA--AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AA,,AAAAAA--@@,,AA,,AA,,AA,,AA--AA,,AA--AA,,AA,,@@,,AAAAAA,,@@AA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA@@AA,,AAAAAA--@@,,AA,,AA,,AA,,AA--AA,,AA--AA,,AA,,@@,,AAAAAA,,@@AA@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,AA,,AA,,AA--@@,,@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,AA,,AA,,AA--@@,,@@,,AA,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA--@@--AA,,AA,,AA,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,@@,,AAAAAA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA--@@--AA,,AA,,AA,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,@@,,AAAAAA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,AA,,@@,,AA,,AA,,AA--AA--AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,AA,,@@,,AA,,AA,,AA--AA--AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,@@,,AA--AA,,@@,,AA,,AA,,AA,,@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,@@,,AA--AA,,@@,,AA,,AA,,AA,,@@7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA--AA--@@,,AA,,AA,,@@,,AA,,AA--AA,,AA--7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA--AA--@@,,AA,,AA,,@@,,AA,,AA--AA,,AA--7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@,,@@,,AA,,AA,,AA--@@,,AA--AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@,,@@,,AA,,AA,,AA--@@,,AA--AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@,,@@--AA--AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@,,@@--AA--AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA,,AA--@@--AA--@@,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA,,AA--@@--AA--@@,,AA,,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,@@,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,@@,,AA77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA--77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA--77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,@@,,AA--AA,,@@,,AA,,AA,,AA,,@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,@@,,AA--AA,,@@,,AA,,AA,,AA,,@@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA--AA--@@,,AA,,AA,,@@,,AA,,AA--AA,,AA--77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA--AA--@@,,AA,,AA,,@@,,AA,,AA--AA,,AA--77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@,,@@,,AA,,AA,,AA--@@,,AA--AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@,,@@,,AA,,AA,,AA--@@,,AA--AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@,,@@--AA--AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@,,@@--AA--AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA,,AA,,AA,,AA,,AA777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA,,AA--@@--AA--@@,,AA,,777777777777777777777777777777齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA,,AA--@@--AA--@@,,AA,,777777777777777777777777777777齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,@@,,AA777777777777777777777777齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,@@,,AA777777777777777777777777齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA--777777777777777777齯a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,,@@--@@,,AA,,AA,,AA,,AA,,@@,,AA,,AA--777777777777777777齯a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,@@,,AA--AA,,@@,,AA,,AA,,AA,,@@7777777777齯a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,AA,,AA,,@@,,AA--AA,,AA,,@@,,@@,,AA--AA,,@@,,AA,,AA,,AA,,@@7777777777齯a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA--AA--@@,,AA,,AA,,@@,,AA,,AA--AA,,AA--7777齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,@@,,AA,,AA,,AA,,AA--AA--@@,,AA,,AA,,@@,,AA,,AA--AA,,AA--7777齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@,,@@,,AA,,AA,,AA--@@,,AA--AA,,齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,@@,,AA,,@@,,AA,,AA,,AA,,AA,,AA,,@@,,@@,,AA,,AA,,AA--@@,,AA--AA,,齯a^\a^\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@,,@@--AA--AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,@@,,AA,,@@,,@@,,@@--AA--AA,,AA,,AA,,AA,,AA,,AA,,AA,,AA,,齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA--AA--AA,,AA,,AA,,@@,,@@,,AA,,@@,,AA,,AA,,AA--AA齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,@@,,AA,,AA,,@@--AA,,AA,,@@,,AA--AA,,AA齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,@@,,AA,,@@,,AA,,AA,,@@,,AA,,AA,,齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,, I I I I I I I I齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,,AA,,AA,,AA,,AA,,@@--AA,,AA,, I I I I I I I I齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,@@,,AA,,AA,,@@ I I I Immmmmmmm I I齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,,@@,,AA,,AA,,@@ I I I Immmmmmmm I I齯777777777777777777777777777777777;7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA I Immmm88888888mm I I齯a^\a^\777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,AA,,AA,,AA,,AA,,AA I Immmm88888888mm I I齯a^\a^\777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,, I Imm88888888888888mm I I齯a^\a^\777777777777777777777777777777777 =7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA,,AA,,AA,, I Imm88888888888888mm I I齯a^\a^\7777777777777777777777777777777771=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,, I Imm88888888888888mm I I齯a^\a^\777777777777777777777777777777777L=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,@@,, I Imm88888888888888mm I I齯a^\a^\777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I Imm8888888888888888mm I I齯a^\a^\777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I Imm8888888888888888mm I I齯a^\a^\777777777777777777777777777777777N7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I I I I I I I I I I I I I I I IGG88888888888888GG I I齯a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I I I I I I I I I I I I I I I IGG88888888888888GG I I齯a^\a^\777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmmmmmmmmmmmmmm I I I I I I I IGG88888888888888GG I I齯a^\a^\777777777777777777777777777777777-7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmmmmmmmmmmmmmm I I I I I I I IGG88888888888888GG I I齯a^\a^\777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmm8888888888888888mmmmmm I I I IGG88888888GGGG I I齯a^\a^\777777777777777777777777777777777ɼ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmm8888888888888888mmmmmm I I I IGG88888888GGGG I I齯a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmm8888GG88GG8888888888888888mm I I I IGGGGGGGG I I I I齯a^\a^\777777777777777777777777777777777e<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I I I Immmm8888GG88GG8888888888888888mm I I I IGGGGGGGG I I I I齯a^\a^\777777777777777777777777777777777~=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700 I Immmm888888GG88GG88GG8888888888888888mm I I I I I I I I I I齯齯齯齯a^\a^\777777777777777777777777777777777=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700 I Immmm888888GG88GG88GG8888888888888888mm I I I I I I I I I I齯齯齯齯a^\a^\777777777777777777777777777777777컏77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700####00 I Imm888888888888GG88GG88888888888888888888mm I I齯齯齯齯a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700####00 I Imm888888888888GG88GG88888888888888888888mm I I齯齯齯齯a^\a^\777777777777777777777777777777777<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700 I Imm888888888888GG88GG88GG88888888888888888888mm I I齯齯齯齯_y_ya^\a^\777777777777777777777777777777777Ҽ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700 I Imm888888888888GG88GG88GG88888888888888888888mm I I齯齯齯齯_y_ya^\a^\7777777777777777777777777777777770=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I Imm8888888888888888GG88GG8888888888888888888888mm I I齯齯齯齯齯_y_y777777777777777777777777777777777U=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777 I Imm8888888888888888GG88GG8888888888888888888888mm I I齯齯齯齯齯_y_y777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777777788mmmm I Imm8888888888888888888888888888888888888888888888mm I I齯齯齯齯齯_y_y齯777777777777777777777777777777777z7777777777777777777777777777777777777777777777777777777777777777777777777777788mmmm I Imm8888888888888888888888888888888888888888888888mm I I齯齯齯齯齯_y_y齯777777777777777777777777777777777ټ7777777777777777777777777777777777777777777777777777777777777777777777777888888888888mm I Imm8888888888888888888888888888888888888888888888mmmm I I齯齯齯齯_y_y齯齯777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777888888888888mm I Imm8888888888888888888888888888888888888888888888mmmm I I齯齯齯齯_y_y齯齯777777777777777777777777777777777L77777777777777777777777777777777777777777777777777777777777777777777788888888888888888888mm I Imm88888888888888888888 I I I I I I I I8888888888GG88GG888888mm I I齯齯齯齯齯齯齯齯777777777777777777777777777777777677777777777777777777777777777777777777777777777777777777777777777777788888888888888888888mm I Imm88888888888888888888 I I I I I I I I8888888888GG88GG888888mm I I齯齯齯齯齯齯齯齯777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777778888888888888888GG88GG88GG88mm I Imm888888888888888888 I I I Immmmmmmm I I888888GG88GG88GG8888mm I I齯齯齯齯齯齯齯齯齯777777777777777777777777777777777⽏777777777777777777777777777777777777777777777777777777777777777778888888888888888GG88GG88GG88mm I Imm888888888888888888 I I I Immmmmmmm I I888888GG88GG88GG8888mm I I齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888GG88GG88GG88GG8888mm I Imm8888888888888888 I Immmm88888888mm I I888888GG88GG888888mm I I齯齯齯齯齯齯齯齯齯777777777777777777777777777777777r77777777777777777777777777777777777777777777777777777777777778888888888888888GG88GG88GG88GG8888mm I Imm8888888888888888 I Immmm88888888mm I I888888GG88GG888888mm I I齯齯齯齯齯齯齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y88888888888888GG88GG88GG88GG88GG88GG88GG88mm I Imm8888888888888888 I Imm88888888888888mm I I88GG88GG88GG8888mm I I齯齯齯齯_y_y齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y88888888888888GG88GG88GG88GG88GG88GG88GG88mm I Imm8888888888888888 I Imm88888888888888mm I I88GG88GG88GG8888mm I I齯齯齯齯_y_y齯齯齯齯齯777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777_y_ya^\a^\8888888888888888GG88GG88GG88GG88GG88GG88GG88GG8888mm I I888888888888888888 I I8888888888888888GG I I8888GG88GG888888mm I I齯齯齯齯_y_y齯齯齯齯齯777777777777777777777777777777777<777777777777777777777777777777777777777777777777777777777_y_ya^\a^\8888888888888888GG88GG88GG88GG88GG88GG88GG88GG8888mm I I888888888888888888 I I8888888888888888GG I I8888GG88GG888888mm I I齯齯齯齯_y_y齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y8888888888888888888888GG88GG88GG88GG88GG88GG88GG88GG88GG88mm I I8888888888888888 I IGG8888888888888888GG I I8888888888888888mm I I齯齯齯齯_y_y齯齯齯齯齯齯777777777777777777777777777777777`<7777777777777777777777777777777777777777777777777777777_y_y8888888888888888888888GG88GG88GG88GG88GG88GG88GG88GG88GG88mm I I8888888888888888 I IGG8888888888888888GG I I8888888888888888mm I I齯齯齯齯_y_y齯齯齯齯齯齯777777777777777777777777777777777;7777777777777777777777777777777777777777777777777777777_y_y88888888888888888888888888GG88GG88GG88GG88GG88GG88GG88GG88GG8888mm I IGG8888GG88GG888888 I IGG88888888888888GG I Imm8888888888888888 I I齯齯齯齯齯齯齯齯齯齯齯齯777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777_y_y88888888888888888888888888GG88GG88GG88GG88GG88GG88GG88GG88GG8888mm I IGG8888GG88GG888888 I IGG88888888888888GG I Imm8888888888888888 I I齯齯齯齯齯齯齯齯齯齯齯齯777777777777777777777777777777777:77777777777777777777777777777777777777777777777777777_y_y888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88mm I IGG88GG88GG88GG8888 I IGG88888888888888GG I Imm8888888888888888 I I齯齯齯齯齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88mm I IGG88GG88GG88GG8888 I IGG88888888888888GG I Imm8888888888888888 I I齯齯齯齯齯齯齯齯齯齯齯齯齯777777777777777777777777777777777y777777777777777777777777777777777777777777777777777_y_y888888888888888888888888888888888888&&&&&&&&&&&&88GG88GG88GG88GG88GG88GG88GG88GG88GG&&&&&&88mm I IGG8888GG88GG888888mm I IGG88888888GGGG I Imm888888888888888888 I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯777777777777777777777777777777777J<777777777777777777777777777777777777777777777777777_y_y888888888888888888888888888888888888&&&&&&&&&&&&88GG88GG88GG88GG88GG88GG88GG88GG88GG&&&&&&88mm I IGG8888GG88GG888888mm I IGG88888888GGGG I Imm888888888888888888 I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯777777777777777777777777777777777ù777777777777777777777777777777777777777777777777777_y_y888888888888888888888888888888888888888888888888&&&&&&88GG88GG88GG88GG88GG88GG88&&&&&&88&&&&&&&&&&&&GG88mm I IGG88GG88GG88GG888888mm I IGGGGGGGG I I I Imm8888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777<777777777777777777777777777777777777777777777777777_y_y888888888888888888888888888888888888888888888888&&&&&&88GG88GG88GG88GG88GG88GG88&&&&&&88&&&&&&&&&&&&GG88mm I IGG88GG88GG88GG888888mm I IGGGGGGGG I I I Imm8888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y888888888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88GG88GG88GG88&&&&&&88GG&&&&&&GG88&&&&&&88GG88GG8888mm I IGG8888GG88GG8888888888mm I I I I I I I Immmm888888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777꼏7777777777777777777777777777777777777777777777777_y_y888888888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88GG88GG88GG88&&&&&&88GG&&&&&&GG88&&&&&&88GG88GG8888mm I IGG8888GG88GG8888888888mm I I I I I I I Immmm888888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777ڽ7777777777777777777777777777777777777777777777777_y_y888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888888888&&&&&&&&&&&&888888&&&&&&&&&&&&GG88GG88&&&&&&88GG&&&&&&GG&&&&&&GG&&&&&&GG88GG88mm I IGG8888888888888888888888mmmmmmmm88888888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777^=7777777777777777777777777777777777777777777777777_y_y888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888888888&&&&&&&&&&&&888888&&&&&&&&&&&&GG88GG88&&&&&&88GG&&&&&&GG&&&&&&GG&&&&&&GG88GG88mm I IGG8888888888888888888888mmmmmmmm88888888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777<77777777777777777777777777777777777777777777777_y_ymm88888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88888888&&&&&&&&&&&&888888888888GG&&&&&&GG&&&&&&GG&&&&&&GG88&&&&&&88GG&&&&&&GG&&&&&&GG8888mm I IGG888888888888888888888888888888888888888888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777b<77777777777777777777777777777777777777777777777_y_ymm88888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88888888&&&&&&&&&&&&888888888888GG&&&&&&GG&&&&&&GG&&&&&&GG88&&&&&&88GG&&&&&&GG&&&&&&GG8888mm I IGG888888888888888888888888888888888888888888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777\777777777777777777777777777777777777777777777_y_ymm888888888888888888888888&&&&&&8888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&888888888888&&&&&&&&&&&&88&&&&&&88&&&&&&88GG88GG88GG&&&&&&GG88GG88mm I IGG8888888888888888888888GG88GG88GG8888888888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777;=777777777777777777777777777777777777777777777_y_ymm888888888888888888888888&&&&&&8888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&888888888888&&&&&&&&&&&&88&&&&&&88&&&&&&88GG88GG88GG&&&&&&GG88GG88mm I IGG8888888888888888888888GG88GG88GG8888888888888888GG I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777&=777777777777777777777777777777777777777777777_y_ymm888888888888888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888&&&&&&&&&&&&8888GG88GG88GG88GG88GG88GG88GG8888mm I IGG888888888888888888GG88GG88GG8888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777:777777777777777777777777777777777777777777777_y_ymm888888888888888888888888888888888888888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888&&&&&&&&&&&&8888GG88GG88GG88GG88GG88GG88GG8888mm I IGG888888888888888888GG88GG88GG8888888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777;7777777777777777777777777777777777777777777_y_ymm888888888888GG88GG&&&&&&GG88GG&&&&&&GG88GG88GG88888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888888888888888GG88GG88GG88GG8888888888mm I IGG88888888888888888888GG88GG88GG888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777߹7777777777777777777777777777777777777777777_y_ymm888888888888GG88GG&&&&&&GG88GG&&&&&&GG88GG88GG88888888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8888888888888888GG88GG88GG88GG8888888888mm I IGG88888888888888888888GG88GG88GG888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777'<77777777777777777777777777777777777777777_y_ymm888888GG88GG88GG88GG&&&&&&&&&&&&&&&&&&GG&&&&&&&&&&&&&&&&&&GG88GG88GG888888&&&&&&&&&&&&&&&&&&&&&&&&88888888888888888888888888888888888888mm I IGG8888888888888888GG88GG88GG888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777A77777777777777777777777777777777777777777_y_ymm888888GG88GG88GG88GG&&&&&&&&&&&&&&&&&&GG&&&&&&&&&&&&&&&&&&GG88GG88GG888888&&&&&&&&&&&&&&&&&&&&&&&&88888888888888888888888888888888888888mm I IGG8888888888888888GG88GG88GG888888888888GG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777777777777777777777777777777_y_ymm8888GG88GG88GG88GG&&&&&&&&&&&&&&&&&&GG&&&&&&GG88GG&&&&&&&&&&&&&&&&&&GG88GG88GG88GG&&&&&&&&&&&&&&&&&&888888888888888888888888888888888888mm I IGG8888888888888888GG88GG8888888888GGGG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777=77777777777777777777777777777777777777777_y_ymm8888GG88GG88GG88GG&&&&&&&&&&&&&&&&&&GG&&&&&&GG88GG&&&&&&&&&&&&&&&&&&GG88GG88GG88GG&&&&&&&&&&&&&&&&&&888888888888888888888888888888888888mm I IGG8888888888888888GG88GG8888888888GGGG I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777777777777777777777777777777_y_ymm88&&&&&&88GG88GG88GG&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88GG88&&&&&&88888888&&&&&&8888&&&&&&88888888888888888888mm I IGG88888888888888888888888888GGGG I I I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_ymm88&&&&&&88GG88GG88GG&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88GG88&&&&&&88888888&&&&&&8888&&&&&&88888888888888888888mm I IGG88888888888888888888888888GGGG I I I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777)777777777777777777777777777777777777777_y_ymm88&&&&&&GG88GG88GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88&&&&&&88GG88&&&&&&88GG88&&&&&&&&&&&&GG88GG88GG&&&&&&88&&&&&&8888&&&&&&8888&&&&&&88888888888888888888mm I IGGGG888888888888888888GGGG I I I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777Q<777777777777777777777777777777777777777_y_ymm88&&&&&&GG88GG88GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&88&&&&&&88GG88&&&&&&88GG88&&&&&&&&&&&&GG88GG88GG&&&&&&88&&&&&&8888&&&&&&8888&&&&&&88888888888888888888mm I IGGGG888888888888888888GGGG I I I I齯齯齯齯齯齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777777777777777777777777777777_y_ymm88GG&&&&&&GG88GG88GG&&&&&&GG&&&&&&&&&&&&88GG&&&&&&GG88GG&&&&&&GG&&&&&&GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88&&&&&&8888&&&&&&8888&&&&&&88888888888888888888mm I I I IGGGGGGGGGGGGGGGGGG I I I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777<7777777777777777777777777777777777777_y_ymm88GG&&&&&&GG88GG88GG&&&&&&GG&&&&&&&&&&&&88GG&&&&&&GG88GG&&&&&&GG&&&&&&GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88&&&&&&8888&&&&&&8888&&&&&&88888888888888888888mm I I I IGGGGGGGGGGGGGGGGGG I I I I齯齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777=77777777777777777777777777777777777_y_ymm8888&&&&&&88GG88GG88GG&&&&&&GG88GG&&&&&&GG&&&&&&GG88GG88&&&&&&88GG&&&&&&GG88GG88GG88&&&&&&888888&&&&&&8888&&&&&&88888888888888888888mm I I I I I I I I I I I I I I I I I I齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_ymm8888&&&&&&88GG88GG88GG&&&&&&GG88GG&&&&&&GG&&&&&&GG88GG88&&&&&&88GG&&&&&&GG88GG88GG88&&&&&&888888&&&&&&8888&&&&&&88888888888888888888mm I I I I I I I I I I I I I I I I I I齯齯齯_y_y齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777774=77777777777777777777777777777777777_y_ymm88GG88&&&&&&88GG88GG88GG&&&&&&&&&&&&&&&&&&GG88GG&&&&&&&&&&&&88GG88GG88&&&&&&88GG88GG88GG88GG88&&&&&&8888&&&&&&8888888888888888888888mm齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777Ӽ77777777777777777777777777777777777_y_ymm88GG88&&&&&&88GG88GG88GG&&&&&&&&&&&&&&&&&&GG88GG&&&&&&&&&&&&88GG88GG88&&&&&&88GG88GG88GG88GG88&&&&&&8888&&&&&&8888888888888888888888mm齯齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777<777777777777777777777777777777777_y_ymm8888GG&&&&&&GG88GG88GG88GG88GG88GG88&&&&&&88&&&&&&&&&&&&GG88GG&&&&&&GG88GG88GG88GG88&&&&&&888888&&&&&&8888888888888888888888mm齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_ymm8888GG&&&&&&GG88GG88GG88GG88GG88GG88&&&&&&88&&&&&&&&&&&&GG88GG&&&&&&GG88GG88GG88GG88&&&&&&888888&&&&&&8888888888888888888888mm齯_y_y齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777;7777777777777777777777777777777_y_ymm88GG88GG&&&&&&GG88GG88GG88GG88GG88&&&&&&&&&&&&GG88GG&&&&&&&&&&&&&&&&&&GG88GG88GG88GG88GG888888&&&&&&88888888888888GGGG888888_y_y齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777޼7777777777777777777777777777777_y_ymm88GG88GG&&&&&&GG88GG88GG88GG88GG88&&&&&&&&&&&&GG88GG&&&&&&&&&&&&&&&&&&GG88GG88GG88GG88GG888888&&&&&&88888888888888GGGG888888_y_y齯齯齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777m7777777777777777777777777777777_y_y齯齯mm8888GG88GG&&&&&&GG88GG88GG88GG88&&&&&&88GG88GG88GG&&&&&&GG88GG88GG88GG88GG888888&&&&&&88888888GGGGGGGG8888888888齯齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777777777;7777777777777777777777777777777_y_y齯齯mm8888GG88GG&&&&&&GG88GG88GG88GG88&&&&&&88GG88GG88GG&&&&&&GG88GG88GG88GG88GG888888&&&&&&88888888GGGGGGGG8888888888齯齯齯齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777777777<77777777777777777777777777777_y_y齯齯齯mm88GG88GG88GG&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88&&&&&&&&&&&&GG88GG88GG88GG88GG88GG888888GGGGGGGG8888888888888888齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777<77777777777777777777777777777_y_y齯齯齯mm88GG88GG88GG&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88&&&&&&&&&&&&GG88GG88GG88GG88GG88GG888888GGGGGGGG8888888888888888齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777Z=77777777777777777777777777777_y_y齯齯齯齯齯mm8888GG88GG88GG&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88GG88GG88GG88GG88GGGGGG888888888888888888齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777_77777777777777777777777777777_y_y齯齯齯齯齯mm8888GG88GG88GG&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88GG88GG&&&&&&&&&&&&88GG88GG88GG88GG88GG88GG88GGGGGG888888888888888888齯齯齯齯齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777;77777777777777777777777777777_y_y齯齯齯齯齯齯mm88GG88GG88GG88GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88GG88GG88GG88GG88GGGGGGGGGG8888888888888888齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777j77777777777777777777777777777_y_y齯齯齯齯齯齯mm88GG88GG88GG88GG88&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&GG88GG88GG88GG88GG88GGGGGGGGGG8888888888888888齯齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777)7777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm8888GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GGGGGGGG8888888888888888齯齯齯齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm8888GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GGGGGGGG8888888888888888齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm88GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GGGGGG8888888888888888齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777777777777777缏777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm88GG88GG88GG88GG88GG88GG88GG88GG88GG88GG88GGGGGG8888888888888888齯齯齯齯齯齯齯_y_y777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777_y_y齯齯齯齯齯齯mm8888GG88GG88GG88GG88GG88GG88GG88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777_y_y齯齯齯齯齯齯mm8888GG88GG88GG88GG88GG88GG88GG88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777_y_y齯齯齯齯齯齯mm88GG88GG88GG88GG88GG88GG8888GGGGGG8888888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777777777u77777777777777777777777777777777777_y_y齯齯齯齯齯齯mm88GG88GG88GG88GG88GG88GG8888GGGGGG8888888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777777777 =7777777777777777777777777777777777777_y_y齯齯齯齯齯齯mm8888GG88GG88GG88GG88GGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777777777!<7777777777777777777777777777777777777_y_y齯齯齯齯齯齯mm8888GG88GG88GG88GG88GGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y7777777777777777777777777777777777777777777777777777777777777m7777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm88GG88GG88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777777777777777777777777777R7777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm88GG88GG88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777777777777777777777777777ݼ777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm88GGGGGGGGGG88888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm88888888888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777777777777777777777777777771=77777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm88888888888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯齯_y_y777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯_y_y7777777777777777777777777777777777777777777777777777777777777777777K7777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯mm888888888888齯a^\a^\a^\a^\a^\a^\齯齯齯_y_y77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯mm8888齯a^\a^\a^\a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯mm8888齯a^\a^\a^\a^\a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777O<777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯a^\a^\a^\a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯a^\a^\a^\a^\a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯a^\a^\a^\a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯a^\a^\a^\a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777y<77777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777F77777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ǽ7777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777l777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>77777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯a^\a^\a^\a^\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯a^\a^\a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777e<777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯齯a^\a^\a^\a^\a^\a^\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A77777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯a^\a^\a^\a^\a^\a^\齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯齯a^\a^\a^\a^\a^\a^\齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777꼏7777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯a^\a^\a^\a^\a^\a^\齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777777777_y_y齯齯齯a^\a^\a^\a^\a^\a^\齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777_y_y_y_y齯a^\a^\a^\a^\a^\a^\齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_y_y_y_y齯a^\a^\a^\a^\a^\a^\齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777׼777777777777777777777777777777777777777777777777777777777777777_y_y齯a^\a^\a^\a^\a^\a^\齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;777777777777777777777777777777777777777777777777777777777777777_y_y齯a^\a^\a^\a^\a^\a^\齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;77777777777777777777777777777777777777777777777777777777777777777齯a^\a^\a^\a^\a^\a^\齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777齯a^\a^\a^\a^\a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777y=7777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a^\a^\a^\a^\a^\a^\齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777a^\a^\齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;777777777777777777777777777777777777777777777777777777777777777777777a^\a^\齯齯齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777k=7777777777777777777777777777777777777777777777777777777777777777777777777齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777777777777777777777齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777h77777777777777777777777777777777777777777777777777777777777777777777777777777齯齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777齯齯齯7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 =7777777777777777777777777777777777777777777777777777777777777777777777777777777齯齯777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777:77777777777777777777777777777777777777777777777777777777777777777777777777777777777齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?77777777777777777777777777777777777777777777777777777777777777777777777777777777777齯77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777h=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777𼏀7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777W:777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777H77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777̽7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777K777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777м777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777v777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777D=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ּ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777H=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777v777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777㼏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777t<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777X777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777z777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777k777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777𼏀7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777774=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777㼏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777windows_installer_welcome96.bmp000077500000000000000000004556601452337521700364610ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_installerBM[6(:z[777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|//777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B|B|///7777777777777777777777777777777777777777777777777ѿѿѿ7777777777777777777777777777777777777777777777777777777777777777777777777B|B|B|//////////////77777777777777777777777777777777777777777777ѿѿ---ѿѿ77777777777777777777777777777777777777ó777777777777777777777777777777777B|B|B|B|B|B|B|B|B|B|B|B|B|B|///7777777777777777777777777777777777777777ѿѿ-------ѿѿ7777777777777777777777777777777777ó77777777777777777777777777777777777777777777777B|B|B|//7777777777777777777777777777777777777ѿѿ---------ѿѿ777777777777777777777777777777|cP|cPó77777777777777777777777777777777777777777777777777B|B|/77777777777777777777777777777777777ѿѿ----EE-------ѿѿ77777777777777777777777777|cP|cP|cP|cPó77777777777777777777777777777777777777777B|/7777777777777777777777777777777777------EE-----------ѿѿ7777777777777777777777|cP|cP|cP|cP|cP|cPᏀ7777777777777777777///////77777777777777777777B|/7777777777777777777777777777777777-----------------ѿѿ777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777B|B|B|B|B|//7777777777777777777B|/77777777777777777777777777777777777-----------------ѿѿ77777777777777|cP|cP|cP|cP|cP|cP|cP|cPᏀ77777777777777777777777777777777777B|B|/777777777777777777/7777777777777777777777777777777-------------------ѿѿ77777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ777777777777777777777777777777777777777B|/77777777777777777/77777777777777777777|cP|cPDDDDDD|cP|cP77777777777-----------------777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cP|cPᏀ7777777777777777777777777777777777777777B|/7777777777777777/7777777777777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP777777777777-------------77777777|cP|cP|cP|cP|cP|cP|cP|cP777777777777777777777777777777777777777B|/77777777777777/7777777777777777777|cP|cP77777777777777-----------777777777|cP|cP|cP|cP|cP|cP|cP|cP|cP7777777777777777777777777777777777777777B|//77777777777/B|777777777777777777777777777777777777-------7777777777|cP|cP|cP|cP|cP|cP|cP77777777777777777777777LL777777777777777777B|B|//7777777/B|777777777777777777777|cP|cP|cP|cP777777777777777777---777777777777|cP|cP|cP|cP|cP|cPó77777777777777777777777LL77LL777777777777777777B|B|////B|7777777777777777777777|cP|cP|cP7777777777777777777777777777777777|cP|cP|cP|cPᏀ77777777777777777777777LL777777LL777777777777777777B|B|///////B|B|777777777777777777777777777777777777777777777777777777777777|cP|cPᏀ77777777777777777777777LL7777777777LL777777777777777777B|B|B|B|B|B|B|7777777777777777777777777|cP|cP|cP|cP77777777777777777777777777777777777777|cP|cPᏀ77777777777777777777777LL77777777777777LL777777777777777777777777777777777777777777777777|cP|cP|cP777777777777777777777777777777777777777|cP|cPᏀ77777777777777777777777LL77777777777777LL77777777777777777777777777777777777777777777777777ӽӽ|cPӽӽ77777777777777777777777777777777777777777Ꮐ77777777777777777777777LL77LL7L77777777LL777777ѿѿ777777777777777777777777777777777777777777777ӽӽ77777777777777777777777777777777777777777777Ꮐ77777777777777777777777LL77LL77L7L77777LL77LLL7ѿѿ77777777777777777777777777777777777777777777777ӽ|cPӽ7777777777777777777777777777777777777777777777777777777777777777777777LL77LL77777L7777LL77LL77ѿLL77ѿ))))))ѿ777777777777777777777777777777777777777777ӽ|cPӽ77777777777777777777ѿѿѿ777777777777777777777777777777777777777777777LL77LL7777777777LL77LL77ѿѿ777ѿ))))))))))))))))))ѿ777777777777777777777777777777777MMMMӽӽӽ7777777777777777777ѿѿѿѿ77777777777777777777777777777777777777777777LL77LL777777LL77LL77ѿѿ7777))))))))))))))))))))))))))))))7L777777777777777777777777777MMMMMMMMMMMMMMMMhMM77777777777777777777ѿѿttѿѿ77777777777777777777777777777777777777777777LL77LL77LL77LL77ѿѿ777))))))77ѿ))))))))))))))))))ѿ7777L777777777777777777777777MM=7777777777777777777777777777777777777777777777777777777777p77p°°°pO`'°pO7p777777777777777777777777777777777777777777777777777777777777777,u7777777777777777777777777777777777777777777777777777777777ppoZǸѻggg°ǸǸgg`'`'`'pOoZ7oZ7poZpoZ777777777777777777777777777777777777777777777777777777777777;7777777777777777777777777777777777777777777777777777777777poZpoZoZoZǸg°gǸǸǸǸggǸ`'Ǹ`'pO`'poZp7oZp777777777777777777777777777777777777777777777777777777777777J77777777777777777777777777777777777777777777777777777777777oZ7oZoZgg°ǸǸg°ǸpOǸpO`'`'ppp7oZpp77777777777777777777777777777777777777777777777777777777777.:7777777777777777777777777777777777777777777777777777777777poZpoZgoZg°goZǸgǸǸǸǸg°gǸgǸ`'pO`'poZp7poZoZp777777777777777777777777777777777777777777777777777777777777u<777777777777777777777777777777777777777777777777777777777pppggg°oZǸ°°ǸǸ°ggg`'`'pO7oZ7ppoZ7p7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p7°`'pO`'pOpO`'°°g°g°pO`'pO`'pO7p7poZoZp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZp7poZoZ`'pO`'`'`'oZoZ`'`'`'㻢gǸǸggǸǸggg°gǸǸ`'pO`'`'`'ppp7oZpp77777777777777777777777777777777777777777777777777777777777U77777777777777777777777777777777777777777777777777777777777p7g°gpO`'°㻢gg°㻢g°°pO`'pO`'pO7p7p77p7p777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZpppoZoZpppoZǸg°g`'gǸǸg°gǸǸѻgǸǸ`'`'`'pO`'p7pppoZp7pp7777777777777777777777777777777777777777777777777777777777Xa77777777777777777777777777777777777777777777777777777777oZ7p77p°g°`'pO°g°pO`'pO`'pO7p7p77p7p7777777777777777777777777777777777777777777777777777777777cܼ77777777777777777777777777777777777777777777777777777777oZpp7pppp°oZ°ggg°`'`'ggg°Ǹ㻢ggg`'pO`'`'`'°7ppp7poZppp7p777777777777777777777777777777777777777777777777777777777ၻ77777777777777777777777777777777777777777777777777777777oZoZp7p7poZp㻢gǸg°g°g°`'Ǹ`'gǸg°gǸgpO`'pO`'°g7p7p77p7p7777777777777777777777777777777777777777777777777777777777R<7777777777777777777777777777777777777777777777777777777oZ7ppp7oZ7ѻggg°ggg°Ǹgg°Ǹ°g`'`'°ggp7pppoZoZ7ppp777777777777777777777777777777777777777777777777777777777z[=7777777777777777777777777777777777777777777777777777777oZoZp7p7poZ°gǸg°°gǸgǸg°Ǹg°g°g°g7p7poZoZp7p7777777777777777777777777777777777777777777777777777777777C7777777777777777777777777777777777777777777777777777777oZpp7ppѻgg°Ǹ°°ggg°ggǸgggg°ggppp7oZpp7pp77777777777777777777777777777777777777777777777777777777dX777777777777777777777777777777777777777777777777777777777p7p7㻢g°°°g°gg°°g°7p7poZoZp7p7p77777777777777777777777777777777777777777777777777777777;777777777777777777777777777777777777777777777777777777ppoZp7pppoZoZ°gǸǸǸǸggg°gǸǸggǸǸp7ppoZ7ppp777777777777777777777777777777777777777777777777777777777r<777777777777777777777777777777777777777777777777777777p77p7p7㻢g°°g°g°°°7p7poZ7p777777777777777777777777777777777777777777777777777777777*+7777777777777777777777777777777777777777777777777777777poZppp7poZoZѻggǸǸǸǸg°gggǸǸgg°gǸǸppp7oZoZp7poZ7777777777777777777777777777777777777777777777777777777g<777777777777777777777777777777777777777777777777777777p77p7poZoZǸǸǸǸg°gǸǸg°gǸǸǸp777p777777777777777777777777777777777777777777777777777777770#77777777777777777777777777777777777777777777777777777ppoZ7ppǸǸgg°ǸǸ°ggǸ7ppoZpppoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZoZp7poZoZǸǸǸǸg°gǸgǸg°gǸǸǸp77poZp777777777777777777777777777777777777777777777777777777773 77777777777777777777777777777777777777777777777777777p7oZpp7oZoZǸǸggg°Ǹ°Ǹpppp7oZ7poZ777777777777777777777777777777777777777777777777777777|2777777777777777777777777777777777777777777777777777777poZoZp77p7°g°°°°°pO°7p777poZp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZpoZpppoZpoZ°ǸǸǸgǸ°gǸgǸg`'`'Ǹ`'Ǹ7p7ppppoZ777777777777777777777777777777777777777777777777777777D7777777777777777777777777777777777777777777777777777p7777p777°°°g°°°°`'pOpOp7p7p7oZp7777777777777777777777777777777777777777777777777777771,7777777777777777777777777777777777777777777777777777ppoZpoZpoZp7poZpǸggǸgǸǸgǸgggǸgǸgpO`'Ǹ`'Ǹpppp7poZoZ7p77777777777777777777777777777777777777777777777777777i7777777777777777777777777777777777777777777777777777p77poZoZp7p7poZǸ°g°gǸǸǸǸ㻢g°gǸǸg°g°gǸǸ7p7pp7p7oZp777777777777777777777777777777777777777777777777777777M3777777777777777777777777777777777777777777777777777oZpoZppoZ7ppp7oZg°ggǸǸǸ°ggg°Ǹp7pp7ppp7oZpp77777777777777777777777777777777777777777777777777777Z2777777777777777777777777777777777777777777777777777oZ7poZoZp7p7poZǸǸǸ㻢gǸǸǸǸg°g°gǸǸp7p7pp7p7poZoZp7777777777777777777777777777777777777777777777777777771y777777777777777777777777777777777777777777777777777oZpp7oZpp7ppǸǸѻg°gǸǸѻgǸ7ppp7pppp7ppoZ7pp7777777777777777777777777777777777777777777777777777^777777777777777777777777777777777777777777777777777oZoZp7p77p7p7p7㻢g°g°°p7p7p77p7p7p77p7p7777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777oZ7pppoZp7ppp7pǸ°gǸg°ggǸǸǸpp7pppp7ppp7poZppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZoZp7p77p7p7p7㻢g°°ggg°p7p77p7p77p7p7777777777777777777777777777777777777777777777777777H777777777777777777777777777777777777777777777777777oZpp7poZppp7pppǸѻgg°gǸg°Ǹg`'V8°gǸǸp°7ppoZ7ppp777777777777777777777777777777777777777777777777777~77777777777777777777777777777777777777777777777777p77p7poZoZp7p7pǸǸ㻢g°gǸǸǸǸ_D*V8pOgǸǸg°gǸǸ°gg7poZoZp7p7777777777777777777777777777777777777777777777777777~477777777777777777777777777777777777777777777777777ppoZp7ppoZ7ppp7Ǹ°ggǸѻggǸV8V8°`'gǸgg°Ǹ㻢gg°gp7oZpp7p7777777777777777777777777777777777777777777777777771577777777777777777777777777777777777777777777777777p77p7poZoZp7p7pǸǸ°gǸǸ°ǸǸV8°`'°gǸǸg°g°gǸǸ°gg°gpoZoZp7p7777777777777777777777777777777777777777777777777777 p)7777777777777777777777777777777777777777777777777p7poZppp7oZpp7ppǸѻg°Ǹ°Ǹ°`'gg°Ǹgg°Ǹggg°oZoZ7ppp77777777777777777777777777777777777777777777777777O/77777777777777777777777777777777777777777777777777p77p777p7°gpOpOg°g°°g77p777777777777777777777777777777777777777777777777777%7777777777777777777777777777777777777777777777777ppoZ7poZpoZpppǸpǸǸǸgǸgǸgǸǸgggǸǸggggpoZp7p77777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777p7poZoZp777p77°g°㻢g°°g°77p777777777777777777777777777777777777777777777777777f777777777777777777777777777777777777777777777777pp7oZppoZpoZp7pǸpǸggǸǸgǸgǸǸgǸǸǸѻggg°gpoZpppoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p7oZpoZp7poZpǸp7pǸǸ°gǸǸ`'°gǸǸg°ǸǸǸgǸg°ggp7poZpoZ7777777777777777777777777777777777777777777777777087777777777777777777777777777777777777777777777777poZoZ7oZ7ppppp7Ǹ°Ǹgg`'g°ǸǸ°ѻgǸ°Ǹ°gggpp7oZ7oZ77777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777oZpoZp7poZpǸp7pǸǸg°gǸǸ`'°gǸgǸg°gǸgǸǸgǸg°gp7poZpoZ7777777777777777777777777777777777777777777777777*-77777777777777777777777777777777777777777777777oZppoZpp77Ǹ7ppǸǸpO`'gggg°Ǹ°Ǹ°ggg°7pppp777777777777777777777777777777777777777777777777*77777777777777777777777777777777777777777777777oZp77p77p7p7эpOg°g°g°°g°g°°g°`'pO7p7p77p7777777777777777777777777777777777777777777777770377777777777777777777777777777777777777777777777oZoZ7poZoZp7ǸǸppp7pǸǸǸǸѻgǸǸ°gggǸǸggg°gǸǸ°`'`'`'ppp7poZoZp7777777777777777777777777777777777777777777777777**.77777777777777777777777777777777777777777777777p77p7p7p7°g°g°g°7°g°°g°g°gpO`'pO7p77p777777777777777777777777777777777777777777777777{57777777777777777777777777777777777777777777777oZoZpppoZoZppǸǸp7ppǸǸggg°gǸǸg°gggǸǸppgǸǸg°gǸǸg`'`'pO`'°gpoZoZppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p7poZp7pgǸp7gǸg°g°g°gǸg°g°ggǸp7p7pgǸg°gg°gǸg`'pO`'pO`'`'°g°7poZp7p777777777777777777777777777777777777777777777777-7777777777777777777777777777777777777777777777ppp7ppppgggǸ㻢gg°ggg°Ǹ°ggggpp7pppǸg°gg`'`'`'°pO`'`'7pppp7p7777777777777777777777777777777777777777777777707777777777777777777777777777777777777777777777poZp7p7poZp7°g°Ǹ㻢gǸgg°gǸ°g°gǸ7p7p7pǸp7pg°gǸ°g`'°g`'pOpO7poZp7p77777777777777777777777777777777777777777777777740777777777777777777777777777777777777777777777p7oZ7ppp7oZ7pg°gg㻢gǸ°gg㻢ggg°Ǹ°pp7ppppggg°Ǹggggg°gp7oZ7ppp77777777777777777777777777777777777777777777777+47777777777777777777777777777777777777777777777poZp7p77°g°°g°p7p77°g°g°°°gp77p7p77777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777pppp7poZoZpgggǸǸѻg°gǸǸ㻢gǸǸggǸǸ7pppǸǸpp°gǸǸpgggg7poZoZp7pp7777777777777777777777777777777777777777777777)7777777777777777777777777777777777777777777777poZp7p77pg°°g°㻢g°°gpO7p77p7°7pg°gp77p7p7777777777777777777777777777777777777777777777-N77777777777777777777777777777777777777777777pp7oZ7pppoZoZpp°gǸǸ㻢gggǸǸǸǸg°ǸǸgp7pǸǸp7ppǸǸpppg°ppoZoZppp7p777777777777777777777777777777777777777777777𭏀77777777777777777777777777777777777777777777p7poZp7poZpoZpgǸǸ㻢gǸǸǸǸǸgǸ7pǸpǸp7pǸpǸp7pp7p7p7p7777777777777777777777777777777777777777777777z777777777777777777777777777777777777777777777pppp7oZ77g°Ǹ°ǸgǸ°Ǹ7ppppp7Ǹ7Ǹ7ppppp7oZp7ppp777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777p77poZppǸǸǸgǸǸǸgǸgǸp7pǸpǸp7pǸpǸp7ppp7ppoZp7p777777777777777777777777777777777777777777777727777777777777777777777777777777777777777777pppoZoZppppǸǸgggǸǸgpp7Ǹ7Ǹ7ppppp777ppppp7oZ777777777777777777777777777777777777777777774;77777777777777777777777777777777777777777777p777p7°°g°°°g°77p777p777p777poZp7poZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZoZpoZp7pǸgǸǸǸǸgǸg°ǸpǸpppǸpǸp7ppppppp7oZ7pp77777777777777777777777777777777777777777777Ų7777777777777777777777777777777777777777777poZ77p7p7°777p777p777p777p77poZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZppppǸǸpppǸǸǸgǸpppǸpǸp7pǸpǸppppp7pppppoZpoZp7777777777777777777777777777777777777777777,777777777777777777777777777777777777777777oZpoZoZp7p7p7pǸǸp7p7pǸǸǸǸp7p7pǸǸp7p7pǸǸp7p7pp7p7pp7p7777777777777777777777777777777777777777777777Ϭ777777777777777777777777777777777777777777oZoZ7oZpp7pppp7Ǹpp7ppǸǸpp7ppǸ7ppp7Ǹpp7pp7ppp7pp7poZpoZp7777777777777777777777777777777777777777777/47777777777777777777777777777777777777777777poZoZp7p7pp7p7pǸǸp7p7pǸǸg°gǸǸp7p7pǸǸp7p7pǸǸp7p7pp7p7pp7p7poZ77777777777777777777777777777777777777777777,77777777777777777777777777777777777777777poZoZppoZ7ppp7pp7ppǸ7ppp7Ǹg°ggǸ7ppp7Ǹpp7ppǸ7ppp7pp7pp7ppp7oZpp7777777777777777777777777777777777777777777ए7777777777777777777777777777777777777777777p77p7p7p77p7p7p77p7p7p77p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7poZoZp7p777777777777777777777777777777777777777777Ƕ77777777777777777777777777777777777777777poZoZp7poZppp7pppp7ppp7pǸppp7pppǸp7ppp7pǸppp7pppǸp7ppp7pǸppp7pppp7ppp7pppp7ppoZ7pp7777777777777777777777777777777777777777770777777777777777777777777777777777777777777poZp7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p7oZp7p77777777777777777777777777777777777777777717777777777777777777777777777777777777777pp7oZ7pppoZp7ppp7pppp7pppǸp7ppp7pǸp7ppp7pppp7pppp7ppp7poZppp7p77777777777777777777777777777777777777777H7777777777777777777777777777777777777777p7poZp7p7ǸǸǸǸǸǸǸǸp7p77p7p777777777777777777777777777777777777777777/h*77777777777777777777777777777777777777777pppoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZp7ppp7777777777777777777777777777777777777777717777777777777777777777777777777777777777p7oZoZoZoZoZǸǸǸǸǸǸǸoZoZp777777777777777777777777777777777777777777)777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777%77777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777794.77777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777.v47777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777 17777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZ7777oZ77777oZ77777oZ777oZoZoZoZoZoZoZoZ7777777777777777777777777777777777777707777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777)7777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ )oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777737777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZ)) )oZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777*77777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ ) ) )oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777)2777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZ)) ))) )oZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777-V777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ ) ) ) ) )oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777/!77777777777777777777777777777777777777777777777777777oZoZoZoZ)) ))) ))) )oZoZoZ7777777777777777777777777777777777777777777777777777771嫏777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777#077777777777777777777777777777777777777777777777777777777777777777777777777777777777777)) ))) ))) ))) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777:7777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777<777777777777777777777777777777777777777777777777777777777777777777777777777777777777)) ))) ))) ))) ))) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777477777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777727777777777777777777777777777777777777777777777777777777777777777777777777777777777)) ))) ))) ))) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777;27777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777770C777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777+77777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777770[4777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777-77777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777771%7777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777*3,777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777*77777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777770ǵ7777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777)777777777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )  77777777777777777777777777777777777777777777777777777777777777777777774i77777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777772槏7777777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )  77777777777777777777777777777777777777777777777777777777777777777777&".777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )  777777777777777777777777777777777777777777777777777777777777777777"147777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777T777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )  77777777777777777777777777777777777777777777777777777777777777771577777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777727777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )  77777777777777777777777777777777777777777777777777777777777777J777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777:777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )  77777777777777777777777777777777777777777777777777777777777707777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )  7777777777777777777777777777777777777777777777777777777777+77777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777)7777777777777777777777777777777777777777777777777777777                                                                              77777777777777777777777777777777777777777777777777777777.小777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777771.77777777777777777777777777777777777777777777777777777                                                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777/$*777777777777777777777777777777777777777777777777777                                                                                      7777777777777777777777777777777777777777777777777777&77777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777-7777777777777777777777777777777777777777777777777                                                                                          777777777777777777777777777777777777777777777777774+777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777o'77777777777777777777777777777777777777777777777                                                                                              77777777777777777777777777777777777777777777777747777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777,>5777777777777777777777777777777777777777777777                                                                                                  77777777777777777777777777777777777777777777774J77777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777771.7777777777777777777777777777777777777777777                                                                                                      77777777777777777777777777777777777777777777%,777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777770%77777777777777777777777777777777777777777                                                                                                          777777777777777777777777777777777777777777477777777777777777777777777777777777777777  )   )   )   )   )   )   )   )   )   )   )   )   7777777777777777777777777777777777777777776777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)   )   )   )   )   )   )   )   )   )   )   )   ) 7777777777777777777777777777777777777777777777777777777777777777777777+777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  )   )   )   )   )   )   )   )   )   )   )   )   7777777777777777777777777777777777777777777777777777777777777777777777ڰ777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777!2777777777777777777777777777777777777777777777777777777777777777777777)   )   )   )   )   )   )   )   )   )   )   )   ) 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777ǰ777777777777777777777777777777777777777777777777777777777777777777777  )   )   )   )   )   )   )   )   )   )   )   )   7777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777                                                  77777777777777777777777777777777777777777777777777777777777777777777774777777777777777777777777777777777777777777777777777777777777777777777)   )   )   )   )   )   )   )   )   )   )   )   ) 77777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777  )   )   )   )   )   )   )   )   )   )   )   )   7777777777777777777777777777777777777777777777777777777777777777777777-Q1777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777-'777777777777777777777777777777777777777777777777777777777777777777777                                                  777777777777777777777777777777777777777777777777777777777777777777777733777777777777777777777777777777777777777777777777777777777777777777777                                                  77777777777777777777777777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777O777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777-&777777777777777777777777777777777777777777777777777777777777777777777                                                  777777777777777777777777777777777777777777777777777777777777777777777794777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777$777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777                                                  77777777777777777777777777777777777777777777777777777777777777777777772;5777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777.3777777777777777777777777777777777777777777777777777777777777777777777                                                  777777777777777777777777777777777777777777777777777777777777777777777733777777777777777777777777777777777777777777777777777777777777777777777                                                  77777777777777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777*4777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  r   r   r   r   r   r   r   r   r   r   r   r   7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777﵏777777777777777777777777777777777777777777777777777777777777777777777r   r   r   r   r   r   r   r   r   r   r   r   r 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777!777777777777777777777777777777777777777777777777777777777777777777777  r   r   r   r   r   r   r   r   r   r   r   r   77777777777777777777777777777777777777777777777777777777777777777777770{777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777+𥏀777777777777777777777777777777777777777777777777777777777777777777777r   r   r   r   r   r   r   r   r   r   r   r   r 7777777777777777777777777777777777777777777777777777777777777777777777)(777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777O3777777777777777777777777777777777777777777777777777777777777777777777  r   r   r   r   r   r   r   r   r   r   r   r   7777777777777777777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777                                                  77777777777777777777777777777777777777777777777777777777777777777777775777777777777777777777777777777777777777777777777777777777777777777777r   r   r   r   r   r   r   r   r   r   r   r   r 7777777777777777777777777777777777777777777777777777777777777777777777c777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777  r   r   r   r   r   r   r   r   r   r   r   r   7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  77777777777777777777777777777777777777777777777777777777777777777777770(,777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777,S,777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777-*777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777.;%777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777%777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777'6'777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  77777777777777777777777777777777777777777777777777777777777777777777770-777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777,5777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777777777777777777777777                                                  777777777777777777777777777777777777777777777777777777777777777777777784777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 777777777777777777777777777777777777777777777777777777777777777777777740777777777777777777777777777777777777777777777777777777777777777777777   r   r   r   r   r   r   r   r   r   r   r   r  7777777777777777777777777777777777777777777777777777777777777777777777+4777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777 r   r   r   r   r   r   r   r   r   r   r   r   r7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777+*777777777777777777777777777777777777777777777777777777777777777777777   r   r   r   r   r   r   r   r   r   r   r   r  7777777777777777777777777777777777777777777777777777777777777777777777=.777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 777777777777777777777777777777777777777777777777777777777777777777777740777777777777777777777777777777777777777777777777777777777777777777777 r   r   r   r   r   r   r   r   r   r   r   r   r77777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777+777777777777777777777777777777777777777777777777777777777777777777777   r   r   r   r   r   r   r   r   r   r   r   r  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777I$777777777777777777777777777777777777777777777777777777777777777777777 r   r   r   r   r   r   r   r   r   r   r   r   r7777777777777777777777777777777777777777777777777777777777777777777777d777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777)'777777777777777777777777777777777777777777777777777777777777777777777   r   r   r   r   r   r   r   r   r   r   r   r  7777777777777777777777777777777777777777777777777777777777777777777777.٬777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777.1,777777777777777777777777777777777777777777777777777777777777777777777 r r r r r r r r r r r r r r r r r r r r r r r r r7777777777777777777777777777777777777777777777777777777777777777777777y777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 77777777777777777777777777777777777777777777777777777777777777777777772\,777777777777777777777777777777777777777777777777777777777777777777777 r r r r r r r r r r r r r r r r r r r r r r r r r777777777777777777777777777777777777777777777777777777777777777777777714777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 77777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777 r r r r r r r r r r r r r r r r r r r r r r r r r7777777777777777777777777777777777777777777777777777777777777777777777.0777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777-P777777777777777777777777777777777777777777777777777777777777777777777 r r r r r r r r r r r r r r r r r r r r r r r r r7777777777777777777777777777777777777777777777777777777777777777777777}777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 77777777777777777777777777777777777777777777777777777777777777777777771e0777777777777777777777777777777777777777777777777777777777777777777777 r r r r r r r r r r r r r r r r r r r r r r r r r7777777777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 r r r r r r r r r r r r r r r r r r r r r r r r r777777777777777777777777777777777777777777777777777777777777777777777727777777777777777777777777777777777777777777777777777777777778aļ -Kqa87777777777777777777777777777777777777777777777777777777777777/\7777777777777777777777777777777777777777777777777777777777GǿHG77777777777777777777777777777777777777777777777777777777777Q77777777777777777777777777777777777777777777777777777777<ƾI<7777777777777777777777777777777777777777777777777777777773L7777777777777777777777777777777777777777777777777777777]t]77777777777777777777777777777777777777777777777777777777-777777777777777777777777777777777777777777777777777777}]}777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777U777777777777777777777777777777777777777777777777777777ѱ7777777777777777777777777777777777777777777777777777~\~77777777777777777777777777777777777777777777777777777*0777777777777777777777777777777777777777777777777777]t]7777777777777777777777777777777777777777777777777777677777777777777777777777777777777777777777777777777<ߋ<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ƾJ777777777777777777777777777777777777777777777777777007777777777777777777777777777777777777777777777777ED777777777777777777777777777777777777777777777777772O7777777777777777777777777777777777777777777777777ƾJ77777777777777777777777777777777777777777777777777𮏀7777777777777777777777777777777777777777777777778䎀87777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ar`7777777777777777777777777777777777777777777777777g-777777777777777777777777777777777777777777777777ļM77777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777-#777777777777777777777777777777777777777777777777܏7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 47777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777!j777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777737777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*17777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ӟ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775h7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(l47777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 47777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777037777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-17777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777377777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773I47777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&07777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777774777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777757777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-J7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/c7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777727777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777247777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ⲏ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777. 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777W7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-a*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/F77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773ܳ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777寏7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B3777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*W77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777p.777777777777777777777777777777777777777777777777܏7777777777777777777777777777777777777777777777777.777777777777777777777777777777777777777777777777-/7777777777777777777777777777777777777777777777777(0777777777777777777777777777777777777777777777777LM7777777777777777777777777777777777777777777777777&2777777777777777777777777777777777777777777777777qar_77777777777777777777777777777777777777777777777770927777777777777777777777777777777777777777777777778㎀87777777777777777777777777777777777777777777777777X-7777777777777777777777777777777777777777777777777JJ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777DD77777777777777777777777777777777777777777777777777/5177777777777777777777777777777777777777777777777777KK777777777777777777777777777777777777777777777777777,³77777777777777777777777777777777777777777777777777<ތ<777777777777777777777777777777777777777777777777777.777777777777777777777777777777777777777777777777777u\vZ77777777777777777777777777777777777777777777777777770Q7777777777777777777777777777777777777777777777777777\~\~77777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777TT777777777777777777777777777777777777777777777777777777($777777777777777777777777777777777777777777777777777777^{^{7777777777777777777777777777777777777777777777777777777(277777777777777777777777777777777777777777777777777777777vZvZ77777777777777777777777777777777777777777777777777777777k77777777777777777777777777777777777777777777777777777777 @777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777P777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ݏ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777WvZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѷ17777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ڏ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ۏ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777217777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777SP7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777xWvZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ޏ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777RO777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777? @7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777TQ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779׍9777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|RzU77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777fpct7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777^{^|777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777fper77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777{RzT77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779R Q:7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@PO@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777wYQ0  0QvZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777windows_uninstaller_welcome192.bmp000077500000000000000000022070001452337521700374250ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_uninstallerBM 6(G[ 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZpppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZpppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77oZoZoZoZǸǸǸǸoZoZoZoZoZoZoZoZǸǸǸǸoZoZoZoZoZoZoZoZǸǸǸǸoZoZoZoZ7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77oZoZoZoZǸǸǸǸoZoZoZoZoZoZoZoZǸǸǸǸoZoZoZoZoZoZoZoZǸǸǸǸoZoZoZoZ7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pppppp77oZoZpppp77ppppǸǸǸǸǸǸpppp77pppp77ppppoZoZ77pppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pppppp77oZoZpppp77ppppǸǸǸǸǸǸpppp77pppp77ppppoZoZ77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77ppoZoZoZoZpp77pp77ppǸǸǸǸppggǸǸǸǸpp77pp77ppǸǸǸǸpppp77pp77ppoZoZoZoZpp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77ppoZoZoZoZpp77pp77ppǸǸǸǸppggǸǸǸǸpp77pp77ppǸǸǸǸpppp77pp77ppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777727777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppppp77ppppoZoZ77pppppp77ǸǸgg°°ggǸǸ77pppppp77ǸǸ`'`'`'`'pOpOgg77pppppp77oZoZppppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppppp77ppppoZoZ77pppppp77ǸǸgg°°ggǸǸ77pppppp77ǸǸ`'`'`'`'pOpOgg77pppppp77oZoZppppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp777777pp7777°°gg°°7777pp7777pOpO`'`'°°7777pp77oZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp777777pp7777°°gg°°7777pp7777pOpO`'`'°°7777pp77oZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppppppoZoZoZoZpp77ppǸǸppǸǸggggggǸǸppǸǸpp77ppǸǸǸǸ`'`'`'`'`'`'ǸǸpppp77ppoZoZoZoZ77ppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppppppoZoZoZoZpp77ppǸǸppǸǸggggggǸǸppǸǸpp77ppǸǸǸǸ`'`'`'`'`'`'ǸǸpppp77ppoZoZoZoZ77ppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppp77㻢gg°°7777pp77pOpOpOpO`'`'pOpO7777pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppp77㻢gg°°7777pp77pOpOpOpO`'`'pOpO7777pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77oZoZoZoZǸǸǸǸ㻢ggǸǸǸǸppppǸǸ`'`'ǸǸ`'`'pOpO`'`'ǸǸppppppoZoZppoZoZppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77oZoZoZoZǸǸǸǸ㻢ggǸǸǸǸppppǸǸ`'`'ǸǸ`'`'pOpO`'`'ǸǸppppppoZoZppoZoZppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp°°°°°°pOpO`'`'°°pOpO77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp°°°°°°pOpO`'`'°°pOpO77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZǸǸѻgggggg°°ǸǸǸǸgggg`'`'`'`'`'`'pOpOoZoZ77oZoZ77ppoZoZppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZǸǸѻgggggg°°ǸǸǸǸgggg`'`'`'`'`'`'pOpOoZoZ77oZoZ77ppoZoZppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZppoZoZoZoZoZoZǸǸgg°°ggǸǸǸǸǸǸǸǸggggǸǸ`'`'ǸǸ`'`'pOpO`'`'ppoZoZpp77oZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZppoZoZoZoZoZoZǸǸgg°°ggǸǸǸǸǸǸǸǸggggǸǸ`'`'ǸǸ`'`'pOpO`'`'ppoZoZpp77oZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77oZoZoZoZgggg°°ǸǸǸǸgg°°ǸǸpOpOǸǸpOpO`'`'`'`'pppppp77oZoZpppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77oZoZoZoZgggg°°ǸǸǸǸgg°°ǸǸpOpOǸǸpOpO`'`'`'`'pppppp77oZoZpppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZppoZoZggoZoZgg°°ggoZoZǸǸggǸǸǸǸǸǸǸǸgg°°ggǸǸggǸǸ`'`'pOpO`'`'ppoZoZpp77ppoZoZoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZppoZoZggoZoZgg°°ggoZoZǸǸggǸǸǸǸǸǸǸǸgg°°ggǸǸggǸǸ`'`'pOpO`'`'ppoZoZpp77ppoZoZoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppppgggggg°°oZoZǸǸ°°°°ǸǸǸǸ°°gggggg`'`'`'`'pOpO77oZoZ77ppppoZoZ77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppppgggggg°°oZoZǸǸ°°°°ǸǸǸǸ°°gggggg`'`'`'`'pOpO77oZoZ77ppppoZoZ77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77°°`'`'pOpO`'`'pOpOpOpO`'`'°°°°gg°°gg°°pOpO`'`'pOpO`'`'pOpO77pp77ppoZoZoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77°°`'`'pOpO`'`'pOpOpOpO`'`'°°°°gg°°gg°°pOpO`'`'pOpO`'`'pOpO77pp77ppoZoZoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77ppoZoZoZoZ`'`'pOpO`'`'`'`'`'`'oZoZoZoZ`'`'`'`'`'`'㻢ggǸǸǸǸggggǸǸǸǸgggggg°°ggǸǸǸǸ`'`'pOpO`'`'`'`'`'`'pppppp77oZoZpppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p7777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77ppoZoZoZoZ`'`'pOpO`'`'`'`'`'`'oZoZoZoZ`'`'`'`'`'`'㻢ggǸǸǸǸggggǸǸǸǸgggggg°°ggǸǸǸǸ`'`'pOpO`'`'`'`'`'`'pppppp77oZoZpppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77gg°°ggpOpO`'`'°°㻢gggg°°㻢gg°°°°pOpO`'`'pOpO`'`'pOpO77pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77gg°°ggpOpO`'`'°°㻢gggg°°㻢gg°°°°pOpO`'`'pOpO`'`'pOpO77pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppppppoZoZoZoZppppppoZoZǸǸgg°°gg`'`'ggǸǸǸǸgg°°ggǸǸǸǸѻggǸǸǸǸ`'`'`'`'`'`'pOpO`'`'pp77ppppppoZoZpp77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppppppoZoZoZoZppppppoZoZǸǸgg°°gg`'`'ggǸǸǸǸgg°°ggǸǸǸǸѻggǸǸǸǸ`'`'`'`'`'`'pOpO`'`'pp77ppppppoZoZpp77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A77777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pp7777pp°°gg°°`'`'pOpO°°gg°°pOpO`'`'pOpO`'`'pOpO77pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pp7777pp°°gg°°`'`'pOpO°°gg°°pOpO`'`'pOpO`'`'pOpO77pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77pppppppp°°oZoZ°°gggggg°°`'`'`'`'gggggg°°ǸǸ㻢gggggg`'`'pOpO`'`'`'`'`'`'°°77pppppp77ppoZoZpppppp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77pppppppp°°oZoZ°°gggggg°°`'`'`'`'gggggg°°ǸǸ㻢gggggg`'`'pOpO`'`'`'`'`'`'°°77pppppp77ppoZoZpppppp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp77ppoZoZpp㻢ggǸǸgg°°gg°°gg°°`'`'ǸǸ`'`'ggǸǸgg°°ggǸǸggpOpO`'`'pOpO`'`'°°gg77pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp77ppoZoZpp㻢ggǸǸgg°°gg°°gg°°`'`'ǸǸ`'`'ggǸǸgg°°ggǸǸggpOpO`'`'pOpO`'`'°°gg77pp77pp7777pp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pppppp77oZoZ77ѻgggggg°°gggggg°°ǸǸgggg°°ǸǸ°°gg`'`'`'`'°°ggggpp77ppppppoZoZoZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pppppp77oZoZ77ѻgggggg°°gggggg°°ǸǸgggg°°ǸǸ°°gg`'`'`'`'°°ggggpp77ppppppoZoZoZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp77ppoZoZ°°ggǸǸgg°°°°ggǸǸggǸǸgg°°ǸǸgg°°gg°°gg°°gg77pp77ppoZoZoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp77ppoZoZ°°ggǸǸgg°°°°ggǸǸggǸǸgg°°ǸǸgg°°gg°°gg°°gg77pp77ppoZoZoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77ppppѻgggg°°ǸǸ°°°°gggggg°°ggggǸǸgggggggg°°ggggpppppp77oZoZpppp77pppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77ppppѻgggg°°ǸǸ°°°°gggggg°°ggggǸǸgggggggg°°ggggpppppp77oZoZpppp77pppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77pp77㻢gg°°°°°°gg°°gggg°°°°gg°°77pp77ppoZoZoZoZpp77pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77pp77㻢gg°°°°°°gg°°gggg°°°°gg°°77pp77ppoZoZoZoZpp77pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZpp77ppppppoZoZoZoZ°°ggǸǸǸǸǸǸǸǸgggggg°°ggǸǸǸǸggggǸǸǸǸpp77ppppoZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZpp77ppppppoZoZoZoZ°°ggǸǸǸǸǸǸǸǸgggggg°°ggǸǸǸǸggggǸǸǸǸpp77ppppoZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77㻢gg°°°°gg°°gg°°°°°°77pp77ppoZoZ77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77㻢gg°°°°gg°°gg°°°°°°77pp77ppoZoZ77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpppppp77ppoZoZoZoZѻggggǸǸǸǸǸǸǸǸgg°°ggggggǸǸǸǸgggg°°ggǸǸǸǸpppppp77oZoZoZoZpp77ppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpppppp77ppoZoZoZoZѻggggǸǸǸǸǸǸǸǸgg°°ggggggǸǸǸǸgggg°°ggǸǸǸǸpppppp77oZoZoZoZpp77ppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZǸǸǸǸǸǸǸǸgg°°ggǸǸǸǸgg°°ggǸǸǸǸǸǸpp777777pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZǸǸǸǸǸǸǸǸgg°°ggǸǸǸǸgg°°ggǸǸǸǸǸǸpp777777pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777775A77777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZ77ppppǸǸǸǸgggg°°ǸǸǸǸ°°ggggǸǸ77ppppoZoZppppppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZ77ppppǸǸǸǸgggg°°ǸǸǸǸ°°ggggǸǸ77ppppoZoZppppppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77ppoZoZoZoZǸǸǸǸǸǸǸǸgg°°ggǸǸggǸǸgg°°ggǸǸǸǸǸǸpp7777ppoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777G!B7777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77ppoZoZoZoZǸǸǸǸǸǸǸǸgg°°ggǸǸggǸǸgg°°ggǸǸǸǸǸǸpp7777ppoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777pp77oZoZpppp77oZoZoZoZǸǸǸǸgggggg°°ǸǸ°°ǸǸpppppppp77oZoZ77ppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777pp77oZoZpppp77oZoZoZoZǸǸǸǸgggggg°°ǸǸ°°ǸǸpppppppp77oZoZ77ppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp7777pp77°°gg°°°°°°°°°°pOpO°°77pp777777ppoZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp7777pp77°°gg°°°°°°°°°°pOpO°°77pp777777ppoZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777G!B77777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppoZoZppppppoZoZppoZoZ°°ǸǸǸǸǸǸggǸǸ°°ggǸǸggǸǸgg`'`'`'`'ǸǸ`'`'ǸǸ77pp77ppppppppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppoZoZppppppoZoZppoZoZ°°ǸǸǸǸǸǸggǸǸ°°ggǸǸggǸǸgg`'`'`'`'ǸǸ`'`'ǸǸ77pp77ppppppppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777pp77777777pp777777°°°°°°gg°°°°°°°°`'`'pOpOpOpOpp77pp77pp77oZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777pp77777777pp777777°°°°°°gg°°°°°°°°`'`'pOpOpOpOpp77pp77pp77oZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppoZoZppoZoZpp77ppoZoZppǸǸggggǸǸggǸǸǸǸggǸǸggggggǸǸggǸǸggpOpO`'`'ǸǸ`'`'ǸǸpppppppp77ppoZoZoZoZ77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppoZoZppoZoZpp77ppoZoZppǸǸggggǸǸggǸǸǸǸggǸǸggggggǸǸggǸǸggpOpO`'`'ǸǸ`'`'ǸǸpppppppp77ppoZoZoZoZ77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777pp7777ppoZoZoZoZpp77pp77ppoZoZǸǸ°°gg°°ggǸǸǸǸǸǸǸǸ㻢gg°°ggǸǸǸǸgg°°gg°°ggǸǸǸǸ77pp77pppp77pp77oZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777pp7777ppoZoZoZoZpp77pp77ppoZoZǸǸ°°gg°°ggǸǸǸǸǸǸǸǸ㻢gg°°ggǸǸǸǸgg°°gg°°ggǸǸǸǸ77pp77pppp77pp77oZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZppppoZoZ77pppppp77oZoZgg°°ggggǸǸǸǸǸǸ°°gggggg°°ǸǸpp77pppp77pppppp77oZoZpppp77777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZppppoZoZ77pppppp77oZoZgg°°ggggǸǸǸǸǸǸ°°gggggg°°ǸǸpp77pppp77pppppp77oZoZpppp77777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77ppoZoZoZoZpp77pp77ppoZoZǸǸǸǸǸǸ㻢ggǸǸǸǸǸǸǸǸgg°°gg°°ggǸǸǸǸpp77pp77pppp77pp77ppoZoZoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77ppoZoZoZoZpp77pp77ppoZoZǸǸǸǸǸǸ㻢ggǸǸǸǸǸǸǸǸgg°°gg°°ggǸǸǸǸpp77pp77pppp77pp77ppoZoZoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77oZoZpppp77ppppǸǸǸǸѻgg°°ggǸǸǸǸѻggǸǸ77pppppp77pppppppp77ppppoZoZ77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77oZoZpppp77ppppǸǸǸǸѻgg°°ggǸǸǸǸѻggǸǸ77pppppp77pppppppp77ppppoZoZ77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp7777pp77pp77pp77㻢gg°°gg°°°°pp77pp77pp7777pp77pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp7777pp77pp77pp77㻢gg°°gg°°°°pp77pp77pp7777pp77pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77ppppppoZoZpp77pppppp77ppǸǸ°°ggǸǸgg°°ggggǸǸǸǸǸǸpppp77pppppppp77pppppp77ppoZoZpppppp77777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77ppppppoZoZpp77pppppp77ppǸǸ°°ggǸǸgg°°ggggǸǸǸǸǸǸpppp77pppppppp77pppppp77ppoZoZpppppp77777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77pp7777pp77pp77pp77㻢gg°°°°gggggg°°pp77pp7777pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777p77777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77pp7777pp77pp77pp77㻢gg°°°°gggggg°°pp77pp7777pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77ppoZoZpppppp77ppppppǸǸѻgggg°°ggǸǸgg°°ǸǸgg`'`'V8V8°°ggǸǸǸǸpp°°77ppppoZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77ppoZoZpppppp77ppppppǸǸѻgggg°°ggǸǸgg°°ǸǸgg`'`'V8V8°°ggǸǸǸǸpp°°77ppppoZoZ77pppppp77777777777777777777777777777777777777777777777777777777777777777777777777775A77777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZpp77pp77ppǸǸǸǸ㻢gg°°ggǸǸǸǸǸǸǸǸ_D*_D*V8V8pOpOggǸǸǸǸgg°°ggǸǸǸǸ°°gggg77ppoZoZoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZpp77pp77ppǸǸǸǸ㻢gg°°ggǸǸǸǸǸǸǸǸ_D*_D*V8V8pOpOggǸǸǸǸgg°°ggǸǸǸǸ°°gggg77ppoZoZoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZpp77ppppoZoZ77pppppp77ǸǸ°°ggggǸǸѻggggǸǸV8V8V8V8°°`'`'ggǸǸgggg°°ǸǸ㻢gggg°°ggpp77oZoZpppp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777p77777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZpp77ppppoZoZ77pppppp77ǸǸ°°ggggǸǸѻggggǸǸV8V8V8V8°°`'`'ggǸǸgggg°°ǸǸ㻢gggg°°ggpp77oZoZpppp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZpp77pp77ppǸǸǸǸ°°ggǸǸǸǸ°°ǸǸǸǸV8V8°°`'`'°°ggǸǸǸǸgg°°gg°°ggǸǸǸǸ°°gggg°°ggppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777775A77777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZpp77pp77ppǸǸǸǸ°°ggǸǸǸǸ°°ǸǸǸǸV8V8°°`'`'°°ggǸǸǸǸgg°°gg°°ggǸǸǸǸ°°gggg°°ggppoZoZoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpppppp77oZoZpppp77ppppǸǸѻgg°°ǸǸ°°ǸǸ°°`'`'gggg°°ǸǸgggg°°ǸǸgggggg°°oZoZoZoZ77pppppp77777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpppppp77oZoZpppp77ppppǸǸѻgg°°ǸǸ°°ǸǸ°°`'`'gggg°°ǸǸgggg°°ǸǸgggggg°°oZoZoZoZ77pppppp77777777777777777777777777777777777777777777777777777777777777777777777777G!B77777777777777777777777777777777777777777777777777777777777777777777777pp7777pp777777pp77°°ggpOpOpOpOgg°°gg°°°°gg7777pp77777777777777777777777777777777777777777777777777777777777777777777777777775A77777777777777777777777777777777777777777777777777777777777777777777777pp7777pp777777pp77°°ggpOpOpOpOgg°°gg°°°°gg7777pp7777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZ77ppoZoZppoZoZppppppǸǸppǸǸǸǸǸǸggǸǸggǸǸggǸǸǸǸggggggǸǸǸǸggggggggppoZoZpp77pp77777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZ77ppoZoZppoZoZppppppǸǸppǸǸǸǸǸǸggǸǸggǸǸggǸǸǸǸggggggǸǸǸǸggggggggppoZoZpp77pp77777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZoZoZpp777777pp7777°°gg°°㻢gg°°°°gg°°7777pp7777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZoZoZpp777777pp7777°°gg°°㻢gg°°°°gg°°7777pp7777777777777777777777777777777777777777777777777777777777777777777777777777p7777777777777777777777777777777777777777777777777777777777777777777pppp77oZoZppppoZoZppoZoZpp77ppǸǸppǸǸggggǸǸǸǸggǸǸggǸǸǸǸggǸǸǸǸǸǸѻgggggg°°ggppoZoZppppppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777pppp77oZoZppppoZoZppoZoZpp77ppǸǸppǸǸggggǸǸǸǸggǸǸggǸǸǸǸggǸǸǸǸǸǸѻgggggg°°ggppoZoZppppppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777pp77oZoZppoZoZpp77ppoZoZppǸǸpp77ppǸǸǸǸ°°ggǸǸǸǸ`'`'°°ggǸǸǸǸgg°°ǸǸǸǸǸǸggǸǸgg°°ggggpp77ppoZoZppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777pp77oZoZppoZoZpp77ppoZoZppǸǸpp77ppǸǸǸǸ°°ggǸǸǸǸ`'`'°°ggǸǸǸǸgg°°ǸǸǸǸǸǸggǸǸgg°°ggggpp77ppoZoZppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZ77oZoZ77pppppppppp77ǸǸ°°ǸǸgggg`'`'gg°°ǸǸǸǸ°°ѻggǸǸ°°ǸǸ°°ggggggpppp77oZoZ77oZoZ777777777777777777777777777777777777777777777777777777777777777777777777A777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZ77oZoZ77pppppppppp77ǸǸ°°ǸǸgggg`'`'gg°°ǸǸǸǸ°°ѻggǸǸ°°ǸǸ°°ggggggpppp77oZoZ77oZoZ777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZpp77ppoZoZppǸǸpp77ppǸǸǸǸgg°°ggǸǸǸǸ`'`'°°ggǸǸggǸǸgg°°ggǸǸggǸǸǸǸggǸǸgg°°ggpp77ppoZoZppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZpp77ppoZoZppǸǸpp77ppǸǸǸǸgg°°ggǸǸǸǸ`'`'°°ggǸǸggǸǸgg°°ggǸǸggǸǸǸǸggǸǸgg°°ggpp77ppoZoZppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777oZoZppppoZoZpppp7777ǸǸ77ppppǸǸǸǸpOpO`'`'gggggggg°°ǸǸ°°ǸǸ°°gggggg°°77pppppppp7777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777oZoZppppoZoZpppp7777ǸǸ77ppppǸǸǸǸpOpO`'`'gggggggg°°ǸǸ°°ǸǸ°°gggggg°°77pppppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpp7777pp7777pp77pp77эpOpOgg°°gg°°gg°°°°gg°°gg°°°°gg°°`'`'pOpO77pp77pp7777pp7777777777777777777777777777777777777777777777777777777777777777777777G!B77777777777777777777777777777777777777777777777777777777777777777oZoZpp7777pp7777pp77pp77эpOpOgg°°gg°°gg°°°°gg°°gg°°°°gg°°`'`'pOpO77pp77pp7777pp7777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777oZoZoZoZ77ppoZoZoZoZpp77ǸǸǸǸpppppp77ppǸǸǸǸǸǸǸǸѻggǸǸǸǸ°°ggggggǸǸǸǸgggggg°°ggǸǸǸǸ°°`'`'`'`'`'`'pppppp77ppoZoZoZoZpp777777777777777777777777777777777777777777777777777777777777777777777777277777777777777777777777777777777777777777777777777777777777777777oZoZoZoZ77ppoZoZoZoZpp77ǸǸǸǸpppppp77ppǸǸǸǸǸǸǸǸѻggǸǸǸǸ°°ggggggǸǸǸǸgggggg°°ggǸǸǸǸ°°`'`'`'`'`'`'pppppp77ppoZoZoZoZpp777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77pp77°°gg°°gg°°gg°°77°°gg°°°°gg°°gg°°ggpOpO`'`'pOpO77pp7777pp7777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77pp77°°gg°°gg°°gg°°77°°gg°°°°gg°°gg°°ggpOpO`'`'pOpO77pp7777pp7777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777oZoZoZoZppppppoZoZoZoZppppǸǸǸǸpp77ppppǸǸǸǸgggggg°°ggǸǸǸǸgg°°ggggggǸǸǸǸppppggǸǸǸǸgg°°ggǸǸǸǸgg`'`'`'`'pOpO`'`'°°ggppoZoZoZoZpppppp77777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777oZoZoZoZppppppoZoZoZoZppppǸǸǸǸpp77ppppǸǸǸǸgggggg°°ggǸǸǸǸgg°°ggggggǸǸǸǸppppggǸǸǸǸgg°°ggǸǸǸǸgg`'`'`'`'pOpO`'`'°°ggppoZoZoZoZpppppp77777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77ppggǸǸpp77ggǸǸgg°°gg°°gg°°ggǸǸgg°°gg°°ggggǸǸpp77pp77ppggǸǸgg°°gggg°°ggǸǸgg`'`'pOpO`'`'pOpO`'`'`'`'°°gg°°77ppoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77ppggǸǸpp77ggǸǸgg°°gg°°gg°°ggǸǸgg°°gg°°ggggǸǸpp77pp77ppggǸǸgg°°gggg°°ggǸǸgg`'`'pOpO`'`'pOpO`'`'`'`'°°gg°°77ppoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777pppppp77ppppppppggggggǸǸ㻢gggg°°gggggg°°ǸǸ°°ggggggggpppp77ppppppǸǸgg°°gggg`'`'`'`'`'`'°°pOpO`'`'`'`'77pppppppp77pp77777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777pppppp77ppppppppggggggǸǸ㻢gggg°°gggggg°°ǸǸ°°ggggggggpppp77ppppppǸǸgg°°gggg`'`'`'`'`'`'°°pOpO`'`'`'`'77pppppppp77pp77777777777777777777777777777777777777777777777777777777777777777777p777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77ppoZoZpp77°°gg°°ǸǸ㻢ggǸǸgggg°°ggǸǸ°°gg°°ggǸǸ77pp77pp77ppǸǸpp77ppgg°°ggǸǸ°°gg`'`'°°gg`'`'pOpOpOpO77ppoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77ppoZoZpp77°°gg°°ǸǸ㻢ggǸǸgggg°°ggǸǸ°°gg°°ggǸǸ77pp77pp77ppǸǸpp77ppgg°°ggǸǸ°°gg`'`'°°gg`'`'pOpOpOpO77ppoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777pp77oZoZ77pppppp77oZoZ77ppgg°°gggg㻢ggǸǸ°°gggg㻢gggggg°°ǸǸ°°pppp77ppppppppgggggg°°ǸǸgggggggggg°°ggpp77oZoZ77pppppp77777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777pp77oZoZ77pppppp77oZoZ77ppgg°°gggg㻢ggǸǸ°°gggg㻢gggggg°°ǸǸ°°pppp77ppppppppgggggg°°ǸǸgggggggggg°°ggpp77oZoZ77pppppp77777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777°°gg°°°°gg°°pp77pp7777°°gg°°gg°°°°°°ggpp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777°°gg°°°°gg°°pp77pp7777°°gg°°gg°°°°°°ggpp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777pppppppp77ppoZoZoZoZppggggggǸǸǸǸѻgg°°ggǸǸǸǸ㻢ggǸǸǸǸggggǸǸǸǸ77ppppppǸǸǸǸpppp°°ggǸǸǸǸppgggggggg77ppoZoZoZoZpp77pppp777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777pppppppp77ppoZoZoZoZppggggggǸǸǸǸѻgg°°ggǸǸǸǸ㻢ggǸǸǸǸggggǸǸǸǸ77ppppppǸǸǸǸpppp°°ggǸǸǸǸppgggggggg77ppoZoZoZoZpp77pppp777777777777777777777777777777777777777777777777777777777777777777G!B777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777ppgg°°°°gg°°㻢gg°°°°ggpOpO77pp7777pp77°°77ppgg°°ggpp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777ppgg°°°°gg°°㻢gg°°°°ggpOpO77pp7777pp77°°77ppgg°°ggpp7777pp77pp7777777777777777777777777777777777777777777777777777777777777777775A77777777777777777777777777777777777777777777777777777777777pppp77oZoZ77ppppppoZoZoZoZpppp°°ggǸǸǸǸ㻢ggggggǸǸǸǸǸǸǸǸgg°°ǸǸǸǸggpp77ppǸǸǸǸpp77ppppǸǸǸǸppppppgg°°ppppoZoZoZoZpppppp77pp77777777777777777777777777777777777777777777777777777777777777775A77777777777777777777777777777777777777777777777777777777777pppp77oZoZ77ppppppoZoZoZoZpppp°°ggǸǸǸǸ㻢ggggggǸǸǸǸǸǸǸǸgg°°ǸǸǸǸggpp77ppǸǸǸǸpp77ppppǸǸǸǸppppppgg°°ppppoZoZoZoZpppppp77pp7777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77ppoZoZppoZoZppggǸǸǸǸ㻢ggǸǸǸǸǸǸǸǸǸǸggǸǸ77ppǸǸppǸǸpp77ppǸǸppǸǸpp77pppp77pp77pp77pp777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77ppoZoZppoZoZppggǸǸǸǸ㻢ggǸǸǸǸǸǸǸǸǸǸggǸǸ77ppǸǸppǸǸpp77ppǸǸppǸǸpp77pppp77pp77pp77pp777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777pppppppp77oZoZ7777gg°°ǸǸ°°ǸǸggǸǸ°°ǸǸ77pppppppppp77ǸǸ77ǸǸ77pppppppppp77oZoZpp77pppppp7777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777pppppppp77oZoZ7777gg°°ǸǸ°°ǸǸggǸǸ°°ǸǸ77pppppppppp77ǸǸ77ǸǸ77pppppppppp77oZoZpp77pppppp7777777777777777777777777777777777777777777777777777777777777777p77777777777777777777777777777777777777777777777777777777777pp7777ppoZoZppppǸǸǸǸǸǸggǸǸǸǸǸǸggǸǸggǸǸpp77ppǸǸppǸǸpp77ppǸǸppǸǸpp77pppppp77ppppoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777pp7777ppoZoZppppǸǸǸǸǸǸggǸǸǸǸǸǸggǸǸggǸǸpp77ppǸǸppǸǸpp77ppǸǸppǸǸpp77pppppp77ppppoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777ppppppoZoZoZoZppppppppǸǸǸǸggggggǸǸǸǸggpppp77ǸǸ77ǸǸ77pppppppppp777777pppppppppp77oZoZ77777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777ppppppoZoZoZoZppppppppǸǸǸǸggggggǸǸǸǸggpppp77ǸǸ77ǸǸ77pppppppppp777777pppppppppp77oZoZ77777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777pp777777pp77°°°°gg°°°°°°gg°°7777pp777777pp777777pp777777ppoZoZpp77ppoZoZ77777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777pp777777pp77°°°°gg°°°°°°gg°°7777pp777777pp777777pp777777ppoZoZpp77ppoZoZ77777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppoZoZpp77ppǸǸggǸǸǸǸǸǸǸǸggǸǸgg°°ǸǸppǸǸppppppǸǸppǸǸpp77pppppppppppppp77oZoZ77pppp77777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppoZoZpp77ppǸǸggǸǸǸǸǸǸǸǸggǸǸgg°°ǸǸppǸǸppppppǸǸppǸǸpp77pppppppppppppp77oZoZ77pppp77777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777ppoZoZ7777pp77pp77°°777777pp777777pp777777pp777777pp7777ppoZoZ77777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777ppoZoZ7777pp77pp77°°777777pp777777pp777777pp777777pp7777ppoZoZ77777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777ppppoZoZppppppppǸǸǸǸppppppǸǸǸǸǸǸggǸǸppppppǸǸppǸǸpp77ppǸǸppǸǸpppppppppp77ppppppppppoZoZppoZoZpp777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777ppppoZoZppppppppǸǸǸǸppppppǸǸǸǸǸǸggǸǸppppppǸǸppǸǸpp77ppǸǸppǸǸpppppppppp77ppppppppppoZoZppoZoZpp777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777oZoZppoZoZoZoZpp77pp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77pppp77pp77pppp77pp777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777oZoZppoZoZoZoZpp77pp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77pppp77pp77pppp77pp777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777oZoZoZoZ77oZoZpppp77pppppppp77ǸǸpppp77ppppǸǸǸǸpppp77ppppǸǸ77pppppp77ǸǸpppp77pppp77pppppp77pppp77ppoZoZppoZoZpp777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777oZoZoZoZ77oZoZpppp77pppppppp77ǸǸpppp77ppppǸǸǸǸpppp77ppppǸǸ77pppppp77ǸǸpppp77pppp77pppppp77pppp77ppoZoZppoZoZpp777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77pp77pppp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸgg°°ggǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77pppp77pp77pppp77pp77ppoZoZ77777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77pp77pppp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸgg°°ggǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77pppp77pp77pppp77pp77ppoZoZ77777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777ppoZoZoZoZppppoZoZ77pppppp77pppp77ppppǸǸ77pppppp77ǸǸgg°°ggggǸǸ77pppppp77ǸǸpppp77ppppǸǸ77pppppp77pppp77pppp77pppppp77oZoZpppp777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777ppoZoZoZoZppppoZoZ77pppppp77pppp77ppppǸǸ77pppppp77ǸǸgg°°ggggǸǸ77pppppp77ǸǸpppp77ppppǸǸ77pppppp77pppp77pppp77pppppp77oZoZpppp777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77ppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77ppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77ppoZoZpppppp77pppppppp77pppppp77ppǸǸpppppp77ppppppǸǸpp77pppppp77ppǸǸpppppp77ppppppǸǸpp77pppppp77ppǸǸpppppp77pppppppp77pppppp77pppppppp77ppppoZoZ77pppp7777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77ppoZoZpppppp77pppppppp77pppppp77ppǸǸpppppp77ppppppǸǸpp77pppppp77ppǸǸpppppp77ppppppǸǸpp77pppppp77ppǸǸpppppp77pppppppp77pppppp77pppppppp77ppppoZoZ77pppp7777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp77oZoZpp77pp7777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp77oZoZpp77pp7777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777pppp77oZoZ77ppppppoZoZpp77pppppp77pppppppp77ppppppǸǸpp77pppppp77ppǸǸpp77pppppp77pppppppp77pppppppp77pppppp77ppoZoZpppppp77pp777777777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777777777pppp77oZoZ77ppppppoZoZpp77pppppp77pppppppp77ppppppǸǸpp77pppppp77ppǸǸpp77pppppp77pppppppp77pppppppp77pppppp77ppoZoZpppppp77pp777777777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777777777pp77ppoZoZpp77pp77ǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸpp77pp7777pp77pp7777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777pp77ppoZoZpp77pp77ǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸpp77pp7777pp77pp7777777777777777777777777777777777777777777777777777777777G!B77777777777777777777777777777777777777777777777777777ppppppoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZpp77pppppp77777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777ppppppoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZpp77pppppp777777777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777777777pp77oZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZpp77777777777777777777777777777777777777777777777777777777775A7777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZ777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777775A7777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777775A77777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777oZoZ7777777777oZoZ7777777777oZoZ777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777oZoZ7777777777oZoZ7777777777oZoZ777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777775A777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ))))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777775A77777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ))))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))  ))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))  ))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ))))  ))))))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ))))  ))))))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))  ))  ))  ))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZ  ))  ))  ))  ))  ))oZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))))))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))))))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                            77777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                            77777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B77777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                            777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                            777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777G}B777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                            7777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                            7777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                    777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                    777777777777777777777777777777777777777777777777777777777777777777G}B77777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                            77777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                            77777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777                                                                                                                                                                                                                    7777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777                                                                                                                                                                                                                    7777777777777777777777777777777777777777777777777777777777G}B77777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      7777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      7777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G}B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777777VҸ 2RwX7777777777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777?Q@7777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777779 R977777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777Q{S7777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777nfp777777777777777777777777777777777777777777777777777777777777777777777777777777QC77777777777777777777777777777777777777777777777777777777777777777777777z^{77777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777ker7777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777Q{S777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777779֍977777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777R77777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777> @7777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777P7777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777ݏ7777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777WvZ777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777Q777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777ѷ1777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777ڏ777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777ۏ777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777721777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777SP777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777xWvZ777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777ޏ7777777777777777777777777777777777777777777777777777777777777777777777777QC7777777777777777777777777777777777777777777777777777777777777777777RO7777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777? @7777777777777777777777777777777777777777777777777777777777777777777777777QC77777777777777777777777777777777777777777777777777777777777777777777TQ77777777777777777777777777777777777777777777777777777777777777777777777777QC777777777777777777777777777777777777777777777777777777777777777777779׍977777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777|RzU777777777777777777777777777777777777777777777777777777777777777777777777777QC7777777777777777777777777777777777777777777777777777777777777777777777fpct7777777777777777777777777777777777777777777777777777777777777777777777777777QC77777777777777777777777777777777777777777777777777777777777777777777777^{^|77777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777fper777777777777777777777777777777777777777777777777777777777777777777777777777777QC7777777777777777777777777777777777777777777777777777777777777777777777777{RzT7777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777779R Q:77777777777777777777777777777777777777777777777777777777777777777777777777777777\7777777777777777777777777777777777777777777777777777777777777777777777777777@PO@7777777777777777777777777777777777777777777777777777777777777777777777777777777777QC7777777777777777777777777777777777777777777777777777777777777777777777777777777wYQ0  0QvZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\windows_uninstaller_welcome216.bmp000077500000000000000000027400101452337521700374250ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_uninstallerBM 6(nҿ 7!7!77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777717777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777t!777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777s777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777W%777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ް777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777!777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*3777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777߲777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777F777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777L777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777m7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ܮ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%0777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777N77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777713777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777P"777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777I7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ꭏ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777l(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777欏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777x7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777𯏀7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777`%7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777խ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777737777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZpppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZpppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777x77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77oZoZoZoZǸǸǸǸoZoZoZoZoZoZoZoZǸǸǸǸoZoZoZoZoZoZoZoZǸǸǸǸoZoZoZoZ7777pp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77oZoZoZoZǸǸǸǸoZoZoZoZoZoZoZoZǸǸǸǸoZoZoZoZoZoZoZoZǸǸǸǸoZoZoZoZ7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pppppp77oZoZpppp77ppppǸǸǸǸǸǸpppp77pppp77ppppoZoZ77pppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pppppp77oZoZpppp77ppppǸǸǸǸǸǸpppp77pppp77ppppoZoZ77pppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777I77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77ppoZoZoZoZpp77pp77ppǸǸǸǸppggǸǸǸǸpp77pp77ppǸǸǸǸpppp77pp77ppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77ppoZoZoZoZpp77pp77ppǸǸǸǸppggǸǸǸǸpp77pp77ppǸǸǸǸpppp77pp77ppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppppp77ppppoZoZ77pppppp77ǸǸgg°°ggǸǸ77pppppp77ǸǸ`'`'`'`'pOpOgg77pppppp77oZoZppppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppppp77ppppoZoZ77pppppp77ǸǸgg°°ggǸǸ77pppppp77ǸǸ`'`'`'`'pOpOgg77pppppp77oZoZppppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp777777pp7777°°gg°°7777pp7777pOpO`'`'°°7777pp77oZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777J7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp777777pp7777°°gg°°7777pp7777pOpO`'`'°°7777pp77oZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppppppoZoZoZoZpp77ppǸǸppǸǸggggggǸǸppǸǸpp77ppǸǸǸǸ`'`'`'`'`'`'ǸǸpppp77ppoZoZoZoZ77ppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777K777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppppppoZoZoZoZpp77ppǸǸppǸǸggggggǸǸppǸǸpp77ppǸǸǸǸ`'`'`'`'`'`'ǸǸpppp77ppoZoZoZoZ77ppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n17777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppp77㻢gg°°7777pp77pOpOpOpO`'`'pOpO7777pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppp77㻢gg°°7777pp77pOpOpOpO`'`'pOpO7777pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a%777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77oZoZoZoZǸǸǸǸ㻢ggǸǸǸǸppppǸǸ`'`'ǸǸ`'`'pOpO`'`'ǸǸppppppoZoZppoZoZppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77oZoZoZoZǸǸǸǸ㻢ggǸǸǸǸppppǸǸ`'`'ǸǸ`'`'pOpO`'`'ǸǸppppppoZoZppoZoZppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp°°°°°°pOpO`'`'°°pOpO77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp°°°°°°pOpO`'`'°°pOpO77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZǸǸѻgggggg°°ǸǸǸǸgggg`'`'`'`'`'`'pOpOoZoZ77oZoZ77ppoZoZppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZǸǸѻgggggg°°ǸǸǸǸgggg`'`'`'`'`'`'pOpOoZoZ77oZoZ77ppoZoZppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZppoZoZoZoZoZoZǸǸgg°°ggǸǸǸǸǸǸǸǸggggǸǸ`'`'ǸǸ`'`'pOpO`'`'ppoZoZpp77oZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZppoZoZoZoZoZoZǸǸgg°°ggǸǸǸǸǸǸǸǸggggǸǸ`'`'ǸǸ`'`'pOpO`'`'ppoZoZpp77oZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A2777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77oZoZoZoZgggg°°ǸǸǸǸgg°°ǸǸpOpOǸǸpOpO`'`'`'`'pppppp77oZoZpppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77oZoZoZoZgggg°°ǸǸǸǸgg°°ǸǸpOpOǸǸpOpO`'`'`'`'pppppp77oZoZpppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A&7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZppoZoZggoZoZgg°°ggoZoZǸǸggǸǸǸǸǸǸǸǸgg°°ggǸǸggǸǸ`'`'pOpO`'`'ppoZoZpp77ppoZoZoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZppoZoZggoZoZgg°°ggoZoZǸǸggǸǸǸǸǸǸǸǸgg°°ggǸǸggǸǸ`'`'pOpO`'`'ppoZoZpp77ppoZoZoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppppgggggg°°oZoZǸǸ°°°°ǸǸǸǸ°°gggggg`'`'`'`'pOpO77oZoZ77ppppoZoZ77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppppgggggg°°oZoZǸǸ°°°°ǸǸǸǸ°°gggggg`'`'`'`'pOpO77oZoZ77ppppoZoZ77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777÷777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77°°`'`'pOpO`'`'pOpOpOpO`'`'°°°°gg°°gg°°pOpO`'`'pOpO`'`'pOpO77pp77ppoZoZoZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77°°`'`'pOpO`'`'pOpOpOpO`'`'°°°°gg°°gg°°pOpO`'`'pOpO`'`'pOpO77pp77ppoZoZoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77ppoZoZoZoZ`'`'pOpO`'`'`'`'`'`'oZoZoZoZ`'`'`'`'`'`'㻢ggǸǸǸǸggggǸǸǸǸgggggg°°ggǸǸǸǸ`'`'pOpO`'`'`'`'`'`'pppppp77oZoZpppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77ppoZoZoZoZ`'`'pOpO`'`'`'`'`'`'oZoZoZoZ`'`'`'`'`'`'㻢ggǸǸǸǸggggǸǸǸǸgggggg°°ggǸǸǸǸ`'`'pOpO`'`'`'`'`'`'pppppp77oZoZpppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77gg°°ggpOpO`'`'°°㻢gggg°°㻢gg°°°°pOpO`'`'pOpO`'`'pOpO77pp77pp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ߨ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77gg°°ggpOpO`'`'°°㻢gggg°°㻢gg°°°°pOpO`'`'pOpO`'`'pOpO77pp77pp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppppppoZoZoZoZppppppoZoZǸǸgg°°gg`'`'ggǸǸǸǸgg°°ggǸǸǸǸѻggǸǸǸǸ`'`'`'`'`'`'pOpO`'`'pp77ppppppoZoZpp77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppppppoZoZoZoZppppppoZoZǸǸgg°°gg`'`'ggǸǸǸǸgg°°ggǸǸǸǸѻggǸǸǸǸ`'`'`'`'`'`'pOpO`'`'pp77ppppppoZoZpp77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pp7777pp°°gg°°`'`'pOpO°°gg°°pOpO`'`'pOpO`'`'pOpO77pp77pp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a0777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pp7777pp°°gg°°`'`'pOpO°°gg°°pOpO`'`'pOpO`'`'pOpO77pp77pp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777:777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77pppppppp°°oZoZ°°gggggg°°`'`'`'`'gggggg°°ǸǸ㻢gggggg`'`'pOpO`'`'`'`'`'`'°°77pppppp77ppoZoZpppppp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77pppppppp°°oZoZ°°gggggg°°`'`'`'`'gggggg°°ǸǸ㻢gggggg`'`'pOpO`'`'`'`'`'`'°°77pppppp77ppoZoZpppppp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp77ppoZoZpp㻢ggǸǸgg°°gg°°gg°°`'`'ǸǸ`'`'ggǸǸgg°°ggǸǸggpOpO`'`'pOpO`'`'°°gg77pp77pp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777c777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp77ppoZoZpp㻢ggǸǸgg°°gg°°gg°°`'`'ǸǸ`'`'ggǸǸgg°°ggǸǸggpOpO`'`'pOpO`'`'°°gg77pp77pp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѥ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pppppp77oZoZ77ѻgggggg°°gggggg°°ǸǸgggg°°ǸǸ°°gg`'`'`'`'°°ggggpp77ppppppoZoZoZoZ77pppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777٫7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77pppppp77oZoZ77ѻgggggg°°gggggg°°ǸǸgggg°°ǸǸ°°gg`'`'`'`'°°ggggpp77ppppppoZoZoZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp77ppoZoZ°°ggǸǸgg°°°°ggǸǸggǸǸgg°°ǸǸgg°°gg°°gg°°gg77pp77ppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777747777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp77ppoZoZ°°ggǸǸgg°°°°ggǸǸggǸǸgg°°ǸǸgg°°gg°°gg°°gg77pp77ppoZoZoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77ppppѻgggg°°ǸǸ°°°°gggggg°°ggggǸǸgggggggg°°ggggpppppp77oZoZpppp77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77ppppѻgggg°°ǸǸ°°°°gggggg°°ggggǸǸgggggggg°°ggggpppppp77oZoZpppp77pppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777K77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77pp77㻢gg°°°°°°gg°°gggg°°°°gg°°77pp77ppoZoZoZoZpp77pp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77pp77㻢gg°°°°°°gg°°gggg°°°°gg°°77pp77ppoZoZoZoZpp77pp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZpp77ppppppoZoZoZoZ°°ggǸǸǸǸǸǸǸǸgggggg°°ggǸǸǸǸggggǸǸǸǸpp77ppppoZoZ77pppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ư77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZpp77ppppppoZoZoZoZ°°ggǸǸǸǸǸǸǸǸgggggg°°ggǸǸǸǸggggǸǸǸǸpp77ppppoZoZ77pppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777477777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77㻢gg°°°°gg°°gg°°°°°°77pp77ppoZoZ77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77㻢gg°°°°gg°°gg°°°°°°77pp77ppoZoZ77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpppppp77ppoZoZoZoZѻggggǸǸǸǸǸǸǸǸgg°°ggggggǸǸǸǸgggg°°ggǸǸǸǸpppppp77oZoZoZoZpp77ppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpppppp77ppoZoZoZoZѻggggǸǸǸǸǸǸǸǸgg°°ggggggǸǸǸǸgggg°°ggǸǸǸǸpppppp77oZoZoZoZpp77ppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ן77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZǸǸǸǸǸǸǸǸgg°°ggǸǸǸǸgg°°ggǸǸǸǸǸǸpp777777pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777:77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZǸǸǸǸǸǸǸǸgg°°ggǸǸǸǸgg°°ggǸǸǸǸǸǸpp777777pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZ77ppppǸǸǸǸgggg°°ǸǸǸǸ°°ggggǸǸ77ppppoZoZppppppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777D(777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZ77ppppǸǸǸǸgggg°°ǸǸǸǸ°°ggggǸǸ77ppppoZoZppppppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777~77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77ppoZoZoZoZǸǸǸǸǸǸǸǸgg°°ggǸǸggǸǸgg°°ggǸǸǸǸǸǸpp7777ppoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77ppoZoZoZoZǸǸǸǸǸǸǸǸgg°°ggǸǸggǸǸgg°°ggǸǸǸǸǸǸpp7777ppoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777멏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77oZoZpppp77oZoZoZoZǸǸǸǸgggggg°°ǸǸ°°ǸǸpppppppp77oZoZ77ppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777X777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77oZoZpppp77oZoZoZoZǸǸǸǸgggggg°°ǸǸ°°ǸǸpppppppp77oZoZ77ppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777s77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp7777pp77°°gg°°°°°°°°°°pOpO°°77pp777777ppoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp7777pp77°°gg°°°°°°°°°°pOpO°°77pp777777ppoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppoZoZppppppoZoZppoZoZ°°ǸǸǸǸǸǸggǸǸ°°ggǸǸggǸǸgg`'`'`'`'ǸǸ`'`'ǸǸ77pp77ppppppppoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppoZoZppppppoZoZppoZoZ°°ǸǸǸǸǸǸggǸǸ°°ggǸǸggǸǸgg`'`'`'`'ǸǸ`'`'ǸǸ77pp77ppppppppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77777777pp777777°°°°°°gg°°°°°°°°`'`'pOpOpOpOpp77pp77pp77oZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77777777pp777777°°°°°°gg°°°°°°°°`'`'pOpOpOpOpp77pp77pp77oZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppoZoZppoZoZpp77ppoZoZppǸǸggggǸǸggǸǸǸǸggǸǸggggggǸǸggǸǸggpOpO`'`'ǸǸ`'`'ǸǸpppppppp77ppoZoZoZoZ77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppoZoZppoZoZpp77ppoZoZppǸǸggggǸǸggǸǸǸǸggǸǸggggggǸǸggǸǸggpOpO`'`'ǸǸ`'`'ǸǸpppppppp77ppoZoZoZoZ77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777ppoZoZoZoZpp77pp77ppoZoZǸǸ°°gg°°ggǸǸǸǸǸǸǸǸ㻢gg°°ggǸǸǸǸgg°°gg°°ggǸǸǸǸ77pp77pppp77pp77oZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777ppoZoZoZoZpp77pp77ppoZoZǸǸ°°gg°°ggǸǸǸǸǸǸǸǸ㻢gg°°ggǸǸǸǸgg°°gg°°ggǸǸǸǸ77pp77pppp77pp77oZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZppppoZoZ77pppppp77oZoZgg°°ggggǸǸǸǸǸǸ°°gggggg°°ǸǸpp77pppp77pppppp77oZoZpppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777O"77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZppppoZoZ77pppppp77oZoZgg°°ggggǸǸǸǸǸǸ°°gggggg°°ǸǸpp77pppp77pppppp77oZoZpppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77ppoZoZoZoZpp77pp77ppoZoZǸǸǸǸǸǸ㻢ggǸǸǸǸǸǸǸǸgg°°gg°°ggǸǸǸǸpp77pp77pppp77pp77ppoZoZoZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77ppoZoZoZoZpp77pp77ppoZoZǸǸǸǸǸǸ㻢ggǸǸǸǸǸǸǸǸgg°°gg°°ggǸǸǸǸpp77pp77pppp77pp77ppoZoZoZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77oZoZpppp77ppppǸǸǸǸѻgg°°ggǸǸǸǸѻggǸǸ77pppppp77pppppppp77ppppoZoZ77pppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77oZoZpppp77ppppǸǸǸǸѻgg°°ggǸǸǸǸѻggǸǸ77pppppp77pppppppp77ppppoZoZ77pppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp7777pp77pp77pp77㻢gg°°gg°°°°pp77pp77pp7777pp77pp77pp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZpp77pp7777pp77pp77pp77㻢gg°°gg°°°°pp77pp77pp7777pp77pp77pp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77ppppppoZoZpp77pppppp77ppǸǸ°°ggǸǸgg°°ggggǸǸǸǸǸǸpppp77pppppppp77pppppp77ppoZoZpppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZ77ppppppoZoZpp77pppppp77ppǸǸ°°ggǸǸgg°°ggggǸǸǸǸǸǸpppp77pppppppp77pppppp77ppoZoZpppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777t$777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77pp7777pp77pp77pp77㻢gg°°°°gggggg°°pp77pp7777pp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777774777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77pp7777pp77pp77pp77㻢gg°°°°gggggg°°pp77pp7777pp77pp7777pp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77ppoZoZpppppp77ppppppǸǸѻgggg°°ggǸǸgg°°ǸǸgg`'`'V8V8°°ggǸǸǸǸpp°°77ppppoZoZ77pppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpppp77ppoZoZpppppp77ppppppǸǸѻgggg°°ggǸǸgg°°ǸǸgg`'`'V8V8°°ggǸǸǸǸpp°°77ppppoZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZpp77pp77ppǸǸǸǸ㻢gg°°ggǸǸǸǸǸǸǸǸ_D*_D*V8V8pOpOggǸǸǸǸgg°°ggǸǸǸǸ°°gggg77ppoZoZoZoZpp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZpp77pp77ppǸǸǸǸ㻢gg°°ggǸǸǸǸǸǸǸǸ_D*_D*V8V8pOpOggǸǸǸǸgg°°ggǸǸǸǸ°°gggg77ppoZoZoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZpp77ppppoZoZ77pppppp77ǸǸ°°ggggǸǸѻggggǸǸV8V8V8V8°°`'`'ggǸǸgggg°°ǸǸ㻢gggg°°ggpp77oZoZpppp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777X777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZpp77ppppoZoZ77pppppp77ǸǸ°°ggggǸǸѻggggǸǸV8V8V8V8°°`'`'ggǸǸgggg°°ǸǸ㻢gggg°°ggpp77oZoZpppp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZpp77pp77ppǸǸǸǸ°°ggǸǸǸǸ°°ǸǸǸǸV8V8°°`'`'°°ggǸǸǸǸgg°°gg°°ggǸǸǸǸ°°gggg°°ggppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777712777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77ppoZoZoZoZpp77pp77ppǸǸǸǸ°°ggǸǸǸǸ°°ǸǸǸǸV8V8°°`'`'°°ggǸǸǸǸgg°°gg°°ggǸǸǸǸ°°gggg°°ggppoZoZoZoZpp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777C27777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpppppp77oZoZpppp77ppppǸǸѻgg°°ǸǸ°°ǸǸ°°`'`'gggg°°ǸǸgggg°°ǸǸgggggg°°oZoZoZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpppppp77oZoZpppp77ppppǸǸѻgg°°ǸǸ°°ǸǸ°°`'`'gggg°°ǸǸgggg°°ǸǸgggggg°°oZoZoZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777V777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp777777pp77°°ggpOpOpOpOgg°°gg°°°°gg7777pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777i777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp777777pp77°°ggpOpOpOpOgg°°gg°°°°gg7777pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZ77ppoZoZppoZoZppppppǸǸppǸǸǸǸǸǸggǸǸggǸǸggǸǸǸǸggggggǸǸǸǸggggggggppoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777717777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZ77ppoZoZppoZoZppppppǸǸppǸǸǸǸǸǸggǸǸggǸǸggǸǸǸǸggggggǸǸǸǸggggggggppoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZoZoZpp777777pp7777°°gg°°㻢gg°°°°gg°°7777pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZoZoZpp777777pp7777°°gg°°㻢gg°°°°gg°°7777pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777P77777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppp77oZoZppppoZoZppoZoZpp77ppǸǸppǸǸggggǸǸǸǸggǸǸggǸǸǸǸggǸǸǸǸǸǸѻgggggg°°ggppoZoZppppppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppp77oZoZppppoZoZppoZoZpp77ppǸǸppǸǸggggǸǸǸǸggǸǸggǸǸǸǸggǸǸǸǸǸǸѻgggggg°°ggppoZoZppppppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777177777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77oZoZppoZoZpp77ppoZoZppǸǸpp77ppǸǸǸǸ°°ggǸǸǸǸ`'`'°°ggǸǸǸǸgg°°ǸǸǸǸǸǸggǸǸgg°°ggggpp77ppoZoZppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77oZoZppoZoZpp77ppoZoZppǸǸpp77ppǸǸǸǸ°°ggǸǸǸǸ`'`'°°ggǸǸǸǸgg°°ǸǸǸǸǸǸggǸǸgg°°ggggpp77ppoZoZppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZ77oZoZ77pppppppppp77ǸǸ°°ǸǸgggg`'`'gg°°ǸǸǸǸ°°ѻggǸǸ°°ǸǸ°°ggggggpppp77oZoZ77oZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZ77oZoZ77pppppppppp77ǸǸ°°ǸǸgggg`'`'gg°°ǸǸǸǸ°°ѻggǸǸ°°ǸǸ°°ggggggpppp77oZoZ77oZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZpp77ppoZoZppǸǸpp77ppǸǸǸǸgg°°ggǸǸǸǸ`'`'°°ggǸǸggǸǸgg°°ggǸǸggǸǸǸǸggǸǸgg°°ggpp77ppoZoZppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777277777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZpp77ppoZoZppǸǸpp77ppǸǸǸǸgg°°ggǸǸǸǸ`'`'°°ggǸǸggǸǸgg°°ggǸǸggǸǸǸǸggǸǸgg°°ggpp77ppoZoZppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777˩777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppppoZoZpppp7777ǸǸ77ppppǸǸǸǸpOpO`'`'gggggggg°°ǸǸ°°ǸǸ°°gggggg°°77pppppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777g4777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZppppoZoZpppp7777ǸǸ77ppppǸǸǸǸpOpO`'`'gggggggg°°ǸǸ°°ǸǸ°°gggggg°°77pppppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ۡ777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpp7777pp7777pp77pp77эpOpOgg°°gg°°gg°°°°gg°°gg°°°°gg°°`'`'pOpO77pp77pp7777pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777S,777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZpp7777pp7777pp77pp77эpOpOgg°°gg°°gg°°°°gg°°gg°°°°gg°°`'`'pOpO77pp77pp7777pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ĥ777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZ77ppoZoZoZoZpp77ǸǸǸǸpppppp77ppǸǸǸǸǸǸǸǸѻggǸǸǸǸ°°ggggggǸǸǸǸgggggg°°ggǸǸǸǸ°°`'`'`'`'`'`'pppppp77ppoZoZoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZ77ppoZoZoZoZpp77ǸǸǸǸpppppp77ppǸǸǸǸǸǸǸǸѻggǸǸǸǸ°°ggggggǸǸǸǸgggggg°°ggǸǸǸǸ°°`'`'`'`'`'`'pppppp77ppoZoZoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77pp77°°gg°°gg°°gg°°77°°gg°°°°gg°°gg°°ggpOpO`'`'pOpO77pp7777pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77pp77°°gg°°gg°°gg°°77°°gg°°°°gg°°gg°°ggpOpO`'`'pOpO77pp7777pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-7777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZppppppoZoZoZoZppppǸǸǸǸpp77ppppǸǸǸǸgggggg°°ggǸǸǸǸgg°°ggggggǸǸǸǸppppggǸǸǸǸgg°°ggǸǸǸǸgg`'`'`'`'pOpO`'`'°°ggppoZoZoZoZpppppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZppppppoZoZoZoZppppǸǸǸǸpp77ppppǸǸǸǸgggggg°°ggǸǸǸǸgg°°ggggggǸǸǸǸppppggǸǸǸǸgg°°ggǸǸǸǸgg`'`'`'`'pOpO`'`'°°ggppoZoZoZoZpppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77ppggǸǸpp77ggǸǸgg°°gg°°gg°°ggǸǸgg°°gg°°ggggǸǸpp77pp77ppggǸǸgg°°gggg°°ggǸǸgg`'`'pOpO`'`'pOpO`'`'`'`'°°gg°°77ppoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777z*777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77ppggǸǸpp77ggǸǸgg°°gg°°gg°°ggǸǸgg°°gg°°ggggǸǸpp77pp77ppggǸǸgg°°gggg°°ggǸǸgg`'`'pOpO`'`'pOpO`'`'`'`'°°gg°°77ppoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777N7777777777777777777777777777777777777777777777777777777777777777777777777777777777pppppp77ppppppppggggggǸǸ㻢gggg°°gggggg°°ǸǸ°°ggggggggpppp77ppppppǸǸgg°°gggg`'`'`'`'`'`'°°pOpO`'`'`'`'77pppppppp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,7777777777777777777777777777777777777777777777777777777777777777777777777777777777pppppp77ppppppppggggggǸǸ㻢gggg°°gggggg°°ǸǸ°°ggggggggpppp77ppppppǸǸgg°°gggg`'`'`'`'`'`'°°pOpO`'`'`'`'77pppppppp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+7777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77ppoZoZpp77°°gg°°ǸǸ㻢ggǸǸgggg°°ggǸǸ°°gg°°ggǸǸ77pp77pp77ppǸǸpp77ppgg°°ggǸǸ°°gg`'`'°°gg`'`'pOpOpOpO77ppoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$7777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp77ppoZoZpp77°°gg°°ǸǸ㻢ggǸǸgggg°°ggǸǸ°°gg°°ggǸǸ77pp77pp77ppǸǸpp77ppgg°°ggǸǸ°°gg`'`'°°gg`'`'pOpOpOpO77ppoZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777pp77oZoZ77pppppp77oZoZ77ppgg°°gggg㻢ggǸǸ°°gggg㻢gggggg°°ǸǸ°°pppp77ppppppppgggggg°°ǸǸgggggggggg°°ggpp77oZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?77777777777777777777777777777777777777777777777777777777777777777777777777777777pp77oZoZ77pppppp77oZoZ77ppgg°°gggg㻢ggǸǸ°°gggg㻢gggggg°°ǸǸ°°pppp77ppppppppgggggg°°ǸǸgggggggggg°°ggpp77oZoZ77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-7777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777°°gg°°°°gg°°pp77pp7777°°gg°°gg°°°°°°ggpp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777,7777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777°°gg°°°°gg°°pp77pp7777°°gg°°gg°°°°°°ggpp7777pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777w.77777777777777777777777777777777777777777777777777777777777777777777777777777777pppppppp77ppoZoZoZoZppggggggǸǸǸǸѻgg°°ggǸǸǸǸ㻢ggǸǸǸǸggggǸǸǸǸ77ppppppǸǸǸǸpppp°°ggǸǸǸǸppgggggggg77ppoZoZoZoZpp77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777774&77777777777777777777777777777777777777777777777777777777777777777777777777777777pppppppp77ppoZoZoZoZppggggggǸǸǸǸѻgg°°ggǸǸǸǸ㻢ggǸǸǸǸggggǸǸǸǸ77ppppppǸǸǸǸpppp°°ggǸǸǸǸppgggggggg77ppoZoZoZoZpp77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777ppgg°°°°gg°°㻢gg°°°°ggpOpO77pp7777pp77°°77ppgg°°ggpp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777ppgg°°°°gg°°㻢gg°°°°ggpOpO77pp7777pp77°°77ppgg°°ggpp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777777777777777777777777pppp77oZoZ77ppppppoZoZoZoZpppp°°ggǸǸǸǸ㻢ggggggǸǸǸǸǸǸǸǸgg°°ǸǸǸǸggpp77ppǸǸǸǸpp77ppppǸǸǸǸppppppgg°°ppppoZoZoZoZpppppp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777%777777777777777777777777777777777777777777777777777777777777777777777777777777pppp77oZoZ77ppppppoZoZoZoZpppp°°ggǸǸǸǸ㻢ggggggǸǸǸǸǸǸǸǸgg°°ǸǸǸǸggpp77ppǸǸǸǸpp77ppppǸǸǸǸppppppgg°°ppppoZoZoZoZpppppp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77ppoZoZppoZoZppggǸǸǸǸ㻢ggǸǸǸǸǸǸǸǸǸǸggǸǸ77ppǸǸppǸǸpp77ppǸǸppǸǸpp77pppp77pp77pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѱ777777777777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77ppoZoZppoZoZppggǸǸǸǸ㻢ggǸǸǸǸǸǸǸǸǸǸggǸǸ77ppǸǸppǸǸpp77ppǸǸppǸǸpp77pppp77pp77pp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777pppppppp77oZoZ7777gg°°ǸǸ°°ǸǸggǸǸ°°ǸǸ77pppppppppp77ǸǸ77ǸǸ77pppppppppp77oZoZpp77pppppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppppppp77oZoZ7777gg°°ǸǸ°°ǸǸggǸǸ°°ǸǸ77pppppppppp77ǸǸ77ǸǸ77pppppppppp77oZoZpp77pppppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777V&777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777ppoZoZppppǸǸǸǸǸǸggǸǸǸǸǸǸggǸǸggǸǸpp77ppǸǸppǸǸpp77ppǸǸppǸǸpp77pppppp77ppppoZoZpp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777ppoZoZppppǸǸǸǸǸǸggǸǸǸǸǸǸggǸǸggǸǸpp77ppǸǸppǸǸpp77ppǸǸppǸǸpp77pppppp77ppppoZoZpp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777c7777777777777777777777777777777777777777777777777777777777777777777777777777ppppppoZoZoZoZppppppppǸǸǸǸggggggǸǸǸǸggpppp77ǸǸ77ǸǸ77pppppppppp777777pppppppppp77oZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777777777ppppppoZoZoZoZppppppppǸǸǸǸggggggǸǸǸǸggpppp77ǸǸ77ǸǸ77pppppppppp777777pppppppppp77oZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777T777777777777777777777777777777777777777777777777777777777777777777777777777777pp777777pp77°°°°gg°°°°°°gg°°7777pp777777pp777777pp777777ppoZoZpp77ppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777+777777777777777777777777777777777777777777777777777777777777777777777777777777pp777777pp77°°°°gg°°°°°°gg°°7777pp777777pp777777pp777777ppoZoZpp77ppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777E777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppoZoZpp77ppǸǸggǸǸǸǸǸǸǸǸggǸǸgg°°ǸǸppǸǸppppppǸǸppǸǸpp77pppppppppppppp77oZoZ77pppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppoZoZpp77ppǸǸggǸǸǸǸǸǸǸǸggǸǸgg°°ǸǸppǸǸppppppǸǸppǸǸpp77pppppppppppppp77oZoZ77pppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZ7777pp77pp77°°777777pp777777pp777777pp777777pp7777ppoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZ7777pp77pp77°°777777pp777777pp777777pp777777pp7777ppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777!77777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppppppppǸǸǸǸppppppǸǸǸǸǸǸggǸǸppppppǸǸppǸǸpp77ppǸǸppǸǸpppppppppp77ppppppppppoZoZppoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppoZoZppppppppǸǸǸǸppppppǸǸǸǸǸǸggǸǸppppppǸǸppǸǸpp77ppǸǸppǸǸpppppppppp77ppppppppppoZoZppoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777a277777777777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZoZoZpp77pp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77pppp77pp77pppp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777177777777777777777777777777777777777777777777777777777777777777777777777777oZoZppoZoZoZoZpp77pp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77pppp77pp77pppp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZ77oZoZpppp77pppppppp77ǸǸpppp77ppppǸǸǸǸpppp77ppppǸǸ77pppppp77ǸǸpppp77pppp77pppppp77pppp77ppoZoZppoZoZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZ77oZoZpppp77pppppppp77ǸǸpppp77ppppǸǸǸǸpppp77ppppǸǸ77pppppp77ǸǸpppp77pppp77pppppp77pppp77ppoZoZppoZoZpp77777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77pp77pppp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸgg°°ggǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77pppp77pp77pppp77pp77ppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777H7777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77pp77pppp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸgg°°ggǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77ppǸǸǸǸpp77pp77pppp77pp77pppp77pp77ppoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777լ777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppppoZoZ77pppppp77pppp77ppppǸǸ77pppppp77ǸǸgg°°ggggǸǸ77pppppp77ǸǸpppp77ppppǸǸ77pppppp77pppp77pppp77pppppp77oZoZpppp77777777777777777777777777777777777777777777777777777777777777777777777777777777O,777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZppppoZoZ77pppppp77pppp77ppppǸǸ77pppppp77ǸǸgg°°ggggǸǸ77pppppp77ǸǸpppp77ppppǸǸ77pppppp77pppp77pppp77pppppp77oZoZpppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77ppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77ppoZoZoZoZpp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777775777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77ppoZoZpppppp77pppppppp77pppppp77ppǸǸpppppp77ppppppǸǸpp77pppppp77ppǸǸpppppp77ppppppǸǸpp77pppppp77ppǸǸpppppp77pppppppp77pppppp77pppppppp77ppppoZoZ77pppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZoZoZpp77ppoZoZpppppp77pppppppp77pppppp77ppǸǸpppppp77ppppppǸǸpp77pppppp77ppǸǸpppppp77ppppppǸǸpp77pppppp77ppǸǸpppppp77pppppppp77pppppp77pppppppp77ppppoZoZ77pppp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp77oZoZpp77pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZoZpp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp7777pp77pp77pp77oZoZpp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777Y07777777777777777777777777777777777777777777777777777777777777777777777pppp77oZoZ77ppppppoZoZpp77pppppp77pppppppp77ppppppǸǸpp77pppppp77ppǸǸpp77pppppp77pppppppp77pppppppp77pppppp77ppoZoZpppppp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777֪7777777777777777777777777777777777777777777777777777777777777777777777pppp77oZoZ77ppppppoZoZpp77pppppp77pppppppp77ppppppǸǸpp77pppppp77ppǸǸpp77pppppp77pppppppp77pppppppp77pppppp77ppoZoZpppppp77pp777777777777777777777777777777777777777777777777777777777777777777777777777747777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77pp77ǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸpp77pp7777pp77pp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp77ppoZoZpp77pp77ǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸpp77pp7777pp77pp777777777777777777777777777777777777777777777777777777777777777777777777777777@*777777777777777777777777777777777777777777777777777777777777777777777777ppppppoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZpp77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppppppoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZpp77pppppp7777777777777777777777777777777777777777777777777777777777777777777777777777%7777777777777777777777777777777777777777777777777777777777777777777777pp77oZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZpp777777777777777777777777777777777777777777777777777777777777777777777777777777׮77777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777k77777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777S777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777"2777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777+7777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777Y07777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777oZoZ7777777777oZoZ7777777777oZoZ777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777707777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777oZoZ7777777777oZoZ7777777777oZoZ777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777O17777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777,7777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ))))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777F,7777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ))))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))  ))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))  ))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777 477777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ))))  ))))))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ))))  ))))))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777ꪏ77777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))  ))  ))  ))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ  ))  ))  ))  ))  ))oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777.777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZ))))  ))))))  ))))))  ))oZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777J17777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777}277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))))))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777E77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))))))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777̥777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777737777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))))  ))))))  ))))))  ))))))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777q/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777o777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777V,7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777`777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 477777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777v&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777D77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777T777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777𙏀777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777j(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ӡ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-1777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777N*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777{77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777i,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777z7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777q777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                            77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                            7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Y777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777H777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777𪏀7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                            77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777D77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                            77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777g'777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777717777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-77777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777T/777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                            777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                            777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 $7777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q77777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777㮏77777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777]-777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777E$777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))777777777777777777777777777777777777777777777777777777777777777777777777777777777777𳏀7777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                            777777777777777777777777777777777777777777777777777777777777777777777777777777777717777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                            7777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))  ))77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777o.777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                                                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777775,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777s$77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777m77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ΰ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777I77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777}77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777S77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777٨77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777t77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n*77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      ))      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777# 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777j/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777T77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777D77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777F+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777!77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777^77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777377777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\&77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777}177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777j(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777{!77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777z-77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777477777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777\77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777۱77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ꭏ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777T277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777W)77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777G&77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777    rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      rr      77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779&77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777{77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?-77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777S/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                                    7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777O77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  rr  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777q77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777VҸ 2RwX777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?Q@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777V7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779 R97777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777s77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q{S7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777nfp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777z^{7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777K177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ker777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,/7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q{S77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$7777777777777777777777777777777777777777777777777777777777777777777777777777777777777779֍97777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ȱ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777R7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777u$77777777777777777777777777777777777777777777777777777777777777777777777777777777777777> @777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A077777777777777777777777777777777777777777777777777777777777777777777777777777777777777P777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777S+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777ݏ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777WvZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ѷ17777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777717777777777777777777777777777777777777777777777777777777777777777777777777777777777777ڏ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777M777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777g.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777773777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777O777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777}777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777䭏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ҩ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777L777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ڦ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777R-777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ǧ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777792777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777757777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*+777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777722777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ܟ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777y777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Y777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777F)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&0777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ܦ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777N777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777T0777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777M777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777K777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 "777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777[17777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ӱ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777M777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777z4777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777i7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777+777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777垏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777c37777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777˧777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777䬏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777q7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777a777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,-777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-17777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777n777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ˬ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777$777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Dz777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777󳏀777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777沏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777c&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777f2777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777:(777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777筏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777F.7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777771777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777b777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777u777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777z777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777l777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777E 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777﨏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777!7777777777777777777777777777777777777777777777777777777777777777777777777777777777777 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ۏ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777׭77777777777777777777777777777777777777777777777777777777777777777777777777777777777772177777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(7777777777777777777777777777777777777777777777777777777777777777777777777777777777777SP77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Z17777777777777777777777777777777777777777777777777777777777777777777777777777777777777xWvZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Y/77777777777777777777777777777777777777777777777777777777777777777777777777777777777777ޏ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777477777777777777777777777777777777777777777777777777777777777777777777777777777777777777RO77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777? @777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ఏ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777TQ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777_7777777777777777777777777777777777777777777777777777777777777777777777777777777777777779׍9777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|RzU77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777k%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777fpct777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777E777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777^{^|7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ץ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777fper77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777b77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777{RzT777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779R Q:7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ͫ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@PO@77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777wYQ0  0QvZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ψ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Ⰿ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777h0777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777~4777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777[*7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777774777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777772777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777|777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777,,777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777^4777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?!777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777y777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777谏777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777*777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777&777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777`5777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 *777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777(777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777windows_uninstaller_welcome96.bmp000077500000000000000000004556601452337521700373670ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/backgrounds/windows_uninstallerBM[6(:z[7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ǸǸǸǸǸǸǸǸ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZǸǸǸǸǸǸǸǸoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZǸǸǸǸǸǸǸǸoZoZoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZǸǸǸǸǸǸǸǸoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZǸǸǸǸǸǸǸǸoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸǸǸǸoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZǸoZoZoZoZoZoZoZǸoZoZoZoZoZoZoZǸoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZǸoZoZoZoZoZǸoZoZoZoZoZǸoZoZoZoZoZoZoZoZoZppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZp7p7oZoZǸǸoZoZoZoZǸǸoZoZoZoZǸǸoZoZ77p7p777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZ7ppp7oZpp7ppǸǸǸpp7pp7ppoZ7pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZp7p7poZoZp7p7pǸǸpgǸǸp7p7pǸǸpp7p7poZoZp7p77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppp7ppoZ7ppp7Ǹg°gǸ7ppp7Ǹ`'`'pOg7ppp7oZppoZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p777p77°g°77p77pO`'°77p7oZp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZoZpppoZoZp7pǸpǸgggǸpǸp7pǸǸ`'`'`'Ǹpp7poZoZ7poZ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pp7㻢g°77p7pOpO`'pO77p777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZoZp7oZoZǸǸ㻢gǸǸppǸ`'Ǹ`'pO`'ǸpppoZpoZpoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p77p°°°pO`'°pO7p7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZǸѻggg°ǸǸgg`'`'`'pOoZ7oZ7poZpoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZpoZoZoZǸg°gǸǸǸǸggǸ`'Ǹ`'pO`'poZp7oZp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZ7oZoZgg°ǸǸg°ǸpOǸpO`'`'ppp7oZpp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZpoZgoZg°goZǸgǸǸǸǸg°gǸgǸ`'pO`'poZp7poZoZp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777pppggg°oZǸ°°ǸǸ°ggg`'`'pO7oZ7ppoZ7p7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p7°`'pO`'pOpO`'°°g°g°pO`'pO`'pO7p7poZoZp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZp7poZoZ`'pO`'`'`'oZoZ`'`'`'㻢gǸǸggǸǸggg°gǸǸ`'pO`'`'`'ppp7oZpp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777p7g°gpO`'°㻢gg°㻢g°°pO`'pO`'pO7p7p77p7p777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZpppoZoZpppoZǸg°g`'gǸǸg°gǸǸѻgǸǸ`'`'`'pO`'p7pppoZp7pp777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZ7p77p°g°`'pO°g°pO`'pO`'pO7p7p77p7p777777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZpp7pppp°oZ°ggg°`'`'ggg°Ǹ㻢ggg`'pO`'`'`'°7ppp7poZppp7p77777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZp7p7poZp㻢gǸg°g°g°`'Ǹ`'gǸg°gǸgpO`'pO`'°g7p7p77p7p77777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZ7ppp7oZ7ѻggg°ggg°Ǹgg°Ǹ°g`'`'°ggp7pppoZoZ7ppp7777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZoZp7p7poZ°gǸg°°gǸgǸg°Ǹg°g°g°g7p7poZoZp7p77777777777777777777777777777777777777777777777777777777777777777777777777777777777777oZpp7ppѻgg°Ǹ°°ggg°ggǸgggg°ggppp7oZpp7pp77777777777777777777777777777777777777777777777777777777777777777777777777777777777777p7p7㻢g°°°g°gg°°g°7p7poZoZp7p7p77777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZp7pppoZoZ°gǸǸǸǸggg°gǸǸggǸǸp7ppoZ7ppp777777777777777777777777777777777777777777777777777777777777777777777777777777777777p77p7p7㻢g°°g°g°°°7p7poZ7p7777777777777777777777777777777777777777777777777777777777777777777777777777777777777poZppp7poZoZѻggǸǸǸǸg°gggǸǸgg°gǸǸppp7oZoZp7poZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777p77p7poZoZǸǸǸǸg°gǸǸg°gǸǸǸp777p7777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZ7ppǸǸgg°ǸǸ°ggǸ7ppoZpppoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777poZoZp7poZoZǸǸǸǸg°gǸgǸg°gǸǸǸp77poZp7777777777777777777777777777777777777777777777777777777777777777777777777777777777p7oZpp7oZoZǸǸggg°Ǹ°Ǹpppp7oZ7poZ777777777777777777777777777777777777777777777777777777777777777777777777777777777poZoZp77p7°g°°°°°pO°7p777poZp777777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZpoZpppoZpoZ°ǸǸǸgǸ°gǸgǸg`'`'Ǹ`'Ǹ7p7ppppoZ7777777777777777777777777777777777777777777777777777777777777777777777777777777p7777p777°°°g°°°°`'pOpOp7p7p7oZp7777777777777777777777777777777777777777777777777777777777777777777777777777777ppoZpoZpoZp7poZpǸggǸgǸǸgǸgggǸgǸgpO`'Ǹ`'Ǹpppp7poZoZ7p777777777777777777777777777777777777777777777777777777777777777777777777777777p77poZoZp7p7poZǸ°g°gǸǸǸǸ㻢g°gǸǸg°g°gǸǸ7p7pp7p7oZp777777777777777777777777777777777777777777777777777777777777777777777777777777oZpoZppoZ7ppp7oZg°ggǸǸǸ°ggg°Ǹp7pp7ppp7oZpp77777777777777777777777777777777777777777777777777777777777777777777777777777oZ7poZoZp7p7poZǸǸǸ㻢gǸǸǸǸg°g°gǸǸp7p7pp7p7poZoZp777777777777777777777777777777777777777777777777777777777777777777777777777777oZpp7oZpp7ppǸǸѻg°gǸǸѻgǸ7ppp7pppp7ppoZ7pp7777777777777777777777777777777777777777777777777777777777777777777777777777oZoZp7p77p7p7p7㻢g°g°°p7p7p77p7p7p77p7p7777777777777777777777777777777777777777777777777777777777777777777777777777oZ7pppoZp7ppp7pǸ°gǸg°ggǸǸǸpp7pppp7ppp7poZppp7777777777777777777777777777777777777777777777777777777777777777777777777777poZoZp7p77p7p7p7㻢g°°ggg°p7p77p7p77p7p7777777777777777777777777777777777777777777777777777777777777777777777777777oZpp7poZppp7pppǸѻgg°gǸg°Ǹg`'V8°gǸǸp°7ppoZ7ppp77777777777777777777777777777777777777777777777777777777777777777777777777p77p7poZoZp7p7pǸǸ㻢g°gǸǸǸǸ_D*V8pOgǸǸg°gǸǸ°gg7poZoZp7p777777777777777777777777777777777777777777777777777777777777777777777777777ppoZp7ppoZ7ppp7Ǹ°ggǸѻggǸV8V8°`'gǸgg°Ǹ㻢gg°gp7oZpp7p77777777777777777777777777777777777777777777777777777777777777777777777777p77p7poZoZp7p7pǸǸ°gǸǸ°ǸǸV8°`'°gǸǸg°g°gǸǸ°gg°gpoZoZp7p77777777777777777777777777777777777777777777777777777777777777777777777777p7poZppp7oZpp7ppǸѻg°Ǹ°Ǹ°`'gg°Ǹgg°Ǹggg°oZoZ7ppp7777777777777777777777777777777777777777777777777777777777777777777777777p77p777p7°gpOpOg°g°°g77p7777777777777777777777777777777777777777777777777777777777777777777777777ppoZ7poZpoZpppǸpǸǸǸgǸgǸgǸǸgggǸǸggggpoZp7p77777777777777777777777777777777777777777777777777777777777777777777777p7poZoZp777p77°g°㻢g°°g°77p777777777777777777777777777777777777777777777777777777777777777777777777pp7oZppoZpoZp7pǸpǸggǸǸgǸgǸǸgǸǸǸѻggg°gpoZpppoZ7777777777777777777777777777777777777777777777777777777777777777777777p7oZpoZp7poZpǸp7pǸǸ°gǸǸ`'°gǸǸg°ǸǸǸgǸg°ggp7poZpoZ77777777777777777777777777777777777777777777777777777777777777777777777poZoZ7oZ7ppppp7Ǹ°Ǹgg`'g°ǸǸ°ѻgǸ°Ǹ°gggpp7oZ7oZ7777777777777777777777777777777777777777777777777777777777777777777777oZpoZp7poZpǸp7pǸǸg°gǸǸ`'°gǸgǸg°gǸgǸǸgǸg°gp7poZpoZ777777777777777777777777777777777777777777777777777777777777777777777oZppoZpp77Ǹ7ppǸǸpO`'gggg°Ǹ°Ǹ°ggg°7pppp77777777777777777777777777777777777777777777777777777777777777777777oZp77p77p7p7эpOg°g°g°°g°g°°g°`'pO7p7p77p77777777777777777777777777777777777777777777777777777777777777777777oZoZ7poZoZp7ǸǸppp7pǸǸǸǸѻgǸǸ°gggǸǸggg°gǸǸ°`'`'`'ppp7poZoZp777777777777777777777777777777777777777777777777777777777777777777777p77p7p7p7°g°g°g°7°g°°g°g°gpO`'pO7p77p7777777777777777777777777777777777777777777777777777777777777777777oZoZpppoZoZppǸǸp7ppǸǸggg°gǸǸg°gggǸǸppgǸǸg°gǸǸg`'`'pO`'°gpoZoZppp7777777777777777777777777777777777777777777777777777777777777777777p7poZp7pgǸp7gǸg°g°g°gǸg°g°ggǸp7p7pgǸg°gg°gǸg`'pO`'pO`'`'°g°7poZp7p7777777777777777777777777777777777777777777777777777777777777777777ppp7ppppgggǸ㻢gg°ggg°Ǹ°ggggpp7pppǸg°gg`'`'`'°pO`'`'7pppp7p777777777777777777777777777777777777777777777777777777777777777777poZp7p7poZp7°g°Ǹ㻢gǸgg°gǸ°g°gǸ7p7p7pǸp7pg°gǸ°g`'°g`'pOpO7poZp7p777777777777777777777777777777777777777777777777777777777777777777p7oZ7ppp7oZ7pg°gg㻢gǸ°gg㻢ggg°Ǹ°pp7ppppggg°Ǹggggg°gp7oZ7ppp777777777777777777777777777777777777777777777777777777777777777777poZp7p77°g°°g°p7p77°g°g°°°gp77p7p7777777777777777777777777777777777777777777777777777777777777777pppp7poZoZpgggǸǸѻg°gǸǸ㻢gǸǸggǸǸ7pppǸǸpp°gǸǸpgggg7poZoZp7pp77777777777777777777777777777777777777777777777777777777777777777poZp7p77pg°°g°㻢g°°gpO7p77p7°7pg°gp77p7p777777777777777777777777777777777777777777777777777777777777777pp7oZ7pppoZoZpp°gǸǸ㻢gggǸǸǸǸg°ǸǸgp7pǸǸp7ppǸǸpppg°ppoZoZppp7p77777777777777777777777777777777777777777777777777777777777777p7poZp7poZpoZpgǸǸ㻢gǸǸǸǸǸgǸ7pǸpǸp7pǸpǸp7pp7p7p7p7777777777777777777777777777777777777777777777777777777777777777pppp7oZ77g°Ǹ°ǸgǸ°Ǹ7ppppp7Ǹ7Ǹ7ppppp7oZp7ppp77777777777777777777777777777777777777777777777777777777777777p77poZppǸǸǸgǸǸǸgǸgǸp7pǸpǸp7pǸpǸp7ppp7ppoZp7p77777777777777777777777777777777777777777777777777777777777777pppoZoZppppǸǸgggǸǸgpp7Ǹ7Ǹ7ppppp777ppppp7oZ7777777777777777777777777777777777777777777777777777777777777p777p7°°g°°°g°77p777p777p777poZp7poZ7777777777777777777777777777777777777777777777777777777777777poZoZpoZp7pǸgǸǸǸǸgǸg°ǸpǸpppǸpǸp7ppppppp7oZ7pp777777777777777777777777777777777777777777777777777777777777poZ77p7p7°777p777p777p777p77poZ77777777777777777777777777777777777777777777777777777777777ppoZppppǸǸpppǸǸǸgǸpppǸpǸp7pǸpǸppppp7pppppoZpoZp7777777777777777777777777777777777777777777777777777777777oZpoZoZp7p7p7pǸǸp7p7pǸǸǸǸp7p7pǸǸp7p7pǸǸp7p7pp7p7pp7p7777777777777777777777777777777777777777777777777777777777777oZoZ7oZpp7pppp7Ǹpp7ppǸǸpp7ppǸ7ppp7Ǹpp7pp7ppp7pp7poZpoZp77777777777777777777777777777777777777777777777777777777777poZoZp7p7pp7p7pǸǸp7p7pǸǸg°gǸǸp7p7pǸǸp7p7pǸǸp7p7pp7p7pp7p7poZ7777777777777777777777777777777777777777777777777777777777poZoZppoZ7ppp7pp7ppǸ7ppp7Ǹg°ggǸ7ppp7Ǹpp7ppǸ7ppp7pp7pp7ppp7oZpp77777777777777777777777777777777777777777777777777777777777p77p7p7p77p7p7p77p7p7p77p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7poZoZp7p77777777777777777777777777777777777777777777777777777777poZoZp7poZppp7pppp7ppp7pǸppp7pppǸp7ppp7pǸppp7pppǸp7ppp7pǸppp7pppp7ppp7pppp7ppoZ7pp777777777777777777777777777777777777777777777777777777777poZp7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p77p7p7p7oZp7p7777777777777777777777777777777777777777777777777777777pp7oZ7pppoZp7ppp7pppp7pppǸp7ppp7pǸp7ppp7pppp7pppp7ppp7poZppp7p777777777777777777777777777777777777777777777777777777p7poZp7p7ǸǸǸǸǸǸǸǸp7p77p7p77777777777777777777777777777777777777777777777777777777pppoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZp7ppp777777777777777777777777777777777777777777777777777777p7oZoZoZoZoZǸǸǸǸǸǸǸoZoZp777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸǸoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZ7777oZ77777oZ77777oZ777oZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ )oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZ)) )oZoZoZoZoZoZoZoZoZoZ7777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ ) ) )oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZ)) ))) )oZoZoZoZoZoZoZoZoZ77777777777777777777777777777777777777777777777777777777777oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ ) ) ) ) )oZoZoZoZoZoZoZoZoZoZoZoZoZoZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777oZoZoZoZ)) ))) ))) )oZoZoZ777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)) ))) ))) ))) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)) ))) ))) ))) ))) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)) ))) ))) ))) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )   )  777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                              77777777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777777777777777                                                                                      777777777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777777777777777                                                                                          77777777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777777777777777                                                                                              7777777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )77777777777777777777777777777777777777777777777777777777777777777                                                                                                  777777777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )7777777777777777777777777777777777777777777777777777777777777                                                                                                      77777777777777777777777777777777777777777777777777777777777 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )777777777777777777777777777777777777777777777777777777777                                                                                                          77777777777777777777777777777777777777777777777777777777  )   )   )   )   )   )   )   )   )   )   )   )   777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)   )   )   )   )   )   )   )   )   )   )   )   ) 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  )   )   )   )   )   )   )   )   )   )   )   )   7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)   )   )   )   )   )   )   )   )   )   )   )   ) 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  )   )   )   )   )   )   )   )   )   )   )   )   7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777)   )   )   )   )   )   )   )   )   )   )   )   ) 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  )   )   )   )   )   )   )   )   )   )   )   )   7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  r   r   r   r   r   r   r   r   r   r   r   r   7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r   r   r   r   r   r   r   r   r   r   r   r   r 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  r   r   r   r   r   r   r   r   r   r   r   r   7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r   r   r   r   r   r   r   r   r   r   r   r   r 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  r   r   r   r   r   r   r   r   r   r   r   r   7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r   r   r   r   r   r   r   r   r   r   r   r   r 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777  r   r   r   r   r   r   r   r   r   r   r   r   7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777r r r r r r r r r r r r r r r r r r r r r r r r r 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777                                                  77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778aļ -Kqa877777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777GǿHG7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<ƾI<7777777777777777777777777777777777777777777777777777777777777777777777777777777777777]t]77777777777777777777777777777777777777777777777777777777777777777777777777777777777}]}777777777777777777777777777777777777777777777777777777777777777777777777777777777U7777777777777777777777777777777777777777777777777777777777777777777777777777777~\~77777777777777777777777777777777777777777777777777777777777777777777777777777]t]777777777777777777777777777777777777777777777777777777777777777777777777777<ߋ<77777777777777777777777777777777777777777777777777777777777777777777777777ƾJ7777777777777777777777777777777777777777777777777777777777777777777777777ED777777777777777777777777777777777777777777777777777777777777777777777777ƾJ777777777777777777777777777777777777777777777777777777777777777777777778䎀87777777777777777777777777777777777777777777777777777777777777777777777ar`7777777777777777777777777777777777777777777777777777777777777777777777ļM7777777777777777777777777777777777777777777777777777777777777777777777.7777777777777777777777777777777777777777777777777777777777777777777777܏7777777777777777777777777777777777777777777777777777777777777777777777 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7777777777777777777777777777777777777777777777777777777777777777777777܏7777777777777777777777777777777777777777777777777777777777777777777777-/7777777777777777777777777777777777777777777777777777777777777777777777LM7777777777777777777777777777777777777777777777777777777777777777777777qar_77777777777777777777777777777777777777777777777777777777777777777777778㎀877777777777777777777777777777777777777777777777777777777777777777777777JJ777777777777777777777777777777777777777777777777777777777777777777777777DD7777777777777777777777777777777777777777777777777777777777777777777777777KK77777777777777777777777777777777777777777777777777777777777777777777777777<ތ<777777777777777777777777777777777777777777777777777777777777777777777777777u\vZ77777777777777777777777777777777777777777777777777777777777777777777777777777\~\~7777777777777777777777777777777777777777777777777777777777777777777777777777777TT777777777777777777777777777777777777777777777777777777777777777777777777777777777^{^{77777777777777777777777777777777777777777777777777777777777777777777777777777777777vZvZ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777h p1mžSKu3q$dl߁| )b.1!O (zIY&⋂~seo.Vٻ"0+py~3H4Jzbgx;uz?2v.0#L1_l`c <̈hJ$쎁4Hj d,=¶Wr;9;W$pLѷo!9-?# ȱiҸX<e=d ]Ǩǁ671PN}i8gZ2H e%G~`s}?C;\Ь < '& qvYr"8y IS:$Ɲ\5z*}/< hxN:k5[ZT\- aZP?#[5, n ! U%fg\m*8 VW;x,.Ԑi4g{m2lN|;s[Z6h,99͇9x3-qJIÛ)7tFV_!ŀ4A88[=T|EWr+HCs00fj2i˚a@0dPs'e&h4IFU#S ($M@nrѯyXP(5Q}|QlAKi> 81'KߙmGR_l™DPeM'y&;GθX ~8YdH@Im2\m p=i%K=$}x|7OD\`\w 9쁝bOv@S=Y,ߝ~vl퀁Yf-c(m0^r3a:2ۦZ nt:™ݍy5_-&&Ie,#4YgS40@y@KMQjndQ$f{RL @r9\7D9"%@"O;yQ-荇׏luly? BD %s[燓5G4p%8( B&kEIgzwfHW`l0bu3g'FG| GU '6 B5N-͌*XqQ? 8gfiiuq/c#_w.^f|PQ6} r,P"ðB(VKAE{yIShp:L1l0T>J``ڧV ?-AYxRnվ+ֆ|cfJk3'lX#B h-O_v]-l{\r؊<2Br6 2i74G$R`0*za4Njb!P&*;_@VyCI6U^/qOS &,y953[_Lߝ~v`mC;n݋.~mEȷDd@;|kG0/yh VjrW"x$Rg`*!e%yǾt1Hɠڑ/.-?țF4o$v30ט}<̕Of譛vρ㨥?@$6,g\? >o.0&ȊO8&k4 *LqzJۍwvXb,\L!=xQ" ~)a,p6o{nE=_m W>R D8V!bQ# LM gWo &_Hկ}/$E÷rF%ySe2H,8p+L @ WZ&,t.TVS>;viO^1qz4sƚB喝ߝ~v|Ђ=@bQr COt/ajLAao'o&MZ22+ x£HDu -1 ‘Z~$լAtPr+gtʿsz+ɨpO !=o;" k@ ݈Ģ@A dKD9df˦LARe_cL#Jw8&k< E \?8Kvn[jZ!qY鐏8fRCңu@ícA0 tuEll `>>,EDlZwRD?UoxpG4*i~ Q J3 M )qFbm~.W\RKofK i,ܒH ãC<ŕnv,5{yڊEЃj{: %(=y`W}IQGܣ " l]bgc,&z%)&p>Vs ؟&\\ţu]~փL >8o:1@ۛ{c;ԏK$x@ݩi~ q+7ܸOkZШ(zO`;lfrqU$%+>T} S>,}|o2>O3/ 4G lgD T9W,ȿj15Gou6K>QxBh&Ņqzb$iذFSpP~JmI{$B!2sW-F8-.F^t>ykmE2_鵥w>!O"&+ @2ūf:q$jpuJmZ,m$񩨣.= h. Bz/ߟJӥt¿HJWk{' fΆu)b-wNm)9-E1wup65q? ~XTPiLwuZʹ0E12 '0w+RnFCݙz Sv /Z7( dv5_^lb!  nƃ`p{ow`^/aN]ےH)='N9Q-9v`"~&"[.,I:cw0 ٔ?`RyM"Z݊evoe,/d;@ I"e>BmYqZeʹdN,#ooxˈvtV6 9,N8v1t[.~0߭Ey=?`9/c墛͓PV@*n8F9 4׾WƔw;xK|]3auX ])<3sUⰛ,%v^(W `>qԴg\}UXhNZ+=H@ Ml㺤m4#ʼ 2eC(YXI:m ß8⢨L+za ~>lݘXS\v\i\s>f`er^"NW@kC QZEA6 4ܖ,r?eT$ ЃPg[嗔F}<&"j⡜{o}S*du*w D6q&TddJUx,eEe̎0f%+Z9_.ymd^\| *23I?SOynLt㡘UI׿/Gb#I3vU㣒r䖚] $7Dͅw3Չ6ǀJ:4{JG(;Tl3."bmi,|l79Ix\ʳc'/<,P\@4?{N] ݾ@ncZ.+7(!-&`V=42 GVUj-eB|`TSEKtE0') 9>Xx;\V蝒͉}%% ONοߟIt¿n uC URxvL{|mܐ|o頀AC6!T$j5’mBܞAs= '1k:FaRljTJmMY1{7!w1==SprO&:jzŮAB3F%YBLOHZT ظb(F[Ͳ:/$:f˻04+1pʁ'?+ TdC \}UXhYlc߁7ܢ2o+bVxzC4Ou.*@rVuIPx}v.a~ϮOq"AHo$p.iEtQ=(l0 I O xj*.- ͆c;A#o5A͈˴K'=7$ف qs]'ysD!jEyUV׺ja T55В h-mߙEn52QZrn.'3/daB󢦼M'}Nc GYaqG|\Zrd D&2N,s.g^22励ҍC6]j z^?'8d>U6gPuBIFFg"ۨvq=bD~<߆gh׈5x%rQ_ ҃O|ؽ.ԩRxBH KQ<; k[=`81}LX!5'F_컣.~jF6(iH8 cYt O1c%RATXk&hNޢ#p4i)cWjJpt[E@~ ;FM:M#rD=|s(nw{4d4ܗ8Y<{z[Ɣw¡_~!Md` qo'@#h|m.ѭ/%1;D`Y$ǙB9RgHXg2mfF|#0XD674ik5i2q@^\na.MER<)NǕ1v5NSueif߈ਮ(Jvw9Z}&ڸeF ()nD7"(zu3J)ixEYFH9 HrL28b2ȖAJ'4ƽh ț^`Ci ޔ$r1;șϔP2CDlxbK.ɋ.Kܶk\}O ;u\FeKMi,sRiСk1d)Uk \1%2IߟEtzn uC U1 ,u: w7ieB۝0)oc2K+f#wHg-]}{A|'T|Râ8u_H >tuItG(ߍ} {3~ߣ`4bY!΄tjF2` 2b&GhNIgulk9ϙZ0XJ&̙7 ۷|Az;4g eBU KxE"qح]YЉAg/W>5i:Z QN\r͚U&MjLaPOֽJVC>U= Z1{Bj%^݂YWvZMM^.:AI"04,%ʞ r WE&X'b_ujH ZYn4tMG(@[^gTGle,[0\ Q7CõٿCBUWR]PCY҄xC7*| T-*ѝ y*d pt%03p>+،77HQ]JA F#w%іrmWbnq0j5s~|_^Io ŭ-49 9 ~c[`6X.bjG Lq08@M.[P}$%t2oW XU57l`dE=!31%~Sh߶\o#X[> w@ZE+nunAX;[~D5#̗cLWhC 8)]J!ܫ~,Dã_[~#[keaLP+fAO'CՂ qw`eL|_f''HV\tx lI>Ge s=aWlkr *{tAFFB#*><Izw˓ZVfwyPa(`x|zV , ӔYj7}{~ B+Ny2!?:xАH{݉3SÓ4?Q"aT$Y ?$Ğ1JQ<;t̫pt#oic`Ls` VmiĘ񖏼MAYVQ7n"g ]ŘYϱU #k*)t\ Pk( qY[I4#hi6K䟃r?Dgb4_X 0T`EDra@iZjkDC(,.deOg^AE롟-_-7}͜;jDAv|[hʌ'j9Dw-831^ V^E𐛝 `MMKB/šJTY\z`^Φ54<8_ rqTNY\͗J X- <`#r(u1y;.Aoy;f_9Ņ`X 7!]G}_W{ J8p.n49}yR68 s⤮>oߟ߷Xu97ŪݑWR#!/ 9,&&sP?~Kr0xNc`4yy @*a yv:/|ƿwJ.SzvA %3j{YDuq7<3S@2EF%ϼV(o_x'r퇧A^՟]4LO&HwIOM#r z :1%K[t ¨W '†syj*p=&.!Qd%!%1F9|˘tyV&@۞E83Ԫ=UCHOj["֫}g/g\N bmܻ֓[erFh7oyD&  x޳3n#5܀|Nk-u(2^-$ݲ$aw)qkd|':SSҟH›|^nZx{1E:Y7Pʡ^m֢:G=$p'wB;{Gt7ne6!y'"iOi4NJE#,V*]F8x>o:$u 曏۸hO-^O3!K3GB }lq!9aa=[aQJIKf =jߑ-4aOy6BKd-FwTϥVz0 7hC\tHkߴOw=4I*\A{G3tm҄ Ul``{ārlk|%b7d׋)8iꘫo"V{- ߵ܆eb+\z} wj|ã6+봋?;N/3p U1Z&O|4ewa4U$)׮Vucݓp+y?Kpa5&hɂOԚ~'[qq:"RHD?cI*nyęԟC3Zyⰰd.#~n dsR*]三{3,<70ὶ~;"ɋ [o*1QNU3ARy<NR eU7Fog aBN)Vt˥@zV{厎#BW)ͯ?JHI2kȾ Kfۑ qaUp a=`Xk{&E)ɡqf TbڲP&N,(Q b1Y4T~3ꥌ%^ }ϴҬ8&^c\ T^w8 )hdTv/?b;r2QN .w 5sW0,LWr1n/X!Wq/+@oY5MZǮk?\}X*7q7y22niUoFతƇ~;w/ BCV":hT/IzmN EsQkGfר[ 2Pk<ٟ%+$JRyX%Gޜz[PŬSJm1rl%pz ʮDʡB]&}8FӵhY%K,tsѻKb}Upn3{'_TorDj-LK:x`Ǽ=b o-j"rO;8(X}T.DĬ/eҺ\䥴msXmW1 >}l!r ;@HOYByKleg7Mt]4 RuS8Z1B #C?'L!JK%B_2QU5ģkI[Q ^3O! Ӥ2= ߵTN 4+9"߾cY$ @*kqm2 =u nӉYu\T0ֺR5{emh{U;ϡ9[B:_uf|mEY/h"so -H#TѦdGf@IsFO^Bիa+6R?l.KCTdppbFZ)930j5_W(nbт J`_TxRM h<X{KW,T5Ém(A(rmܞVSO!cLmVWq7ZEEOTD| TUYs7tc@1$]:NW+yHlKf8U-+Mld>c䃨m=3 &3lQc"O z8$k}$rSh>*:9H)b,{ 9 sW0QyË ht_7 a붭K TK-|@}IERZLT*8c/+ʵU)ݟ~ٛa 2lXi3в_P[ꛍ=Z'Ư&ҦPutj,6C8`ơ8 Lt4jͬ-:E\^PNt2bfڬhiuX.lGHSWE<,6x/FH!y qMYĉWe4ͱޤACG1Uiͷ4@/O(d*Y^OA^A9X-B#X|wԟCs lNoi ASKqp[؞HX;5ލUuԌ^K&>aqVm# *jW|<(&jof0'Os3jg [l8)b#) ѾN(G=HVko)ߙUը4 iFT"!ID(a,~q%M_sFHZG&R]+z!QKd%ٚ0|m)ZkXHKGB3VԐ[y--CRT|tRqdjw;aK5p71xerP a)c.V=)]Ux@:p7:Bz>a4jNF x_ 1 A.“-New7H͏X_J\Jb:w/IT_2Hi[}*e#N2U_^@$JrV)ek";): OTț:dAFE"GHV\܋z##WRrU "fsl B0=r5\\bcЍcxNi7?TR4%tUƛim\MkXK*?=!57V$+R+JiTx[5,H] MdkhpǸ5lq1 UCN׶ vEBD"ȠL++?ߟM"_@Xu97ŪݑWR#!/ 9,&&sP?~Kr0OF`ŋ6sy S_Bb8焅!ggxf =I  lRhmthaw؝Zʄ)<,,k)=z[Gx.Z{+?TW.66=U X+=.] a,$z>LC`=յ3\Bb*W/~A}7LfI[)8<݇pKQ7 ư$Es@<㑝׉o:fWPSհaNRüfp p n(@PL<Pw lVzK䵉L Zc5[TgG  i:TPw%P$*Pc1֗ 9HATVC_t>Gd4< 8˽ yEGW]aB:l䰭4-d%;z[;n4 ϊ$]IRFVmFt+";ٴdQ a eTre]eHj\\2,Ƌ1iPf<H ? u6ĈXLUII2%qнN/y$g㽮_t[$-cHzwM*($P(ltFrurDK&ge{ؔY{lZ#Ь0f[xYɴI J˛'r%4KT*Cg?;fW(O:PRxp%M?Д@c\.\v)u͹)9XaO%4 vVdujTF;U;X)#uՂ>5X($\%F̮,ށφJ^=ł kbC%4_C_쀈Iz<7Panz  ?JHׇ|ؖ0"@;8Ð0Pp?βIlvZ,+ocNjP+H%%$!8Y ^.~! xk_dGTq /^s=. 8:ҿ=4!\[dOt<#w׊!4ai/Ȫ= Q'3 6%:}HAj^O]08i9bJNFSlm7HXº¹& gȺ.Ue>⻞ 9k+!YqFUU 2XyKA~ɯ8b2T!ړŇ ljd~I^OFWSTI1XKdY<"Cׇj8pAp&9d򑱹BD= jCwny g7_o''(R[tJAG3u%}EecQ)SDeP>Ԏ&%π3%B#2NїLaS~tbQeC1o\yÜ:\/i#VsKhqКws~DQ/gIV<Py ['c17'3bL(Iz+M"Ϫ.J,CS0-Du1EtA4rH{8=e ȹ@"J*:@v$7ULR}g+:fJ͙mb!&˧V7`$e~>w ̐,h12JzɥEW8 8shzILSs=4{g9,@NJ鳥y,NE*ªmr µ:8,MH4)={:%3|@lb[Y^(, qJ_gܔ zLI-궕 C zii# S]cG˼ }xcGAW_3΅ax|jpOGnļ)TLXOc EdןȤUXzFS'z؍Oм)Ϣk)5+ZWqƸ 2<}<Vg;VpmVW p ؀EfZ#O슲2U_^@$JrV ~:ZVFu~58>OKf L]&nꉘRei OUUD=Xǹ vb&+,iRrN=b( cѣz8)$Շz*H3pe֢RK*敃~;ɹ 9ڱs]oމԊRfs?D/j Y4 Y~i~g,īI'U;7[7Uz0*8E1ߟ_Xu97ŪݑWR#!/ 9,&&sP?~2zZdW6!H#D(BHҹ3PT QL:C@ec!/ @qK?3,] ;!+EFum;@w^ZzK i.GM]kY`#$$3:dE?Pfc XOnV$f=ߪ韩o'}udx.VAcW|r,5,ƨ&|QNScO[`t/qX-Kc%pI"#z5yAEl~G8"O|Yk|E_9NbI^YMq}TJm_s{XG {Pܚ{x) Ù viKĶin;8ǝi )WgX6<ZCer1K=P66gx4K7cIJ5beD#ۢ4@'#|r:"]O)(AFoJO2>Sq7 x~Qk0G "z7G}e~ HÒ7[n:^9پ|4-9yA`3Sb_]!ʒ9ڪ@YUmcRtUޝOW×Í$:ښ㵷o?sG<z47hLne +N "tJ1CPKjN.L/Jg&і[ߛmq1m x:)N& sOOI%]5.6-.'|עzafGNpk`*l*丮zE&i0(>Hg9"<ԯOf#C-JӼ3e.C{wSY9~&*=Y#Cy8z̈'ɮŗPt nNKƻYÍψifg،.ba_pTԶɘ(Y$Uw²6ܱ2Zm& Xv4Ť8\؎E!ȥ܂ M(KqmJ9liiTvHSF=^ƸoUQ+qO^Fi?f(Z]roc +v=)zn=n)vs >pQ3@/&ƅky6 ϼ~͙pn. .~r"M`-%,#h>8Z1B #p[-n/2*{Uy#7 >B! 3qbВksu3LԋnMwK>tSj`>NQ[0j-&ֺO\Lo8"R.8+nK0Xx n ,A 2E簜^дICԷ}rT25M/SLFptUXtUbuw>GWYJ$7K 0_JHpŞt] }[3a ʬ1npIRLޣJlXS y yO|pC*~y89-ԧ:k~"'~~_5'pn O+ )ď͐1 &6=1GbT'DwaQO| TUYs7tc@1$]:7MνRO]s2Z]ҽz6 DX/cx$Mf_.Fu*fs:+m(bEeG 8gP[ٖ6zucQQ^fM{/g+m-U+ RӋun0Do>?ނ5TY yhچ_3BCv,r $kM4K֙K%P%6/{m3.b=kH'fp4 H6_\6q 2G'q<+b(gRnFn8/NC-ס2q%dcO~ ԗ[0-hG;.%!OPH[Ʈ4~v%VBnbp>hQs /0 j@AbLG½uEW/MÅ>v7] \gKMa$,w_涆Arl#~y!Q͡f~EXx 2E)6ΊWnPD&2 +Mp0{ݨ׏Ư[1k^&A\T=Ւ&q2\&(5$ʽu@{ m*O0%D]Ow&1?8"9LFj~A&p_#(iUgu)~}Y+b^K+̵FU)M!6nՇt+6 7C$XOjzER-2ePy)v',j6$I[ j%2㣞sEj8|YKHJj8KaV^~ӽ&=Ë,xTH0U+Up'2sbK6nCH(i8YSTK=%#Pb_F?֨$l_})ٽy#,E=O 1dZžbߞOZ0ȝi@}`h*'F=ɏhD,"tHƨ=ֆNS(ERWet H HDUžBaܮNpIh9?pURx׃1?kQ70hg\=?Ǧ)!GLHA_29<~gJ|z,^Zd/aOgh*@!<^c[ˏU1jӂ*C5 \ `3zޚͷ@E!3*7/UItQGjC-@-Q,Ai-Î+ҏ܆e?^PR:A@+: hL\iVpE̋ (kʄ~ F/X mƱel>''P=^k%q@7dgcJU&lEGrAǥ,!0Џa%pjVB90rZ T+Bziw0;lK}qȂ5Pi"fˤ(N+UфTU l$ZB#NK'v-JN~T{Kmqq;E{;FoZ3&q_k%NQPGi4EJgnyuBt6҆lI+Ŋ3_(Y_DpcX 4,:H"XK%\rn GlErDm)#S !}q"rJo>%,xgZ6]ZiWSW?YZDI[Q_BH Y@o>S$Ϫt{@ @ A>ܲ<\i&WRE/  ƭ Etmv6?JépO? i(h"4"woH5zl2Ї6Kc8xHLѢ~}청[`;wge ZX+zˮx%w_s!GqƕG[ # !b0Y`3 ָJƧa_nO^(ƕB%~^e-.2IJoCai_OyB=MP] z ﱻ :\T|Ww/Ӵp0qR81| nfk}h:PݜAFd\Xbux&zFsDcl(6=#bo#P [@S&rHF*L7K|n!4PC庝>DD_o2B]8I4g<_읫\'^P`m&L?gVgN6ߜ-&p!Co?n?zfS 7t|5ZO?k= ? OяYmse4?7M %}*'cc Pgщ8j_7zlVz%3k,9,i+5U2I/YbkN(oDE ףּяYmse4?7M %}&I=^k?֌Mi UQ mW>rzԐAgQ~ :8` [LtRF$ $4gvj' xRL9`.x6rZ_vpc]4rY^[ngÃ?ȅ,Yb^ށu/L♊ /*,?Ľas_"ep8q p00w,⬚6X_:=>\cDB. 8%yЁclqRԩ. 8;/̺.iU.61;hAAYڏ8ţ6?Hv L8ezR|6ZM㤴?^y\rp'$v@5=;k 7+?9C @, Geķ,wjbybpv*$A ij[nzm5v: 6"78U^vClpƦ< Qeh븂L=f^]'m|Ad:Ig1Zg6=g&[kQpb7GO~A#CIeeIx쏡˽hCϸ)2{[wg.ȿB덦ٷA FQ&_Yfcl0#PfjAb Z$}[&53_lWq$X{\Z{d fp9CvX=.3MX7teQ@ze`5ؐn| g+][WeBS3% -{1$r5LD %~+ &0R(? TcHT*܎՛Ͱ# KC1;#GmO! ~,3O!Z2/+G1-EV2BTQ" 1ʓҔAvd5K˭' '}(?ztW7*tܫ}:N{TWXiء@{gU,Q(άMǝbl|WJt#Ld6C\Π"OSߗ2pNRx2[0^[<=+%wv"mlu}WD xKmT c_77á]ȠZ2O(X_RB\8\ux[^P eT;ZenEy{+A,AUP3 ,^e??X>]Vun.Zkr4PUD:ǗUe8=;/3Qtui* d `ԁKʕ^a( |` 1'$hpQF dz ,h !v > ŽSp4~"-'ʃ{J#cҝ/hZv(@+3IW5f3 C]?Q*XBn_R-Vv]kW>KUQA@Bc1PY8-Mcȇ/DLba45!C~q7ŐhjR]Y+*iy<cMkE{?c T=" xq+Ar@#8v#HXNZ ɾ V>\ _Ig3a-8o5Ŋ7J4fmcC#G eN~89$aPU['&~2I5M^L6-2$Aտzpp0P{lH1ې˨椽[oQ~,`#Y~Nÿ :3 #duGIz3jMu ^W#duGIz3jMux6GZxt}#6^^(ր^<#%sHͨe5׃۬H Qc.C2(72p7EY pH[_oUqyP]Zwߛe@jһ { "$=d{<~!37yr-~;4%kZ}!v0KyqgvÈh{뗍JfylgX4  MB֤H]8G^wc?z^Nݤ9 !ٯKVRO l 6D2,\۪jCJ[⃟1OrdH:8Y&J˃S?K>|=XO9} 9d+eqSܵ!̞G שSv~|*{s'Ar95ON!&C9%-l:iLP1tR)%otʂxL4u$6,|Y[2(gKDyVyB<(?Cӣ_b[G-Vh\,;4l)1bP%`X&l)1bP%XJ S{b K ׌=œ=3Ե /"nU,b3;?TmQ.lTl W4I^eVڒ;ZiWJD#Yd$bVyg|F k4Tm(oT&,)`?zM~Yn_mp[wĉV@i_|Z)߃eC*Ŭnip_A,Iy*^}⭤=1&ҝ䩐U@a F$S m!@Hv[7ٔwv - \I{b, DMpu@IqcrzԐAgQ~ :8` [LtRF$ $4gvj' xRL9`.x6rZ_vpc]4rY^[ngÃ?ȅ,Yb^ށu/L♊ /*,?Ľas_"ep8q p00w,⬚6X_:=>\cDB. 8%yЁclqRԩ. 8;ThLv鈅K+ 7qOnZ7El`HN4ٴ $spw`̃;6,7l=>x[xfwG[xWl:'|#z~v4خQcTI ac-.-2ָƋ55bxWVSl.J>N|@x7FĭoP |8ދA%d8%`DJqrt#ʴ  `KSd3x_ý9P):Y'.`dAֺqZ`q3or %̈4yr$k/X*k? q6  Aȃ4+ >6T3To|uGc>X-ź}.l5v1yv*CwY.-u+Lp}R k͢x1X[^!nA֐i~Lպù/ԢͷZ@٫͏iO34ODܖkg =tߒ"O1Ru -:oJv =]B`43 GCG0T"%@=*;T5mE$#QKQڞ'dB>qQ̌~E0*{*Pu+ (8wS+`RxTB610 A7TvF?O"|h^&%uqCk p"tdhv@$=a=|3O޺zI?:^Ű?#H>WY;G!Q䁡p$Kg05Ȭc-eCLA3/jb!Yq 9hXiB&BQ@ v3$R~Ch\){A˺zqo^ѭ ŽSp4~"-'ʃ{J#cҝ/hZv(@+3IW5f3 C]?Q*XBn_R-Vv]kW>KUQA@BMyL"m%pfKO؞"P9S:nXp[OuֵͬHEѨȬ xJO{ }ZeMfvx]m¬40ŢP, )Nnm#]_Ga!гl,C|;!۹09vՁsd=j4lݷ-ur#7#א"+'e70ߌ1ά`wbchra䀒\7D0}xk PGu,uv} T|N7yaCu\oxm}*d,eڣgg35x1Gc2THZhZ!!DsWRP&V44=WO)ƦG b%@Lx~[ɜE> leai5>>br0\^SMDJ1Ivu ^r<$<@%fƴJ\{hRxJ:vu`?S}S=+F8p71n)6er]#L_ M'JSeΥUN>=" xq+Ar@#8v#HXNZ ɾ Vay 3QTx6$Շ99zD^"<N 6ΎheY .[^=M#Y<+xݏhI/6ǚ,o},u0>B>OQLtʸ$%>_tlGкxG:K>PkULj΂w8^x9f2%-9xt}#6^ˁ n#%sHͨe5׃HmNZo"ڝvh?tezj@XG.0\?u4l8fNQTD:i D28xI`0œEJϾt^7/Jy屁x#TlE9VV([MڧC߰y7`*%b'g26OP.~lPC]7msr93V65pf6#vb-NYa_'=ήf\<<Փ,^>0dq5|:n>tqMzs>y@q8w6e=/ K&ہU;oz`+CvG ׫$"g'tͩ;6j$5b5Mw /N!&C9%-l:iLP1tR)%otʂxL4u$6,|Y[2(gKDyVyB<(?Cӣ_b[G-Vh\,;4l)1bP%`X&l)1bP%XJ S{b K ׌=œ=3f*d:X f&xF k]rgmEt2+N81y "w@ hTN +q凯NnACzƗ\kH(T.%>K6̰Oq3/Zņ*T6FJ"j2REW܊z3ʀ:_+QC7>vy+5#g/3,Z߮@G\j 53]5.UDC5_ _sm-'Ffćjқ][#n&oҵtov6?Lëᢟã< ]+?ᤀh"4fFOQׁ)3RfPtzٮr6kJ-ާNϾf(JRl<zyɪs:+& 婭sl70W`iArW -& R#+8YY P_Vm$3 4g_ʆ,,gdU|+}38L &(9Ƕ-g3m\I{b, DMpu@IqcM2"Y=3}{%)F=τzQO|B'LO~O0mwpc.g\:V;>FyDbYsvNXFe(SծG_ tln&OEb/rm>uǦTyTfV6-^j #Kej -zySRuhXGU:4rO?ko{q<(C=ȍnKTnE-m !AS+Rk6%~|v{{60e ӊ_6r n[WIf:DHt=}yq^(R[*(I/YbkN(kjĕQ mW>rzԐAgQ~ :8` [LtRF$ $4gvj' xRL9`.x6rZ_vpc]4rY^[ngÃ?ȅ,Yb^ށu/L♊ /*,?Ľas_"ep8q p00w,⬚6X_:=>\cDB. 8%yЁclqRԩ. 8;ThLv鈅K+ 7qOnZ7El`HN4ٴ $spw`̃;6¡XcC)aDzAd+o ںI]2g(Q^?N,晾VfW~\i9 Q RCSYZEgmFD";?m~iedah+ˬV)wF5cnj$Yㅱ7X`ϸ1eх@ nvT)319h*5!^zٸsĵ_U@Cq6!-w(gIcj.LD)ޱc_zMZfs36>NRoDFmJ7nizR71H&^(Ws%; e*X:C> q $%1wp8 [(@^%lI;Q mf!u *mE.?GD#jx SuGmdc#O%@nb+B^"U>>ڨ*4v@$!LoMȉ@/cx %寀8dF͂FcfAD<*!SHzýz*fu aQbgA.&A/\7xZjBJhy@yn?KTR+yO%~{67`!BVsЫT{uc@jNM ŽSp4~"-'ʃ{J#cҝ/hZv(@+3IW5f3 C]?Q*XBn_R-Vv]kW>KUQA@BMyL"m%pfKO؞"P9S:nXp[OuֵͬHEѨȬ xJO{ }ZeMfvx]m­xҝ΃ GR1#XQyRRPa L=;j]B%@BF_,'c֧\Rl]KGvSf:9Æ Nau$uMiM</burU$*:;?=E27 A[T4sO{z2S2Ǣ5 *Nv CʹM}naG Ll1)i;k̯}0AFd íWe?\^SMDJ1IvBi$ d' ,(JRZ1#ʜ8U}&&y𗅿`?S}Q#n1 R]OG$ްɨ>EG%s_04jRhqâ݋(ۅ-L"*s`{\^SMLHgTb'BC 5Z7gnŌdưmTΥUN>=" xq+Ar@#8v#HXNZ ɾ Vay 3QTx6$Շ9s5*!FYXS3jXEy((幯O[yԉAPKu(3ñi 0ߔ.l_~dsXlUȁz Rk! %o~U-OXB%#. yw'Q ]oBcFPFv/m篑e9dihM+1: Bb[͏>$]X>VgS~?r95aa6)*~ z Ox5{AȎr&#AɯVsi;M7u6'Ar95vN!&C9%-l:iLP1tR)%otʂxL4u$6,|Y[2(gKDyVyB<(?Cӣ_b[G-Vh\,;4l)1bP%`X&l)1bP%XJ S{b K ׌=œ=3f*d:X f&xF k]rgmEt2+N81y &H- T:trUï;"]郠Szs6yq<ޱU,MϬ\N/)`{@=?WH%rCȎPod~@#`5P$p`;!FCdHo!5ت_hdzA,օ(*Ućw^%/Mlqs^pղ֒\u?genSS$(bLN]4g)WbesWE fH;*JEh'֪o>KQ/{02vUVxO'V;reT "ZpԽQt_5WTD]A|qaGn23E$4 a`ʁ[| rNl$o1 wWk[[7xTubB;$PCPpw~*?=DHpY䥢.Ze\1x`aYk> bd(tӮ+Va#{ڟ6gN2Y򙝸A3f0+EfߢaN:*VYRo.je$p k@ACDoK 8İv-B}|P8{V2{q@q tS^:,mh;G&Wg0XWma ;} OFk^%ڇ#٥A;t̶$*s~E.f؈H2r!1r:^bowW/bG5L͞iJcmhyU9%P  5Y8;RR3/GW-~ ,{GF}9`H`cYew &6٭T/[ۘQw6!!` a_(=6PK UĎ3e"R%O.{8z*l $Z}-%#g_· ٯl^\i.fN"5S "Jea@%%i)mb ɟbƲɕ3T ޘ+u2Ơu3~1|pdaMt.E-_x| pb!X*IRl>g ҬT}="_3T`i2Rm3{$xXS'PhR܃~zdVHIt面b;ѩX'Wv!Ԁ;fY9M3}T ㅨzSE#@$ OXwX&n?F; -w8[LC u8"-81ޱ)Fp_5Q>ʺD G!rc A/se(w͓/3AV?W, 1dべdٚp@YNǢmO/ak\H%c5}}cezž?jD?|*W?85;|1mE0, &\_u?W[w<աIi)ɛ{ϙ:r Q(R 24Ϣo5c:.oҘjf_߆,칧+Yi59yQ@S 4 ү3ʖ}ܖ!@`e ;F$6XBiݝe9z" ? x4`VcAY,MfYJmWr8z+*SElv 'E$0߹goB`Ik ハj:MUssN̪i}jŵV`z!s$_z4Ό>M~oݍ_?߅1;/,A5VMA,{isIgYI9^2J2aLzSzlɨIoċ?H=DyԾӞJߝ}~v4vgȇ>Pܲ:sҼŽ(=rk$h5CI`HoQ&׬gýVhk˝*bqe^7<?ElrbJh/Yw\ "EX_9J"$*~oU#U9 f%;E( B&Vx4{ -GOsQ C}R .|#Y)g~]屙:C# ֊F8bI{d> AYEBC`X XrK]Qŝ{GFM R -|^è*z[Rݡ@0YAe~/qERj_gC"]I:$#^툻r罒l $)֤=8&_Q/wP2 hV;hA[=}ƴ50ġdKrd ,8Ϯf }? e*L1]iJTP*۹0j3p^?,Iz.*Vԗ͢ߝ~vdvQ=q%J4Bĵp9Cྜ D&eq_~WoZwt&eq'Rs%v Ժ3mZ M8g^vsDϝ S% DKc%/QG.|SLrc9:rڬsKVX<5KY[5ɰHǠ͖1nzyǕ8&k4 @;'7gac_hМaG~< 4'CRe]|APwKyjn,fe3׼MZq2Q媹7VF1{(*-`E \0k|Uw* wŝ\tR_ !\ 1ϊ> 2$ĵLbU-ȣWn6ٿXa>+gmgN,:&ik"\Heްk90&.AX^n-ci蕜YH 7k"ϛ.N=G[![Z-Ph|Vz=y@_Hst+6r:)]Y6gN U`+|s~J+OD?)8EgH/ߝ~vtv:8ĩ.&yVʦ[!1Mo ޼A/S"a=DVؓUh7А BeNqcӀTK17aZj 7&ɹCb"kt'|6`0 P4Db@3oS"KƉV$V6o8&eL+덓P[Qvot\ nJx,?ȅYS.̐:#$ax bSf5Qt*MtѭH,TK6=ּaa,A( <"XLtlZlيܥh0I+ `wC֦EZ[IL^)5cK&c i GD\tTmڛ ׁ}hgb?ufPtñ\'ͮ9:[tzODG}щf yg}ѧBeth"_Z-9GJ&jH;;Im,ss.橵Xxg8=}CGUЁ4Llo*:_nO2&-a\ 2f]=g~ +b^o՗-R6䀲OC'M6ڳܲ휳8"wv>Zڌ^ͷ*"ъ~K'.>mxPj/j15Gnژ?6 )DBNff+l&$ol = ޱn~  ˓#_e(y"t^ݏ$?EkwK*9OpJ$O|+#6!j)$|= (|y_/b[EqDD#[4ġkPaߟGWtdi*>}GdI x@TC 0:]%t23CKܻZcf$ud5-) e յbFh*^ZwZ3ȈPM._ }ETga}W5:rST*9e>n5|#X>Evv 7LBR0C{~ǐcuG„BBtEbKiqCgiFU9q 6p@HI/W(/&FK }A?OQAqܼ[d na>)+i8lf fOYӊQegHnz51E05g3ʾ:YHw(D+[V ÑŞَQeĽrZ+uB (Q κ͆WʗFowRߦ 5ꁠvx>K6dEc83H/d/h'#y.qz2wZ9ǝgd~ܽҬ蕨ނP?j.D55zaaI|O6¨Më D(g[\J |. vKhL'~YBkIE) jo-Ffyj{8[mqcՆM~ P&6-)c: _3%CgTF'i"gJ HDȷ\b R8SN EܹJ`cfpd Ѩ&}SV5iS.fO<ɠtA9SdtbYF $'V#pf+30>:L< FAA/jT`"L "ODRлTѐ9IiBsL0g2 @LpZ꛴|P'\`* TS5qzF .2[7,:7evxHro1Уk1m&"T}&b rSKįG4ǀF"I :E|Qj` ~: )z\ݯR4{n5߁Wic@UZ3gdM:0[S5WȤ?׳M$ywk/)ڔ#[:?ռ 8l]9&Jss##Ow_VŅsN" 1T؍a`CjYGc9)u y@cݲwb)?댧~_J_C2vYgXl獢j=o2XZ!CUp2Sj~~Hg[A?b}Hr!8CH!v_ P:2^έ \>QU8Մ׈)jmV}+N F\@;bJn?~Drڅ}*;, )o,qDeF%1P3VϮ?̃^Rɢ F罰ŵt 3g_vsѯ {<7jy xH;k_kLl|g]+UZ: C7=ýoD!qɍױ5 {1F6̞WDZ~zp<՜_y&-JŪ *5F$<85Ljݵ9b͢cGoXDҌ&IFh|o6t!e}0 c˼:[YFJHD3|0qv)%!xi2glɠԂ>5B^-&0ڿhbܺU}5~' -Gֵ]7TAO͑딏h4aX +PH1v &MoM]RbE.tR|GL-Ek!JBa\q\+L'4 P 3%<%4Xx+EyM ,@, <Ύu Agp2KslWO5߁X U%=p_V҉N|lDIMȤ!kw7VP,MG탛*f%(#swɵ./Xn=Ԓ_N.gVla j&9Jו}۾s&*;|dq|> *ibB䇢odUtP<(!E4x8UwR frp)̵6kNk ܅=Yۇ P9f5BfZB nqL$*\31~e$wJ@ܜ\ DhD`Ыp Kݜq?UgQ2r#`SMW?ij${Xцt&`hV)x z!_Cug1N9DW{}y DTKpKXoٵ8F$Ϯ}.sa58}U77O=sN.*WBa a[%_-ǰig*yk'ZT-73 X6)G434s#PP].m:FGNTY~T~ Sˈ'|߆<u*pŀWZ] X`XZ/J+G3[t#jC$+k -T1,Q| V ^\[_{׋/8G\à۠`#= o({!{h~Պ0 Ǯ-vZ}eD6AzETQ[3Q[R|]%C|e4'0 tͦ;;a QI-ti (F!ثM&}~_3{Еqw(}Ȥ!kw7VP,MG탛*tzc=ϝ`h Z 7)Dt;Z=r4 ^.+˼Ce-٢ VQ="$_#Bqyf ]Wj{,DLJͱ^qbQ<9GoƓM~5Ugά䌈ڧ\8T" }{{{K^O:q}<$WPoKRXk犆cHQҟr-U?O:ǫ&\ p#6+LBI=~°sB-96[PQûӢ ԡ{ TRHCI@Hng_~ ϧ $NYPAΔ {SS[j 쮹%4c4Cw,x"7zL_KINP. JެaI'EESUXU# OFcn];? 1m5LP;m 1/oNb:~1?:xАQV`5 *5- I*ܧxjc\;kYMT,92뢾@UE[" Ͳδu:q!t[sT89Hܡ0hN؝t/ _wرW/ lEuQi}"=+EF7fϿ- ;_1GTs]6]~nThʮ{MLI/ݐ>"h@VJ_կ7u,nV?Hn`,;E3l6]YnTUw;ݿ ۇXd ]NUNrضld?w|=وɢ/; B,jpECW_ɤrCzC1#fUmCur!&3" h$xsB+i jq]wed 1hz//pxŢO,+a~UcJCI/FQ_xS9gL':.'S^pu$EYmSC6UhlN~uvdqŗ&QN4Пp=a#W튴,y|^V¡փ3gojL<0][D=Ԙ6$ۇ+$]X8CwJOȷ H,SbO\q]3ZzQ4TB* ȣZd 69ϢP~IZeBS lOU siڣڟ~\ H=P14fW ϤWTC&<#R=dܨu ׸ IzO8hI_^Թ섌K5DM oNMdBsDyt畜O9Q˕)rp[5.r&'RC':0-"x֭V]8b[=r:RKcCD,fzL]h]&=\ڸ0ms$Nua ;ȄO}eQo[ j8~NseoZ5 BG856t蹛L٤ SRR0u4ZYx2A3[ە#|CZv**}M^yfGǀJMAphU$ia{xraNA=56+hi'9;3&? S+5d&z_~?x-[d9Lsϻ*ֈɮ^{.d5jONXIL^0SKr;"sp:m:~p*A3Tڲ4m=[(R ֭vs$ hK bu#[ţ^"|O;U t+J d׻W;s+ q"8^ȸV Xd>K]!"FM聴/[\(P$-<ޣK a?<// .drtDGUj*Y&K*"dVp 9_^}f&랝[ff p7r nK8P_U $@h$Da2cOB9K<3q{]vMZgqTn';M؇pFHd`njR Zc}GEL]E,=%ʷT FM 0 r +,nӅ#eɳÇ3?' Z#TV;ZJEX͑ eo%Ì[ה$ @s0B/M^NYU|˲s/.A΃!{4(!% Gc'=}4Kqmn 9DZuG.yD_=t.Ș4"$FOOF 4~w2rzPl?$ $)q+KʐQ]n"hGg|\9\9w !9}8z~='4wk%m QHk,,t8s4{IUc>&=S/aǺJRWNy01JE5V,A'L(rjD0l`w 9(v%ڔuut6p\/w6Ew4ąbhl\N<%p--iF$Srd G&uX8F=#DW-᥼,1Du~3\L&\({h+6Bs1G:^uE/ f馲=!go >j'rސzzғx'!qTxNÚehDfٷ2e,RPۭ!_fdY%9Df),WMY㜏?+KX@&Q)ӄ)h!#} n?Z7fNx=sM2d%8 yI#+C-iYa)'fʵP{gB6s۠%Rzl!\1h}ۗ:cô7>5XñdWtH1<+y |BBf7+cpN!vy#mhBn:z/l՞ ,M;PO?PABqCq̈́8Vs.){6k-򘱣ff ^[j3X@AnY5yc}F^J^Elfݢq XEb0K ?!CN)՝19xs+ hNJUao3ź(["h,^pG?^X * w1vYjBөRZF+/Bρ|,۾+Ru8o+#Dn)8c0!]dǼ;PϤM^ Bo!+ћ{n!ѝ>5Vju73*BqȽs=!,6[t|8 3EϬ G>7H -? 3~p$kgi6:柾'âOkઓ9|.xA,d sehGœzr߯%q'F(}9sψQ;4x繺 Dޢ14% ,+ytC>F\;՜(>^R ,q=PSʹj/fHsL&?xR壩f\`{PJqp_O;nVZPe8\ "`N}H;ђAOq 2@[ +K|5j9]F솀jU1EKh@Y~]cjY UVӭ2]T_gF s<ҕ獑3@,]NU.[*!-t%c Ms /m$:eun]آ5OX׵ht!"_[kfiY&0b#\=ؼ!_SЗ!@>7)* 4~Cib4,LyQV NbSS\5W{!~ SmWAuNu8R!12*yn F~DAC$äD}t9J. - H2a$& __^ =jg^c ᰐ2(dDmw#>Bg~bJ˼AVj]<c8~ߍʼn)1{y4]49V2U 0i Ć؜{>ͣcI IB[cMs49Z&1=lv- rOc(7 F?:Z0SRb6$,#eXк='I y:I4Yo֭ Q%|'$] l3}^Z6zDzgJ婖\ ~ tPg2:LV'Wߟ-߷ fap6mS=1.h֦*ʭيK> lF B`..zc9P,*z zyS:?ӯmZuRu$ٕq4 5d700lNu|aS&SPd*D!`I10S/`XT9b置Y քJ#u:§\=3ty|[ 26Odv# 8d4 r-Z0 ~B.9?P_#ቛZx!x_Kib0LI:n5}((Ma]udQ4;g~H!̼xc:Su3Q 8oL(l:w7S i'(r!xؾ&Z&õ[})uD9!gg##^&5Q%܆ ::=jFPgߪ^5;OV/!c649_)i=\ubZrªo,>U5c&m7]K)s'q ! =4셸sdEUH.4rd؏f ' gƒo7ۃNpqCG&]k'z5GiŦh4=hz +5^'3[*uH|:[^F`zkrE4(sѮ`M x0Q_%pl>R6g\Hs #DB_ʭ xb!F < 84&YuQY(%:?7%ȗtM1SɺA8L# LBrux,ř">CgGr@efFN e!8tP4ܔpxǑۈG bfgSAO~0 -R0N{HW)y^-b B \H&E0^>Oӝ;] miSaq`SlMj-KU"׃h([ 潋o62D[xe_vvDd BZ S/b&&-QMϦ;ڜXaD1Qe/OfXCx7ǵU1dgTH4O%.KƜr^^!LoԼsMe?C'3!JdNQ]""nj,zGo764 aOg|ttzE(ǝp#^w3RDͣ8_sB{3wBMI6CQ. < oyܦt'ry}ZGYg&:4,2=Aߘ94i9~_k4 ;]t4PE굥ͭ#cvpWޟw4զ?`-jK2Q&S C |ecTD#y[+t!;{ o^RvDviந?2Fø'cENZ&䯶ۭ!(ўǘddO[ằـ5*:hOxqSÕA2Y !ƞ£#UgiG#1 $ɘ]* !dNdwͶ{XH WEʎoz_9`Mk߱hB8limG],rXKIt'/r)Ÿ AQ}=FN%y@lI6"&CvHx/U#HPΆ.=Es-=N5 +geWh.bnj:d ZMvz$v .CfS`Ė85, ҩ\(oBì[ 0A+uP6t>szrMD?YuD1vALWPIesDzHBt %8Di :7M7Q)5eZ:t.~Î&* y7?NH+RK։!>S5ZF5jF%hj7ΫF1;X[̽8^Qs%Y7FlUakeMfs:9K(cW?5*+*#"xZ5|jRKrD:˜}1k$lĞ rސzzғt@R= ؊x8JEڳ| ]jW<[ R$zrgT(a]s ٱP=JvL+ A H"=9*@%O8z9dPBY]==K%.ȲG:qN4Js7B }<;-{`Мa)Ѵtz#',@Yh&wdR` Ul 8A,OTgZ3ǚ-2,?B %j@/iKG@:O/ + >o_A{Ms;fqqiB Is =ai(r8FP :)#וAd FY3 j!6MQ ߝާKx'Lg.:ow2 __2/_j?6%1q&5Or  vfWk *tQd?}4A2ŎTVv@m:[,@+nFVۓnA[ ~)9=4Xӱ\x1M.ۮ3ȗjϩR矧xrcpݡj@aY 76bllD_q* gMLn0.gsX`@&`n,ϻ-kJϨPSϞ܂"Wd!vxV 1*_2'n3,Oab Jؾ_zl|)1ׂ 4.}߄p0#k)ۉڜvQ@H9';ر쮠fWa|oBBj#opVQKe⮎UX)4(; J $̭]pLɑG)>ipͲWIxvG\;b6 .p~ZkK_V'_ZV~I2>QJvوn4 ǘriD"'n'Q SusLD5Jy{g4" _,­G30jLy 1H"VL#7JhMJuN߿ỷ`Rt7EfG8 ?"v,۷Q|"MM' Iws|倻4"!TVN{ TXy hþlM49L#_-h󾐔 /A{8B"#hr\j 6 lF"av REF{pAandk轪E/{Yd8mʧrjy𠡿 +T}?k FF5j=N߂ !KNHF)&8l!(s3@uZܑI30Ҋ~^h`SrPt/L B%$1όPbt;ɽ1 1s2w\kov=嗐(Fj ?v<³}?D)LAd[ 2eV% ӱ%QBƠtʝX̲nd?6JfN Ο څٻmY@~פ K|/}-*mm5]Uqt@ /a"M@YL'AlE6h;]::i9 Zf%/o˛+v$~ww_lWs F$.'p; xCX^$ Jpfa/cSWnf?U X~/u}pB:M,Rv_z$~5UZ,,GjysՓaMٸ Fa1[9͵*F÷12\`kOsJs(res@bl:4@wz9C)( ~bJ#-t3‡5ԮlĞF*zA:#JN{`~ujG3ǕH_!?F_w8URV4S]bɄ,騉Fd{ŸdH'}J@39.$4~Tw,Ush=r䱹<.UdTnuEkZx]ᮦ(?P.3@t? @hfAg[?/ ]M DpƠ_`fLVl[rf"a 7Ơ#2jIb$Oq J"QNPQ,s \.lz@S<ꬣB~ B{PG7cG{Zֻͣ_{3`T׳&-@Xmm 0X%J8Z:ѫ n*B¬黟oG0?PlA;t7 3-ЖteB5:h*w2ۯ >Cqd [~D i#iռ(.+[^=-k_qw}P3|Hnm:i%a* Rܮ]3t/] j̉6ziiH~h)n~OX9o75'e쟮 bH/Wgt/W!`i4+0g}/y! _=P?͵*TN]R±{06`ٚ$-tZ |"fI&JI6] \VM%\!Zzp)dW˚ƬO#9EWmν$k76W.㬱Xl E 纔kBLWOW'4z%]Ci 2T+ n8iR9 . ﳁǎ@wY'qGޔL94WN299`?A||a . .aL9혂rpk);u^x<|RO[,O x6`Lvr}p]KmfIiG6;wf-┥ŋ_rfZqu&Kϐ`ȝD|/Tً`QaL=M+AKr+o7?Ocn]BuEÔCNNDŽHANOeqVe6e"˴2]x`%|)֔XaHj%q(Qy#!<]@7Og^;aO^74Ig%L>+3\à g5۴qLwD("mp  p)w=]i[{/-h,2gข:,-%5 k]ChHuQK^`ћ Xj6h/.ͷwZAn=|2BLVHAUBe6e{J'X(l;rbȣ-+{0 -ߦoqfik![VҐpׁ:|qku,̀u׆IZ0 @G˔bb35BrFIF$ p_=HxZ4v󺒖9[UzZs cme}kDSPlAJ Mu{+5zZ֜ϡ?ߞO`P HK=^%uq)F_i]h"u4e`XӴ"}lcLL q"ngH|=< ƭ#Z̫S)*l%ichҒY@wq\9ف*I6Pԥg,ȳ,W(NM˜GPwQĿ<=mi6 ]TO99WS)bM0`^s=6B2CPɄ9ӥkfU}EV"g{AU3zpW=`8 É`;an/%*,[Hh_+|=r,8#M4D fQ:e ~_Z5,r_TgڡAL֙gz۹rxD ZWp6` V#ƷfAP!~o+ZzSQodZWK9U~$ͭ"+hJZ5Ip5]kn|.gTzh2#,Ri'jeϽ,k5!.As(ܫQSGB Pa"L%v1:^,|.ʗz$ Tx/xs7õ=+-uE$$B+u'@nkD X|0ԙ_ru2Cy#FæUE~ (vx" vmzt!/0{6UVf[ƍeQ-7m,3_jy ل֘<Y#-@١92'ݏ SÌ00+x'b+T +_+@G4)QEnUJQTk}p WNw iz>V|s!^x!Qoe%$$4ri*mZN+LmBi-J)6*)3bJ;z0OrWin#Xh?ʃ`$}Z7>2_2:U j :I5whyaX7٨YiJgX=8ݧ}셯5!mH@e}a!TsLUw &N29̱bK};!R?x6!6s,OMMaES)@2mH#5~єZHd?G~XN UxAH4O@IZ&O[?<ť 9DّG&D-صv՘/_GxŌ%lcSR]V C\7.)=K?tYs+j6@ώ^Lv6R<#:,E7Sqɘ'm Ü ;3Po0fF9Z_< cȎTݒ!( 8w*L͒v($ sbݐ, d+Dzkc,%4[Nt 9H@5P՞YD|k/&B?iS[ ,N8FruHKUPFl(RTbMt VXwV5,>LOQ&v6lԡOΡnom;. \)pO Xh8"8, 186Ih\2FNQii2 $.c;YYrVHJMwu)JA˺u, AF|ѭ!e D˻BC/3g[|:Ҏ֕f쌈hKJI[6@;#A`$DYܣ؈1eW]Kg;A=ܳ0cffplzn~vy{\>\>OBh)Oo9?6͖}C@Vql|*ydI*= sYBUʊp[~gQo&1p[y@dPԜ[DrA: ؝N̳wr?pXܹ&c57pÁa\ kXA靴\BnIG!7OWո$pr5+~5l'{Dᥜ$o#Rx$Jf{^9>;Dmr<b)#K &{jsJÑ |"gh G?}GUlxNv?JXy9=e#5_tY؝DfO4[9 C'9SOl S{6b~]v:Y,4\Iø-vNTdn,%ؚi&shP&Yi6M!'jN"aB 9e {4 ۭ@g+`ٗfh%A GjTХ4N9i<`']n\BnXu=]}FMBțUc01ح@eά k!w>% ީx\"5 ähV3&G5cH;ܴ(,\WE¡&ntb(BxjH91ԠMm%@];"= ZtGeSѴ3oT3}{T3^E9s Ah-$0X~+̃썖 o|Lͬs *>'/[&/uoE`@ϬVs(8[?Ӣ7LğH5}HXs}J QҀ$)iQ .TϰSoiY'}e)uz`sDN{Ig4܎&3$p)*K)+d84vmb]jxly#l, ,:7' 1K\|Nj_h;jQfyŴ`i]"rh93=2,IB!E *IC?nt9$B(*DLDz{ Fu !rtm7>(Vehb$h~9MTCHVP?S [8E E+wՈB3dm114I$Pt4PB.WakNq+e%L6jtw}NϻH3 %M.rJduIѿ=~ͩEH$+5~)NXI0-8`Ջ[*޽&V++GQByҐ|UNŝx?0jd x0{8+1] L؁#ƿs'0+&3(tپO K!?^²4?˝CNPؙ܄|.u?Y;>wTٚ1$~҃`iCįvI*j{HH:}z Dtu ^'2e̫ihUM6JfE%s1Ͱޓ.X'(/sD=B NCəD\8Ʌz`z<퓟!>^0iJɌ.y; T(U盟9_՝>@g(Hqs@&-}a/ߚR4`w AH9`J) Ni-nԖSyAc8:X6 *oˏ-١moS}znP3cdPK/ܸGMtrC&Qr$chku>fgD-߰ƏIjϸncYC*]_hAuc8۬͠/Pς49w9}>_\S3Z?[Q8_Eͥ.Q&VsB LW,3ϊnݜ81gy>5`TBs-9 iX-٧P(`.C X7l"ԍ>E?Sԅ]$N PS ;z+$b_#pD?7] zGO}뛯Zo4%$^QNt CO4ιcԗND*,U\M|&E+x4򚡕$B>52_333334,3|qWb#S9~jg:o1]S)^R<-G_^צm7+߂ '7R› AOlu *X|#;2bQ|g<@Ȭ9s9n@b#tSldz8HKL0GӾ `ތ,ѡLFD%q?P+ j#NG>-;W4@P9s9s;jǶ| /Solߐ^8\lqfUU؁xvaڱcպA&=ٗ^~%WuYd]uUZ\#؅\ڀdfSTfᯔ7 wI'ᩊ6%.~H#\ᢺ)l邜!Ki %ci?!75zH触yR?'v"0%3Q)\0}íABҢlQ.{6g -+I֟6W L<'68D%lXPk zYtJLBauRp98g~w T-)]An˸=%QqjS4qg՗s' ~K~EGO`|e"5)&"4Ŵƿlp'rpNYdYIvJLރM4rʐ.+0%/ri +XUn\SciVZL8ovdLBg3wYl-(w4\ɴp4gڱ'|UN# q$\v"?K\Bsr'bp$}HT ohR9dxDӿO9"!Xo5%ϸ,{idsUA'RgujRGG~ȼT_Hk~nŦlOZm>i}H`L-~v)y}xqSrIځڶq+HNJo k7T`lQ(?8\8QyEHj !ad $==S&]RgčN)WE0 ikDL+^ezz*&^U_⊣(w|fߥAPkO^d$_Pe hfeH([\"M$)TArpv.N>+](ܞ?L$Jy d:T, fRS[Ⲋ&(|p o3Ax5o?{uLݑd&^t(cC tnJ)vUxTAZWNm RB-ݙhfo~rbNG~;'F=\lŠq{N O]XÚB+7ϣO*d>|x꥖Wx^WΔ;3Y nb]wG<4TQ 2HG9=T_ Gg Te}xSWqCU$סoS%lsl*p qi&h7w#޲ޕGf5QN}9k1UcW4Bg0~c< [D{F,#y:b@ɵRpmq1jPPwz6l4rg?}${B,tp-@Zkz$('Zpjṕp.&2~Z>Z0ef[飁]{eS9igXh3P/V2UYMY.zog#;xte"Pa@}4|0 T"P@U";. 7UDx.Y8M9!{ͧQNz%Bj-p]$o }{C T1zcMY%_Ar(8 _]Xj:|tDwn@ȻkJ7}/Q1ue-d7)Y3A–SsJ5$ӢwT*ZO2j'sR4Yb(˶rK,a@r9y"ȅ$<)`X$et?Zs*NA0,dEbvT^C,pi?Әv[TT[_3hi| (0a \a{&z~>eT6ů9Pӄ;>l^'ѣoR(*Qot`TQ(C۾h=PQLPe.(Rb+1Hݛ<Qv9 kFyT:ĭ!Ş5PSfh!%6jWgPOʼjjGTe.Fwu,|.uOTlP/zDm!'\05@T鶪szxDU*~9Jl B@@ ygcU8&}x:)o:7Cꆟu!Pu6XP}+R?$C&A ;롔@:cڀ&D+[=9e_?~w~mz?rb?Mĭ?;bф~A[?2]zu5Y؞  :yDlG!JA7 =*=R pQ<$w&~MUڧR@_S#;G%e%)jZo#iP.™MzR<߼#;- Ng>݇˄\gϺkkhΠ%P3ѮdߢGc3}4c0d FfCFe XnόHH#z>38X8kSubgI ]"gU%j1Q?'Xs1J9A Ɂ1J._%M9.=_k/4M_͘*<_sOvU3jzv` PT6Vش<[Y H@/@vQ.1[ f[97Bҟ^YKIg:YKih-'q:}$q lfGKj,>5qC!XUlB=FGk?ZyG곺fZ+O:wW8Ŝs'YF@?Df1ڜϩ;R >o:\IԺ6Bp1WIجϻ q%WFM"؝JBzCJE=G#-V b_"q m]uS뮼yJ<f:,&n,0̧>{f+` ٔ˭ψ 7{&,9˵lvv(5BSSp}fcY. Z-֯/k ԉA ?)=u#/6͖}O 0bL$]4& b&]wȄ9 {w&&7V~L͑"Y?pG!:#;Qupc_k5[o`itQʭ|̻A;kn&h܉-W${g^k8NJqsrlТܤ/+e_ ב8P7 N_yP< uĨnCaV̾.H?Q}FdI+ߚd2\d~*D6~ 4 M`;X?"ŨBDN{ "d{(@> 3Pq)j$r _2`#5Т #+ʃC;֊aDb1y^Sܷv@0ynv3U5@AP&Yi6M!'jN"aB 9e {4 ۭ@g+`ٗfh%A GjTХ4N9i<`']n\BnXu=]}FMBțUc01ح@eά k!w>% ީx\"5 ähV3&G5 Z _JưFؾi_[ćErL8 R"o&YB~ǃaMtv.~qH=M{Ɗ!#"/pp@CQl-B[TÁ4\@%(1yHG/yx #cā|_s@ HLtS $ލPFA}]j0zoZ7@^k?,y,S!َYX̓̔uA{9'ٮ+A~uT{y{4s j?AkM(DzB̉B7?G EWR<ţBGkz~ '}z6:;LJozF>tqPݓVoلBq#=7 & Lfj2m{@#&!oX_< 3ނ':=9UK a8{&0?]}Zfvc#uU!r 164;'P 󎿹ibEޖY`]-[ciŬ5OwF`e0TaOb{1j| l0 SS(N9PPDD=5"% Y3%:MYc'ASlyqJ^jҔf外11 +I.EJТoc^s4`z.fia:ۭ(Ք0T7!ZБm.稩U?|A]<=vP|5qT658 W~)jȁP艥g7;Ѣ]hTAؐĎsQ"(/TH; 9$7h~Pz)q3j?ӘcRm/Q6yr "k :^镅ZpdlD&kr_esy6*٩?5ïs^|qHFiD#rx3$A8E*ݶU<9$B,1-=4 j8ǰ)Sanla5fh悓HLt4?\AN{"Dt4w|3{z7W}|#c(4lEqZm&ܒI.L:Bx%'o=@Sw%С&Cm ^$"{jfV= W@A(DuRPpN!b_{X_D%/0-Jr)uOkI╶%z#Cs,Q8߶tƨu$θ,[(^L9.̹,9!֧jU@27| wrR:g0ބlqSe3 >M< t&8@(ԍVg!-Y1C9W& ecx;O7kpG,R\|Km:vZXCiU@m# k4%4/r[Z>JɌ.y; T(U盟9_՝>@g(Hqs@&-}a/ߚR4`w AH9`J) Ni-nԖSyAc8:X6 *oˏ-١moS}znP3cdPK/ܸGMtrC&Qr$chku>fgD-߰ƏIjϸncYC*]_hAuc8۬͠/Pς4R~ Ad*D Vϑ 0򀏽؆?LT8ߝto(i;pgeڹXo״|Y 7u޲u-TJ߹Ҙأ(t{_] gl&$F ]*v`f/A5S&M"Q#R h1ʵb/m_VKA*5ޣ򍛧|%R.f ҾzM-MU7fMZhewDZ OܦY(vPSjo&-KLS7n* 6ndY'k0+c#)>JPT,I\8 _h. -0{V8?Dplq3: 1@-ZUTMµM[j^*/ꠌԴVR%:ܨ%;NAl@NšyPDl 7!=wvЯ`V~HF0͟@VYL6.U6vbɽ&"fGi $!/=vXlI͑u![[-FQ;GD`@-pV |dfffffhYݝ tf i:I$sU)6z< G@)4JKM WIZ;l[oU?_1lքuhaKU4Zy~W?N n5i_"!i+)9s9uG( D(zD Rk52fY̅uzv@ilJEuSrt+"RNRJu߯c`7ГXIkf:N;Xk6wKZ?E3 X{EUМ',:Iv +JAywwl tҳrs+oɽ#wՈH&i6I|ȍE&#ZQi+S!/akzveǤRZ9M] 6n*ȟ"m]v5ǻKp~СX;2fvbq&Y]R3^6g*@VXwGќ +/bvovc^4h`к_H#nx'lK3 "O⃯˰ }:?iLZ :e}@k)>]Sm00mS& nDw+D+kU(0N?BYgֿ-uˆȿ@!j,덧U!a3-~vX;Ѻ-R?=tW$ltZT[kE'r#ܑ"[^֞: QWLu+`P5]iIoui:oX)::~ub =~w'77nUN4?A:xKg04{m~}IyͮERAwM1؀sJTߘ^3$Fuq@^^_ީU9>Aq*MCXǸ^Xߗ E8fȄA J>! !yK?F]lE< [Q{.aQߣsD S†̯wF4A(jv}Ub(C]i"ajn8W,}pkB﹜^n pR|4v;ard-40E*+ÑTBScSf:7l=vL<=nRpx(ttƓ{l5uuJi+o|.?pI%jҸw.6BzuaBB, R줯XQ>Ap9tu,5K@<% ~vNCt@*TYE_i"X+sOi%Vpy (妉z`h>y&}[(jPV9_[}'% va(e|Nl#X$}ƯTSgTRңMr;Rh84J2=@cQ<"8'ƌ^AOi 3Eu,>,>(K21FqמᆕHv^Tڭt5=F'-]X}p !p.&2~Z>Z0ef[飁]{eS9igXh3P/V2UYMY.zog#;xte"Pa@}4|0 T"P@U";. 7UDx.Y8M9!{ͧQNz%Bj-p]$o }{C T1zcMY%_Ar(8 _]Xj:|tDwn@ȻkJ7}/Q1ue-d7)Y3A–SsJ5$ӢwT*ZO2j'sR4Yb(˶rK,a@r9y"ȅ$<)`X$et?Zs*NA( 8fr?C2&54F!*b9LNLa];?W_Ϲ3niK< _p%}9ؑ|EyB鋑)#N[DnE E "נ"Y[RWմ)9YJ1,:]@ۆ)7U3ĺxeasMNbanUNGCz>?8&IOozlP1U1ʬCU{H{ 9ܓTmYv}ʥ/N:4$%s}"`bnH6tFuS|/3da5G;s-YGƺn(rd+D .']֠b zL8Jq`u?mw 7]aրS{` IԩZThA5Qťj"d/]vJMx3:%%ݛ khY㰫)*-a$A:Bq7u)6ؔ!<DZ6~R[/3^ɠftEpgږ .ME&YND+D:ѣ7Pƺ9o֗wA0:i|8@xߗ FK T$ h|\,pj( g4;?3DM'c6%|l Rl{=(wI2h)"tqhTbɠlJnN45&J4}߀4{98F6rp`Dh!P&Yi6M!'jN"aB 9e {4 ۭ@g+`ٗfh%A GjTХ4N9i<`']n\BnXu=]}FMBțUc01ح@eά k!w>% ީx\"5 ähV3&G5՚9e^ lq&~2+YFܝ7Ü#$]"d9mW*">/-Y&L=7v`^:!83N4&L(KjF?_AkM(DzB̉B7?G EWR<ţBGkz~ '}z6:;LJozF>tqPݓVoلBq#=7 & Lfj2m{@#&!oX_NLB=a'o0ڹgEM]`vo9+YXn™Lտ"ІkaН% -~?}b*)( VpR|K_1HT]DVHE ;[Р=%i$<*BQzJǷ]"@.~ /PD0g$ȨjIP͔mLr>Dv|`4VW:|A1kE,x{kblk/jpEW h6?d*c.lԨyne ;_JQ!0s0NjJ^7גI$I$14@YrYHf>;250ч*T=lh6ᓙ~ͷ &ĊN j8gq' 1K\|Nj_F# k*!UfZ1JMXɓy"znH6mj0O#FvImLe7s1!`'POm,͛m LTM"1Hr9r9H~^`Va-IVyo Yd.WB OU@ kbɻrI$&}Tؖ.~hCŦKCmLn65HEyjfV= W@A(DuRPpN!b_{X_D%/0-Jr)uOt탖Mqa !9ѱ 4h&Hc;@W.(|EmQ?>q8HJH8Y5TU~gJ$7ClYq1wTt"Nj}"Mt~ V bӧp'נ=Sbq cRnWyUTQ !qz~颡Ema ߜQ?`*~3?&(\r͖L>Ї`)$}HaCR7VԈAf soHђt1Gz@GQ`/K_*50! 5vSm6 /cj@um'5>-xf $bOyˡĪ;b(nGM|JɌ.y; T(U盟9_՝>@g(Hqs@&-}a/ߚR4`w AH9`J) Ni-nԖSyAc8:X6 *oˏ-١moS}znP3cdPK/ܸGMtrC&Qr$chku>fgD-߰ƏIjϸncYC*]_hAuc8۬͠/Pς4Rw;.Unp}c#W7FhU0zd{tuExkST$Of|7+c`3

9FTp0LcH`r!FTtV:iH]E)\(1ҜCiH,.̚DT;bra=% Kwq\(e$0 }e=xt+L>hr6f`\abϕȝ(HAN;nV!^Y9BQ;.ATXh=Z)'UUUUUR^w-[h))BiW86\!Owr+^ vA6"ڒPbUGwnz$_}C["qN<*Jf.Iꅠ1#d7_L 9dc ;T-r3#?<$krSMw s(Xfm |)#hT./ަTĔǒ ~%v=YbL'PPa?3_(sVN̽م򝘣\IWhTn3̀QٓI ̄ef H q@8X5S5UH~\ɢMQH jiR|$aIļ8ȗoDoi^ʒG,b?e_n6%^6̺#MG?F"'w`tsz)D]#w! 5>T581cl$-C bϻA~e_R?-~vX;Ѻ-R?=tW$ltZT[ie[L ieaK6yͼ!P~ؾaGM:nа?%#ϾNMpTf-c")ib,ҫƔs蔼YG3e0z+fBKmkpZ@a*?fR"7|Ei&vdIpXT]ҳ&39ɸ'I5ViaPNQ~b6D*oUD-zΎ[޸@;#.b07Mq}Լ v jo&3%CJB.I>6KIy"!W֮:f(!0LuN36z@Ъ8<Ȃ%X:e*Zv0ˣ!*MW6#\侯㧑{R˜k PYaj3(H؆'"+0Z7D8 &hzil짷$bi.u 1 Rw8"83T *kf!]?M4gbh{,ʕY3{BKΠ b7}kڅ\LҜ0+ZbR!}ƄtSQ;"11aPhxqاeƞ-k9v_ּ sk~r"9:iQo ΀4qF:m܆A69;ƝA7Zs,5laxP7!ۿZ" *~p'Nmp.&2~Z>Z0ef[飁]{eS9igXh3P/V2UYMY.zog#;xte"Pa@}4|0 T"P@U";. 7UDx.Y8M9!{ͧQNz%Bj-p]$o }{C T1zcMY%_Ar(8 _]Xj:|tDwn@ȻkJ7}/Q1ue-d7)Y3A–SsJ5$ӢwT*ZO2j'sR4Yb(˶rK,a@r9y"ȅ$<)`X$et?Zs.`|MhQ&Lvh.@% TRx琋^ܾkX^+@,`V jli"Ѽڶ44$奀0*G,0/#ءڪthJe>FS f2!5|7aKIފq"m?Mʟ|;ժ6-DX]w;kh|.npkX|J^ NoCQ+b;'ŬL?8.ȝ2 nd .SaQ||SfR>.unl.83fF 36lmK4= &tXyATl]%nH!+Z:aѢ#mhv #PisKw)3^iS,\Ŕj{`{M T)3镱V mz1Al6 kgАN1HZcg$5^B)WV]/n {|ƒ 6Hc0.!̐w lZtWs(\J2l'@\\`liH58WLυb6I@b6ixBi[z^lN55Br 8f݊V8{;Vw3% ϬO '=6qCc eNI@Ď'bypt cVHp Uӌ+%e^^9kIQ&CT z^äʬZG _PCࣁH/͉>۵ʲڦZ5.rt?b>g8٢51H+;5S_Gſ}|׫Τ YI r4;H 9]{JN]>W(^8"cTp͞Le z&zed"j T'0#/v@1L;ZKˤPӟ7+ GN) ־viP |sYAq<̾Ŧ'Kr\GA9Gx#;ӬQ#TD>a/|8V d!D"IQr4 l $ʿ&>cٵs݁WwB|:PU0&V'|rp}i[AP}yE##!zRrrRoVZ-oL-nPiAFػ*\ Iw` 3Y»3 N(<-v˳'ˑBُ_cŸPT,RcQZ; g6Hͻvjz/m6/QR1KE i3 MYo _&o"**p#56'k\&@>Bǟv ٳ '6VX3_yAb9o= 5KFw̻=p$Ul̀fLFmDI z?F; "{꿄aw)q6MD=; ~dw)K%soײe/@j[ו vkuZ:uiHYE}RH`={B]7zvp&b"'t+Lc/C"ǕbI\SJ2>_35R*,oN_3debbW^'}PDOet)oK ?t%u@ .pЄz!bck+ :RDԊ"IIPl7389VL*i鰹='j#vT8gaڏhf()cnxH=\=2ivxZ9-ǒQ;M{3Ҳ[ٷAcңmW $+Gq4_2-g/{߆_ǿCAg?h4[ 'mܟ?G6,5 BA}@Sºx3LA_:G%'x6L5MLq ۿiiCR< [hw'Ti V51Qz (7 _|dC7gŃ|dC7fPȋC \>Ƅݹ4Q-0e##-n5jC^)i (b\Z7ȸ=4$kR ba.߮ ր"^>*1 8tG@)Wc? ۻ9΅P~EӹW?27Ŧ30|j$oFX1&Xf⌱zbMi;*/K>RUgIL ʴ9n\c7k_2mV|yXQ][rpm O,(%g: n82>wX²?F56'ôAq//,.0u_3[qMz۴MPM7efj'볰Gsq(E+q; w7|Xvsz-DvvHn4%?*+Xs$?~CO,;^s욭 Ҟ̳sGy.XNwׁPjD]5$Y).Z'ߍb"+nG#KЏdnUOڏ`ꅚbk,\uP%ݏyOKPRuȘ}WtfBXֺ̄wF wFk%o}`?Jst¸+S9-sʑJ6u%lN|I+O=KREJ};_kT)(hS -d?X0V\$ )x"M%ڄE1 (mUTIh vBf-$LHg '3x!r" E2 H$!T5=]$z71c oeOV }Qzl!pjʃ&v8{A/UaEHaf!Uu7uT^x%ںrsɝNp1#OV }Qzl!pjʃ&v8{?+4 5&򢂠a2?}ei!& WFp{D O@926QA;.Emm flҋW9si=%Ld$tw13sW- oIFRj:I|?x쁃22V$Og>FHd ;}xdd<v@+{0SHɮq+eXX[Vy-S̸#,v9%0Ju٨}/54CT/99Yf6n{ŒӁD̴7|`REDe!nФs֒K{q̫WNsL(I.Y a(!,pƸW.z ;R 9 uS uŃJܦWΙs^tj9\}Q,@!in:Zrw@ԧ/u)6Tv%<[q\It~[_Mk:WZV$6Ԃ;O31os]M@~g*pS\IGvV7E@>na C}Z3ZM[<墺bʱӬ/+iGH-{;\pٜh^'xvCxj B{L>\Kꮼ<|HHO[ٰAB+ʞ.F- .F-"ELK`G^kj?MPq[whI\EOY *$dH AƆ vKr(tѰYzKTx*+jX%|okw>4$IS}+8okb!RyԯJߺ*"0Ds=ay-t ZsV 2Iȋ~I|xπHj.ẗH9餗>oaϱ#ŽTeΓ):4G2 7kc6Z%{+EMvK }ѻi ~9D 7=#u)Q#MUEiřAVmLE E>z~d̷R fp50+G6 R|aWz?~g#,/$ U`h%GbI_tR'Y_LV5LmP.rOjPqtZK )S(L"AΝjPqtZK )S(֕"xzf΁ҜwO(dv/:z\@Т;0Y(9 la滠v퐉Mţ\T:%]|O;E,@m~P!O=gkțx{=]GYe6;u vjK*f1l]CQ6Ҳv2ZY_\.\\S)i>W#=Dod~ʼn')U_8 $%*[Z)e籝UAe31)~8D.!_#VKh,T"J1G2.=Ei@ MrG;LTpOGUMi0@#ꍶ؅=Oc"{I#5sBTu6b]=0SZA? $%GPaHm!zEny."wfH}Wʟx yeJɮ G^ Buc%XGpGlyuF*8Ӓdקf/l hm8 3BO<֊K4?|g9!8a$Q~[VZr΅yeҠv9fqf_1GlR4/k q1xE3jM8CZ@Z`e4 <>Ml?)gcKYh%̈e4 <>Ml?)gcKYg}tg.Ji}VZRv>8`< >7fFqrRK Ju>".nsgLyr3y0tU0y+ is8A0B.Sdc HJI501C/{lR:wo i+fUú9(X\i+fUú9Tx)AKEW+Uú91S:3{4O뱳#u} Gpb ֆ[ w9fG4_02d~$CHuoGuG. p:$Sj {刘-*8'؁q~fI*)uCV*E$}Phk: $ ߤL?ቜ%:SmpU}⑗J!!f)#%U x泅_#* ٧!>t 9*mi A/ܶkJ!e_Y%e\U$;lJ9d5*)i4ĨVECگrMy81iHHFrmgY J5o4)M1*9ՑP^NGhV^^h+OA *`#?nv @ۀQe㢷);`ϥWg@rtpU%k|4S?D @AD)0?ĉ禂'f<˦|xi!ATVΛɴc==E\Rn\}i^Q[n&Qla晇_T%ݘoPMd@BfT]঳j?;7͍T3>tUJ-%zo%T 05W_) ll⡕'ʩT%ݘoPMd@BfT]঳j?;7͍T1k\\1BiRL^^.NRԶ\5FH3ۥk'#!w47B3Cـc=+i@ 1~+XrbKۖren -G!LL4ҪrI`IQ_%r$)KDch{E8s(}ڵM|^﷌y_]v 1b/kP(W%or??8ňծmC\w}c*/?Ѐ( 7 }["$M RQ$jGW6㗹i@ܶj[8Bv[@;GI(%VCro\ FEmR_dӔUN$։7IT#%Hb+, J/-'vC: V WOy.{oxKyY{UfXMGGeb='gx:74̀ v(E)IЖ栊/QuE=jfS G-rPO?#.|'Sgs@?D0DyImV&j ?L[j@7F5#QRb?zh]Y èMyȇa5~[u% yG x%~&ql9W1T0-HٖoY:Z]Q̿,&:QuNGZEe Y_D0ztN 1 Ul0;v_=׊`1t.)"Pc$_0\+ &<^|P0mD1\G^WEaP/谽ݴqf@Mfժ Ju (x5dW~7| ~0 P35. k6PJP-cPG"iHPM [7@HA5V%((SMՑ]4¤(&}B #r 2BKZ[T?XMEhg.sZXd2hœT0$`fML_@aA^_~ HqT-9Y8cG8cM2oCّ 8X;&e3R>%Y7M>ߝ4Q˸قBg<| >K e AųU)ku SmlX@ֳ;\͊M­P ,_kx?!o^N-ڨ8|ez IO^#)xſ,Qa`@᷹ Bl RH 3,&jͿhMцDHrhQDB(ML@{N[ ʪzct^7;=ʃ2Sk&TWb pMe~j^΄v!BWf_k&32'zjWޫM\ gz3uIv0˔dxϺsؘQ2<кsؘQ2<`MsؘQ2;? Zf \&@N gk~Qxak rs6T]3\#fmt,Z #0 T#Na5JSHvd3_6xE"bl8=7Q/ZhLu[5)lt!p_ITM+,]"}goNT=]EHlfpp<Ct@Z@Pvg`BX#!Q)hUF3W}bZsO "#7T`i+]^Gb/RJaGH?ïi5\#>PfDgjx㘾] BmKbfl{kFL/?ؼΥE@ڿ ^L{ύ-BxVRvhJdzϷSv9$z$\3G{8gs/3'9}ݶ5y ? /m5.o4d OOi1O/ṟN᭟h=}`lAS¼ ?B}``w&o/e2x'('4AU"6%D{!,LחLİQ+ JOՏNW.zXюcW,Dsmk߳|_*ۏwY-gb%7=W2v3[}bHD٦Cd#+&}m#&[%{\."ģ~7ގsy \ʉ=S"oLا__1Y|ᦴs2d:AɀP.?GO]/P+wx/ЬxrN "/oG귝 9J;8)d7i]Lo͙lM(RUC9qUUJL LyBMazmX[#r%4cso\&>\| T/E\{b_%-Qؚ iA9Z}E/1<D!\m:6Z~CO,;^s욭 Ҟ̳sGy.XNwׁPjD]5$Y).Z'ߍb"+nG#KЏdnUOڏ`ꅚbk,\uP%ݏyOKPRuȘ}WtfBXֺ̄wF wFk% c\hzP fx121,T& Gjy;rJTt{ޢ}QQ74*EX@7"R?b>6K@ Ö(ͽ8Zý~o:iuN`?0SHɮq+eXX[Vy-S̸#,v9%0Ju٨}/54CT/99Yf6n{ŒӁD̴7|`REDe!nФs֒K{q̫WNsL(I.Y a(!,pƸW.z ;R 9 uS uŃJܦWΙs^tj9\}Q,@!in:Zrw@ԧ/u)6Tv%<[q\It~[_Mk:WZV$6Ԃ;O31os]M@~g*pS\IGvV7E@>na C}Z3ZM[<墺bʱӬ/+iGH-{;\pٜh^'xvCxj B{L>\Kꮼ<|HHO[ٰAB+ʞ.F- .F-U1N;/b@y a(FzmV e7_Kƽitk*c'sPMNIDD1ӱ`ܼe4Ҙgyґ“T a'xӼG~ 3s1~U,;r[6[6V_f쭗t7&7˝'3".R#ui!/`HC}IqN{C~<˝'3".R#ui13c&.ܖӡߵSȋ~B3ܰ/kc6AWL`Q||_*Znl| , ?EiSGW*ciF\}d~$PoH,M ~YITg*̡pq)*YU34*8 t4guӹam|ie:[`nO$gSm^t;'$&܆ i}Qv7O˓$ٶ# OcXR>m^t;'W>E4E+`yɖEmrDOoV)vH)iiJ'҈o 8^0cPmb $QM)7)TL̎@(Cci"*wxp@8`< >7fFqrRK Ju>".nsgLyr3y0tU0y+ is8A0B.Sdc HJI501C/{lR:wo i+fUú9(X\i+fUú9Tx)AKEW+Uú91S:3{4O뱳#u} Gpb ֆ[ w9fG4_02d~$CHuoGuG. p:$Sj {刘-*8'؁q~fI*)uCV*E$}Phk: $ ߤL?ቜ%:SmpU}⑗J!!f)#%U x泅_#* ٧!>t 9*mi A/ܶkJ!e_Y%e\U$;lJ9d5*)i4ĨVECگrMy81iHHFrmgY J5o4)M1*9ՑP^9 octГM5 -ސ[(Q^E7,#։#rͼ.Sq;Oq1=~cm؆Rtu+ i4(x#b^R~rI'pϣo:c Pzܝ--Cd(a^\C={ wO%@O~eDw!z%RO7H_ir^9H5 taeGݤ,b 0t >9~5V?Ѐ( 7 }["$M RQ$jGW6㗹i@ܶj[8Bv[@;GI(%VCro\ FEmR_dӔUN$։7IT#%Hb+, J/-'vC: V WOy.{oxKyY{UfXMGGeb='gx:74̀ v(E)IЖ栊/QuE=jfS G-rPO?#.|'Sgs@?D0DyImV&j ?L[j@7F5#QRb?W [6/:h(wT7Ȫt++FUcODo=:lG0p/Z-qy`@H9:"A6N;= MlJ@}3^4y^PՎ(OPMNf/`0pEC`?O+\VJՔa7+ gϧBʲY\ x\O)rCХ(DP4'|⼂FR%`YjRhB?l 8 Yߥ5}eZ* T\GQ5%`YjRhB?l 8 Y߳M<3T![J,U2oCّ 8X;&e3R>%Y7M>ߝ4Q˸قBg<| >K e AųU)ku SmlX@ֳ;\͊M­P ,_kx?!o^N-ڨ8|ez IO^#)xſ,Qa`@᷹ Bl RH 3,&jͿhMцDHrhQDB(ML@{N[ ʪzct^7<(>{((*j̞fB`*PGj7gh!c6J+'_ikW/_~u"ntJ7"n\_iyM)W]ڬI'CHr !\L\# 3X #_JxУ˔dw^", ~Tcmx&l!yrGIWpwhА󀒩GM>f(Q1I#wx\ N)/}=c|I!"$٢@e?gl=ޠ3enZhLu[5)lt!p_ITM+,]"}goNT=]EHlfpp<Ct@Z@Pvg`BX#!Q)e#7SqA+TjLHŲrO0WRk`@8g*ݟ8N3vX?G?ZBRH6H⢰"̑iIsƃA}_P^.0Q .=5.o4 6P?G?Y?hach5} /7+Ag("]',Ѐw|tZ|:_xݐMHK_k 9 B1nX4P㼸ا__1Y|ᦴs ۶J~^ s^Cόҟ{'շnN9T(9^r8sϊST9l&QẨoO/-y~TUVԍUl+ ~c,SÕ103UYQ9Jݤ~¾]z3k٦Bܳvcc 2&?Muk+WDBւjw~,E~CO,;^s욭 Ҟ̳sGy.XNwׁPjD]5$Y).Z'ߍb"+nG#KЏdnUOڏ`ꅚbk,\uP%ݏyOKPRuȘ}WtfBXֺ̄wF wFk%%i\#2XS+?QN&8bPQgAyR(Sր \S8ܷp0"=7Tzp?WmJ/<ڱVasC.f~RYOf#ȖS0A%HwPUE鰇]*K<>z\᪎?o;*C.%L p~$ۊrb.QPZ@%HwPUE鰇]*K<>5ju)u]6rhR߽ r0lUpr6!laMvU1 |U|d1yi!vf.H'M?'T:$M}6Ȫ0L^"^)fOvQ\" ˙- }v@TzqfƘV6F&j4̯+AGz/8%DZCF.4UFr$0SHɮq+eXX[Vy-S̸#,v9%0Ju٨}/54CT/99Yf6n{ŒӁD̴7|`REDe!nФs֒K{q̫WNsL(I.Y a(!,pƸW.z ;R 9 uS uŃJܦWΙs^tj9\}Q,@!in:Zrw@ԧ/u)6Tv%<[q\It~[_Mk:WZV$6Ԃ;O31os]M@~g*pS\IGvV7E@>na C}Z3ZM[<墺bʱӬ/+iGH-{;\pٜh^'xvCxj B{L>\Kꮼ<|HHO[ٰAB+ʞ.F- .F-h?(<.Oȳߤ/}()3ħy،"=8\#%"G%uh2X!`^/*a@! ڕV >w=JJITM(MU3m$kB|b3h+{s[v=&Q:}~ywbv.PUTGWnXG@%NiI115UJDyοM!_UȐ7+Pܳ''UTGg8gkc6AWL`Q||_*Znl| , ?EiSGW*ciF\}d~77]@0i_r+otp v^A5֙ 7rO79 lVqSߕcr2ODMlZiGbwfXn73Lڕc=S?w $IB"D%M{0/u(zjv/?@.f4/LK314'I%ȡ=._ .;&>K+{Q7/\!sٮ @HK#iF@?f /5_pGknm^t;'"edX J q,)Tm/A{W>E4E+`yɖEmrDOoV)uAY?s}[#% ,2 ; A|e&;T&YM5NJi@&5Eu í'yUr)Gx2$~hаAEU6b2Ewpӱ?l 0M#4 6XW>MU:gKgz2 Xh;$n߼])?DL^-æaWYswC[{\~.8)d>Q7ְ'ql.Ji}VZRv>8`< >7fFqrRK Ju>".nsgLyr3y0tU0y+ is8A0B.Sdc HJI501C/{lR:wo i+fUú9(X\i+fUú9Tx)AKEW+Uú91S:3{4O뱳#u} Gpb ֆ[ w9fG4_02d~$CHuoGuG. p:$Sj {刘-*8'؁q~fI*)uCV*E$}Phk: $ ߤL?ቜ%:SmpU}⑗J!!f)#%U x泅_#* ٧!>t 9*mi A/ܶkJ!e_Y%e\U$;lJ9d5*)i4ĨVECگrMy81iHHFrmgY J5o4)M1*9ՑP^O`,O=4?0 n]6/OA [tV>uS[B(E@K q quY/ļppNc_z^}*z(7|{&@U%r…%⨺)MfWv5Bo8f xȎUJ<߷M@6&@U%r…%⨺)MfWv5Bo8d3SAU080ޡ;@U%r…%⨺)MfWv5Bo8c=T U-wsl+$zD>9 octwET *:Y:}ʒ[~W rkZ41'T7a{, N|=&J7apF*l2fSY ABH.\, jJOlž/C'AS9Efioɗ4.+8+q s4Dw3ktJ}Y$)r^9bA$m?āHyW4gPeC/@ɼ4ώw}_S< Ϯg?Ѐ( 7 }["$M RQ$jGW6㗹i@ܶj[8Bv[@;GI(%VCro\ FEmR_dӔUN$։7IT#%Hb+, J/-'vC: V WOy.{oxKyY{UfXMGGeb='gx:74̀ v(E)IЖ栊/QuE=jfS G-rPO?#.|'Sgs@?D0DyImV&j ?L[j@7F5#QRb?W [6/:h(wT7Ȫt++FUcOS(}I׵V4#~M3}9& 2 e Z z6AI(>z P)js1~+W^)*rwEJRgWo#Z?xEMmc1y6[^A.2F1D5 @Kh~[qd!0faeJv1M: ~qi+OGP3AE91"_V%((SMՑ]6!֩}' M=|GFuCaʼa^gժ Ju (x5dWGI:X9x!O #siD*c~$%>De "}ha.K;Mlk$/&os_cUb?/U2 ``_ X)tO9]lrŸm͙#+Cҋ bI$5B |a7{]o tDK6)5\F j;XNً}:n^\}|WSM=Fa!pkv.;;pZnK烐,&*Py;5CoJMe__}sy$daؒG{\r8!-G INA%Y7M>ߝ4Q˸قBg<| >K e AųU)ku SmlX@ֳ;\͊M­P ,_kx?!o^N-ڨ8|ez IO^#)xſ,Qa`@᷹ Bl RH 3,&jͿhMцDHrhQDB(ML@{N[ ʪzct^7<(>{((*j̞fB`*PGj7gh!c6J+'_ikW/_~u"ntJ7T:1]bu#]]R Hdn`*=``*f2#mrФ˔dxû;k2<^", ~Tcmx&l!yrGIWq&*tOh".zqN ߙ%qM\YW"KzYT\LT.cV "1! ~g>OZhLu[5)lt!p_ITM+,]"}goNT=]EHlfpp<Ct@Z@Pvg`BX#!Q)e#7SqA+TjLHŲrO0WqWNsN?-!3|o.Zy)#ΗW[-:iMc7u3*O2+tk &D=7)>>3OBWG'S|A?#) p?EGK}D>qˆIZ-S0oтL_ %e$F XXk}N%YK0yph(0G_$Jd4n!2mYs dZqF!* voM[iD8?ȀU u\]5S?|,RН0 ~w bWՑ2t= yB[=+,okBJb{s?B;cЯja]ww1=3*J;&YG$H!'9]qc^;7%֏u\s}A 1/M!KՏ|yu0gWIC$#? cX|02 HZҠ 9=> w-Cۙ) `/U8aX7 z̈́1/M_ԱTyƔ(n ,F(vdp(ΰlCԾ \!'iWiW~fљ;)mx|g] 0nZ%o*@Q*gTVz.Bgʠ!lㆩ:1M .@*~uVi~"x{ mXx9pD]睫bp%0`_C/$ZSKx4 t}XZvϽ|' ֋_?k' ɁRFلD] >_ ~"WuSz82뎠 m1M#Q؛he?xTdb2uђN/F+[SV"љ0\ηawւy9]:2Hc3\}3 ~GɿlUX@>P NZaC_HN@?hhm9Ǭ sβ^KCLlZZ`ܷ`;A~W{S >'.<^*(dV$ oe߀ވ_V>~2Ld~#6Pw;5  =gK%K2){E%VLLYP`a%rj-23o l9`$h/" IbD#3^?Ȫx|1{E@?b HKf+cPxMelڸ[/|*3\?RY-!y8(3JlҺE휞i]Au&JҺh?*qB˹5 /*bm:]/͓)J()`(9Ti<}InUFUWV7}L8'R8QREuehO<71}&AkĦ79_a9vN[+X6seʍ2.7uV'00e[>@wћ|kεxIIe:?'0yctՉ4jBQ0ݞJd; XW_gyKT083gMCϹ3oԓיdsv1ccCÅL hb;egF6U}6Xꀼ*<ÏփDpb+M>2&l'3HV31F{1S= 9BO+=S5y<'whý!NUeoQQl`j-  2r]{뜟b|M00$a&(eP^ [(0+kЗnZ&t elTI$<[mݩ.tbOeሎZ41΅,8&F9Jk9g${8W,(+jD[ q0% ;d3b\[X6R VI]/ʒU CIiF 0g@ %TsvYTv4)1>)rL,`  h),T; xǴ`Mƙ5ݭ I| 2֕#"?_kIe3SDP 7IK~nvu}SB2Aq-Covﵬ#H!djH37];AD!ą"Q~VhGuS*ʐzg]O,tna96k;whþ6]u>#yJ6yo[dvp`<ט9,S[OteRߏgU[sV:Vj3߹9c?B/&mEooX^MP۝V L)uL! Zp+% `bZ|GG oR&?,m0tc3$:5F D6&TwN1wPg,EZXw x}.*vsխ ^C~Ӱz(h\|[,v^, 6#Lk&v2W; Fw;T<3' GB | iTYSQbI`"4'ֲ<ƃ&Qi ^]9)F[ JgϜԡhQP$%d-#<=l&rL=9:09R \S6qFf%qپsB{R}8FӨhtA'#!)=oq>HG:碍м1)9s9s)?y_vеhGJB)X4 aX]$;W/] Y56P41M%VP9I(km[n]S?.T'hnM hrى/9=?LB{h`9-ĩ.0*(^)߇EPOuEє2. ֶV$^S/2xHyBJl& A]IBgMF@N_:2u & OlV;jS9X)\9 :.^(Zs.?A]">⯂$pJY|p3YuƂ!.iho`X.F)/[IL8{@&h$;;Vg8a ^7Ek\WP{|-_ިI$Qc磆H~%:uk^hC\͆X'94cZj#4RR+QYUqjB2/oUFokN-Ym2[6|HfH b :|R,G*qTB QmX!cj-[OWJ5Ӷ[>k̚Ru'mϗj. b W+-wZĉ S $!6!/H?vh&ǜy3i )~wxEbiH_3jS"c_'ۏLSP>IВ4JnxH!7-yה8]^uJ\S7;#!5UO> P-1(mbrsf(;BVk ǥ d+fYT6YоˤΆz 6͠5V=}U)Y#XWDx8;D)W=fhgl[:cMaNv*J#TO<3,x]rY ڦXT䲛 L|NX<,̺C3z,X TJ%LP~Z(k'0 \(UvСTw99f4hr^0Fc!LVM^H/b=(vr&asϟ9p?HOշ[.?Ana{F1qcyl u!$9fD} X*Ve i[cN-;'i_Qk,Z j^U>.Mou[\ץܹ2I0O% ѯ@Xxg<)ޒC-hǒER7M5bCR>F~H@:h괗fBkSjsC|.fUe02AA[TVFc ZОmױNLĞ>(\{lB>Ql0]4KS:Q9 '#sxd Gp?t'q~{ G?Ki+9w,d>W|\9 )g^SVf*tǐ/FEէ9m#=U PRL&EȬgJo<2Z>;)xNi@ڶZ{G._e9`LEG&GlR URˊ2j1h( *0Sʊ$ʱJfo{V2=owǷBy]M/gVg(Ci=t/ûa_ /36Sb4Zs5W@&?)53L6)3%#]A U3/m_!81.?1~e$wp9oj jyGKz<&E/jH>$7jzgi6񻂫\O^:ha(D7H2V%(xK=i}PVN\Y_LAxMncUŜB]qEm2 X3졆IœFe`"%W^޳t!_wP=/xV+] v5c(s6_s5?_kf>r'Q5|+&bXKľN}nj4lxFQ3[fQ[o!Qp7 '[8)󹥷K*9 33LE\屶7f#g5[̥L( @J\77YS8֣ ӆjydlʈ~2Eߗ_),CE[+1M9#1T"k ژXPR jȐ5eZ K>*H1m[#MP_cxDbE"6^l|"! m%SY~3Fc!HVRub@w bf<$ Y2z˃W?AnCT'AZc%{[RZ 'y,#,Hb *-A5/nn_')=ؿ-f5N "zP+6 n?:N ܒ, [`Y_xvYg?@7T|(b8]:BЋ9@ I|7E$i|`< Wrah[Ol;rBJJ Ь3hm|L2:XAXpk,@@~$_q?t n)'ub*4@>lʾ1) X&UHx2 \68U-TT3e568?J:CV#xr# F h’3#e>EaʘfjN[D嵉3~%"[V]_X>l.iͺdVGTgIC,G>a鵴 bi=x[qy?u]mWr;ҙa)T`r钒+ 5<@3}L.cawsyM!:}h+_ߟG-tlfEY,"| ӊ=Ny Ծ|E[aFcV!`2maQh7l8Y8 W &uz|ԚÈHC@5H6ŐA[YE~ff],9%&o 2M[g]K";pK~?MQ`o_d<8jq> @/0PZC"<⮶(p*ωfgԢ$72@oWWKm[8e#`DzPOTnV ͺ=hVTaքn _rD+:w={5$8pEJNqƏxDUNpϜ٘ x ^7a v#=F LoZre1fTXj-GeRTtOM0j*Af9 @X4apۆ/ +CstCpp"0OVo5V{jR>$kz "`I&gVAϘ1~e$wp9oj jyGKz1XAnYmv <>6KA2|}B=Se% K p;)' wm(9pnT0Y=M^s.EP# 8ri:)raU:\- ғ ,PaQF%Q`Q/?XfNv:pk^TvHOKUٹ}+=;3-*0s R ՛3<ѕyC Ov#{)A 7 A]AP6#>N\屷k*{U@ߨ-*id_lLDOxIBX v٦]K(E;X yYE-x+Xއ zg+8=E@כJ# ūٴSxHVpކhz-3 T s%_M+_oNefBkc*v>޳,Fm廬NGFm>2ٌXHj rق],L%B|$c<~|B\=9Svb:q;Jx'AqoB8#\{z'q&~j@FV,#)!Qr_ =^F5.EJ5@[~H։*܆p[KvTߑ@MaI/Og45"$ ~('%!B(?Up7XZ|d6z¦l/qILh&DY̡HNgC4&Hib oԅ9Яɬn(#` F#~Do=Ī1M 1%bXHrRBMfeKH3@DždWD5q{yBtL17pĬvoӴHGSL %8cß?:o[0eO tǗ A1,M/3 bMb1[Ew0n2o:#?ڹEx$jVV&Z[O!d.~lGSi'* KbX]cu^u7/Ԕ s܌VNJ4hX #S BY`ia:)F);!4ORӥAXb5!tZk!UbB,CL J%i.oa8,еu^8`Pՙ ntdd u.Q o;vDVn{ZT4ɘiɲPi+"^RSt/ZBh:}Pj#̂=&=,!wDѕ=VϪΦphiz1R e%^Ju3-@qO"ԫj#K$b 604u$qy పEalX|v C1$ ,w^Co:Ո?3iiߟ5߷(mb=V_|%Mr#wS]T|=ۻ7 TgJ_"W`qsyWˍhU2u$MlZ#jO0TUT@Ъtj>#  V|̋{ggxEV,eD-P$ >w|Z yPg=]$ MQz еJu$OM H2iZ})-z1a&Y~h{xb\5cL(+r5YF$%VQwѕ@d~~yYo؞]S ct% 0!'b@kxCFx`gee. ײ6ect4骞^YC8؟+s\ $_}XR\#\kHM{)4ܫDp\Xjʓ.jUMcԄ~ӔIq}}gq2YUISilDlĻorh 8/Snkpo_YX[+!?OK6=̗;ó9!27L,u|F&f<2 WkB|gTC(ffYA,[H8N{ϭgrTX< %|:+Ic[!sQqmrio ͭF܀hX;>^UdGogѿCuH]kF@U1(V/#{%IzN@Qz! OI pyL`wDsu8 MS:pH/Ĭ6釿mcX޶u[\&|j/"3 pv PPr: WwAʪ a/)|bdr-G 8[e5}=sC n"(kS2R1&Ca`Td8iTꔥbWVOyŭJ&!Ih +ek7M[p;/[ 'dA :DƖ#0pPYMr'3U*hKsJT+giz=z\ܙS-> g>u m}'Ql1g ND:~aLJl#+"bIZO*ڠN'Ruɢ@\jB)8-)]7pcJ)C@;\7ʷEϜF6z-[-p,T}M>ƆU?]hkHDKFLG:i2 /,8W "҃ p[w 1zo(ɣdRLcai;VG~qh!%=Cr.0K w}UH|W=7ykP/vxRZ 4\w9JcX`: PHk^ڴ lyёPڼ)N,)񄕊L{DV꨽ n ghӁ04mͶ=ЌC_pVvWuLz@nJJPHl14s %i8)$Lt Ef:3s̋Ys"Lr'EPVvLuZ,$u DBvwQdR/ @p?{ &M/3L; F*O6~sE&`r[Zȑz g2` f 0BY=#(m{k}%&uIl0&9mJ',TVqܬDnf [bd ̤9UK1zM~:S#Ĝj}0$)y%/060@zq~| v/ag5O"5sCސ.Kbp  C҆A[{ dlskv!zq**DZ=ɨ>a4 ]Ӵ)Я\ZGcYϫ$^iG3hWEV3$N>;)BB j2[/)$2bdxeFJXd<\;~CBU%-dhۋuޟ$jA盳WV|%sO%N0P U\Sc peГh~9¸ Ux4ٜءl|XRc5iU+8mmT(3 ~^et08>.Yՠf|;m[TZBl ݬZ'^UBUi.+CL&Kp\ݝX=nFca{رHZ7&G ׶/lK[Eug#'3! i3"nr\%3FK>#̸g$Z\8і3`gوpAll+Ã66UoyH6K?:7v|d+diԨy]at@?mP>Du4rc@k,*^|31Oj 3Ax7{|NP=;sW,]Ϲʉ B+CsXDpB[DzMM)rftz&m#b'r=֍˾v^c/?8>ctQe}' \T0SgWd)8Φ"3> `7K*lZ?tvڜYv(c!GgAVJym50?4 mJYzPv鱀 5//`[y ڂcl_.:`kxJ1Wfw\Gb!օo;d>@̛ͣhy {>]ླྀiIX TQ<#t&*{V-eK֬ `%TO u6tjJ2׿ܓE AU#:Y^S-6X>& 9fCDӂqH@ǥwr'شҲS jCx6hYGഄnx/Oή ,ʓ"V2+S"}vX*e74 鐘C$ ;W0_Ѕ V/47#Zxlyԇ!}>y-9M3DȊ+X vN04?/ήu2/yfبɩx`Du=m>];?*Pe1*b}h2A6Z>ɮTR/.a,۝:]v D4#CanygY2LW|e_[]ۀʪ!vT u܈ C_`e `wZ>؈ll< 瓙z‰&gJmOOof5JZ29y&9{źj-)Xi(vb(>/&|DS*n^&+h22v|DީVs|SM7SKށD3oy^TGtTI˩*96M+\E&4S||r#K7qEWNJc99_#*bm: MicHxUU-P&]wI}1mv1MnNFURb|Rw"?uV&v¿2OpdaZH :e-xd1?DLF1v0 &&Į[L=V&P9Β`F\pzNl6#Nkc ޕI7~Q=9([Wg P~XvJ?;FPMf:* Jaו{5kG3+䕎N&ŨR{#vN.)bF,O|kj-LJ\\E|5)@g㍐h` &Sd]rVdKQ?K_#CxΔé|_ߟ9_mb=V_|%Mr#`))9XfO%YI,]^T 9/?r1I|m(ħĈ3A:QΉ(W@PtD~!$,*ȗ)4 *y x&U.D>ߣWߥ&k|RY<щI%fT?j$k7N=1Òߙ0KhzR=qah twK#4C3o n MYc/L2yH,"2i$-#\y.mY|S2onkO˨۫ `<⬆Wt5[{A˓-D'3dcN8pW XRXTZp0銡wb+R#4eY>N舋Q-m]O58AG͌8wQFoYx>`]cڀF dxN* t:܍x<Rm8Fd793oI)C{,Fmfj%"MC߮\/w;3 p2۬/w:!c.106)`0s zM|F DxU$?dK]Mu4 oINtЬ['&Pq^ گQ~ ENt^nZ ={P[ vY[o=&ѳw7jڻdb T51/;W(ްQ4+o}G݈2~}r^zh& Zu&J| c9Մڂ+1K0?r)A ";qA~,sb1n >izw{ B*Gfq:؜s#~" Ԫ"(n.gǢt 1|Ԫ nU\9\ݝrHBPd4şsrUūYU;ܭ}pR5A82xgß;rN2)\ {FzёPڼV W~3S2`cLXNk6D IKK>KFh];8{)I֩;$ʋ 8C]|V^[dM,!zV:i-feRksNu}qqi)7qf@HiMk$͛W!lύ<&$0\Mi|qAA ^L-iZb._o!ۑNuTc‡3s2rxT5tڀp}ae%Qb|nFJڂLe+2Tx V?-xKب+PleV+fl<|S{W"z֡4^}r-8P/Pw,a)t# u5?9`.xL%P,5ڳCFGJ!]-.E,hDW-<0,ҾG3zɀbC pI %+Hܥm.Qb%ap/vtxOhVyWK>RkP.=IS]t_VWAWZtƛ*1mftތΣ`﬘JwG]G6DK^4(1Q)0}{Q_Eo\?SfRj&HSC{ NC   gXŠ#wpt^vSwּ^ lsXs@Ҿ d?;ݫ: _4̦,ŗݢ+3C/:[5a՛- Ir41 RCFoxG1K:{C5cEQfw t>Cd oT1"_T_AY1>xMI=z>.>S%gqU,˾h8B䎟/7BW\Ŀ{H+DHOi˄IYK?e^>42KmemGP# Kv<|3f7Q>6P]9:Bc &V48BS:mc~hm2Pnv||~2n# A%l wg[(v>9n >dy_QV8{4VCޞҤŚL^D@ey2_Se{Ckpϼ(,m~& 9fCDӂqH@ǰ9U_RjN*L"B9|PZu{py15Mm) ~`|H nCCL>'Rجs{&2N_,wOe6)y˪1a=DMsPG[kI5\+cyۧE<%,gaջ:/*2_Q^{5  hxQx^ Oͻ|b|ҴS-Ȕ > 0jnC 7\vpmlyfGm/ OB4A,a](Y|&X-!|ڨ866_ӼQ]i+8^S((_mTD4 v7^HŹhqH{u7W履£zc91+UFhdQ=E+>y=V5׍)hʸTR2=Љ ھK؈ 9(cģA) ~ !|rR:W*fwU[v93*%('<*2 uV#B&Q!{lDJ0* ZH2 ;eYlTyO7kp9o+_QXƜ3*PUHcf5`y֎^B>jQL|<1@Lf!(iL0=KX[{ɬR^.\1/Pі7I\+(»a m8mRQO9C W#5mt&898q쐽D$ BŢC6%ua=݂9 5zG̗ra|F6MQ#ߟU ߷mb=V_|%Mr#ƯQx1r,ƪ o_Ԁp^)Zd/ *\fØKkg]J=wGMU375{:\~dKD +G`4?ņwyf 2U/_آn(upot\ u/6}܊T(s?d3|n)cϙM޵;UN ]9aS M p֜vf&)pgPU䝗'o/ҁ!Tˀ zp.!}/;Uy5a AI.3 RT{!~8v 5JM_'=&a ? r5_O,eY>NC`:Ðu|Fl 4q|Kge*,j1۪c2zX ެ%ǣbE*2Q*K/3K&Xiİ1&8YWu" nVGDzbc[!c槚106)`vȉҞ/y - V&~膺jDdOICw̤Á g;EqKEƫ2wkBpCY+̠wsT9Wn "ݩU[mlIv|ڦdIئ7jڻdb T5ճJ9!؏hC+ HoXL a$д-C9Bqhp HFD[|C!N ~u'lho T åd8 u~$֟]Qk$b`|2ex23,hS$ cJb̗%q Q?WixRPi+z3}evD@qiU3nk lӮ=-4 0i^u6EO,žu /|= /U7@<)#,+8kk.\=\k>$?ёPڼV W~3S2`cLXNk6D IKK>KF)o"ρ,S)VO'ɔںYDkqKbF&T <99 1SA91—ʷڢ|݌vy[2(sƖ2 i0wfg@6lD%ނ 2f^gbf:Fz\9 tkhЂF!y>Ek{0IZ]/l\2cA<;+܀Ef/| Fvc;%!P-ᴠί 8Tx. άey xizn!6VmlEC+@ c> G07~7v\P! Я=uZ7w E}Ge=dd ~sُHiw j"f\mؒkih (SpJ*.k,}sR&лhȃD+H1 ̤zI`)O$L 4!̠Pu\/-N}PK_;:^ wL`2_H}>ɰBFW -ate/krby3O Pʤ.M7>ݘ}zWn B,xk} F duV"}_ʖRb;%7.ePW'vDo;ClnNx鴜qiieacT|l_]qFߌ_h.0z ٢m=/CɐǏ w{vU*ж'P1D7"N?^ AU#:Y^S-6X>& 9fCDӂqH@ǰ9U_RjN*L"B9|PZu{py15Mm) ~`|H nCCL>'Rجs{&2N_,wOe6)y˪11iJE,#ps_~nW:۔!ao }u7 ꔻ%xUG[Kq~a43 v8gZ=2 _-@Rk19 24>/? ؿ:5A5{:gk.gPG$j~s`0;%PVTUK_1d{$Yʝ%N}.&T?ױnRXZ r&Ƃowr4~>$k-{r_S-cN/6\M1EmY[s^c^4*㗙"ILCW.>#-04sC}luN "]V[*09Yeb{q6RgGX}ԌF8P,c#WwDWSFH[pNw`pAj\p,5eH˱%$,&C<#a R|❄*n~S5|}@[>$pBotV[p{9,zU%聍-0>OV" @{ 4φgu 5OGq1:QdRȬw|Du^[bB@/ WnV؋۱.RIZu OEdr1@ePsP PwP;= _w"ă=X'o*%`^-(5 `/\b]}v`ᑘm5kIDVԺ܁ 1E"%9$ 4eeVc~qDpʙg'"`ĝ$(Pn1.!\Ev(IR=&!Pt%Ί`` Ԋߞa@}[WDP|RLyZϼjؔ+'* e;[ӽfKTnK \J!X+ 4 [rX\%*9UFϦ'_ՍDTOa* w<*r j Nsr njmf]sT?6h|[06vJaA35'P^ST@+@ <O)x52`FC83|)f6\˖GUӰRM#)tmh_Єa܇7|&P*{|%A// 't&TdUÄD59?q[RtND",8qx_1-,kX_WtX/FEm|@-3KTum["zV9p+JfL]:R5wI:WW< ]yyW72"Tjt{o9 YտP0 A*m3u ӼnH Ә&W?29hlYʔ\o]hHÚWޚIGvK4qKuB~Q0/vC{g,U`7L]mE[kAJrf9ܛKSuFß![KQ+?x'- P:w$lOv Uc'8Jpjt4i1&FzUM8Xez3zoF?_ùoèQ.%T#CHg8 w~x7/Z?:9ƖA+, NwʫPewˊ|7(Jes;nD?ז,_D&XVҕ-Vwz hB~Un&QɄjK C/|]G c+@`h60?Τs@/F>HĵqY\fKj$h]ZUm:Ԋ6>YN0W[<3MSZ["Ûoe-tK rJR g _{V@Y,3I0Ts@vNDWXhtؽ;置/*j#.V1/uka(Mw$ +9N܆lsU8AIن36AKҖ"Q"(fs?i2h$HKZ{]m5Tw(3V_֢5 I=~ӔP4 ڀINn A|eZ&0S dF..P46b8֯} ҏs}ඎ{𔮍e&k#(\vir򈩵#,XX`~xcr=DQ#ڣng"}LX@GE4nfi`$r:w(pIb!rVYonmdYAn~" W'[חtBʜt]2'-ƢgK2P\Tw4&1H.)auUT$V ?6!sZV%oo|r'謁5⛀ Jx!})ut)'b~@ucFOIxMپEK?y}T[cǣƊ@h"\ \ZsqL. n"ˋiكG'i+ө̅6I%ak!Bh!1-{V3=%eGL1aM{t=~JKҟ0iX6/*lʕĈD)>^,ӹRf @? /$"=H*1оHnCrf!UdzPo *Th3(tkC!~4^5@^k)c.6Gd54kAy$2/QARvx <]v[.7\ӉN1h&# !sx::V*1pQAޕgU>ƞjS+Mn+A;[d,Bo3qjD90DV$:1!ѭSj_?js1V/[^FL#OB{qcX+\,`JJks)?F8iK=ƢVl;|U9Vl>E~f 0N?GHB39'lUwlSb~E '|wMi}B@;)He?ڴ央DB88B'Oo4q\[%p1dmS-<;ZEy5JhlK>1SE\2~T !/`,2VWOX\m]).KxqcԴPLyUx2 gS,D`߰>C;R|ĵ>OյdJSHW=<|:l1Vw5B>-s ;~낊 ip8>;n&ЍX4A$bUjJ@m }y2ŖOt/aHa+̩B$G7GōPHޑ` _b}ap+.fG?*U 7I^F#7P;+A ]~1G%7Et9(xn\nWE 6АZc}e$[^wYqShrnn3yg"7NOmӆk“uL#H;F٫e)A2vxz 0[>A!)!BGw(clړ\k9Y3ɂ)KnGm;7sWU% cGIJL=ŃmJ/ָ9葟nKp 7c>[a.Qgr"d|;\$j)W$8"Itj7zo ~1{e AtWN \) ڈS wpAM$_S.,XΌ'e<&q'cEV`t*>WKvfv+EPU{*Dp5[C4LY*>A8IF5])kG{ @s%ѣs?,n5T{."w\0}PB5cm4_ j)a^/N,ͤ))s x_/nr$h#=rsjB!9 Qx.fzQs>p/|LC{. d1\R eR~"5û~=eAB`R6Zv ]AՉ HD*'! !3d^pG&N:h 2MgaZҏ o6>0KNtKD)NS\r$3(7[`7C`o9] 4Cޘ'װ?oqY Fz؝@a8oD.IEj*Ewp'YOe;+:kl.ȧ~@݆3l_%1Y΢sy=߯Z&5g]Dx_b_M~~ܦ"(ݛ#mnban 49Us|}z@6X~_9 pe9&OX_"ΗPmJ]{m\'w,x2n{*`mI>bexGxq׫)fP7T`\3ޏ⋕*gJ Zو!h Ƥ$;- (CC!PkN^h%!5ʉ+^NzLI呤ttVgVf_hZ )Ka_sOS[-X-Z eVےO+;z/jv!-(a`Ri\mai}aUM=SW$Ch)8E ,#ŪUg[;}8v$M͔sv4qPDazVsJI1B'k빪'Y;3}\n((7Vڙz6h-Y3=Sk DNgQQiƓsFx(< 1Qn}M~q%emWB'xeͮ\s jq/<8n@5H +M;uTw{K$PB\&JO4~ Vp`+ف&j>M\HY(z7F!R aNjO3"ĘdFnE/Lݥ/KEAy0aw>Ƃ W Z9sԥ ]Pe&?k*(B.Gt!*:?8_ؔfݦL%[>6ZRl,C;ֺD{nդZn{+ȸϼEjrwyۙ=5{O=ݗͳ_~<~El߃lW~#~O惤uDh$ _vS 0#‰g6鋹_И秌&m5): v"%|H/2) X] Ð`6OZJ@'>r0 Hsj"4AlJgKYoYakc{ Vs),9%'*incδX\e],:T(|U5·KBQ2hTnEdfNks+E^hrɡ;QL(PL(\[x!Hf^}*QuvGd4A=aUw !R &WKoʑ9 {PoOACufW/PMlS_5G̲{[qp PM:bOdHӟ)M(=*NSVCIq qR+>niYN 0Qj"Z<1$okY8=3.Y[+\?읔68Nb|F p`v4_J ?>S8cAM?:pHPdA\x#i8J62ENUmLe{ϱjI>l7nql8eEW2JK+ Y|Wg1+^'}HrVEWA+^&^[5mE> T؇b0KfoDb~550S` uءhވ0l62/{4° H644s`Uw@n^]9; e U1[ DfilX-5}_P6d"8&ڀLFR>UiuLkCp~%N aJWv]&WFPwC:BGil?N?LR[bUY3 :7YR*Wȵө$imȄ..6szdONAlCtjAgL--&e@ KiwELOhN=.xDhE߂ul$۽Y9X`5P=X:FFכ 3$%@HWm)/=N"|W1ܻj#'kN꣭? %2hNKQdF+3q? 1G#1``t[?m運RRp| `M"dR~+wD4j*F҈殛x/NӠx[F*|R&J9$&ڬͯ5o\PL z[7{K,()mJ mߨDmw@NQnUDİ2MaW3,@E!7(H-?,v-J.< Xmz6g ljRMҟ8<`*dD״`FgQ2,h".&,5Y]K;u?8w%FL]5^\S $ cKAyBR\ xu_>:"o꙾} lH5QgJ-@ffffABߦK@mu*ڐCy?\V_Ã`jj{!-J=@FGtPSRX-7ӧ&ħn2Mq =*$ ƊEWZ@Y8ݞ FyKnGX!2lRl%-UK0=ލ<4z H!*a~|dQ^ҡ/i/I? nZP&%'V^@D,?&r&L5x;'v״[wqTZr.w`(aBDj$Is7vwdä/(-}̈́c ~o`p:Rr0s h$LERE őU] Zg6P#p*KA<@K=.Rh`|N[L9LG\w˦|Z?B\ig2pd3`0{t p:CJ{P58y2}׈^೸? TڮAMUFbJuZi:}N%-C%;VzXG1N+_`)@֞*61ܟlȟ )rEƸi{0?p8* Ej&3`;j~ڼQ@ m9# Yrnz&yo:Tqe@iyz겢Hd><j%LX}fOV # e!<sѧN^C@V 3֞ f ,-Ldt4#]ʈS}Ӯ$JBG{5y^1 j'6f[ɭ#Mz&q(j[Ⱥ!\2*Bs[k Ep9mB*5zI9KFbB+R(#Ϲ2c%fe%'my^ S>ve)8HD1Cl~]@~uF.dtU̥} BuI!E;I!VG`q {p)joa!fq !lBŵ %ө5;ܰ0,^=lr)E3ubOc]SS"/z41X2OI}$2+vDlU˙3RQ=F&3vG,+MҍŁߕw\*TpM$}E;ܚww-DŰ 7)|콿7 =ìJoTt-¬,ROd&=-/8AbPN"dk_s`S;=uiK,O|Ό&(bNЎnQ;M {˞ u/ꛞaHG/O\4X~7\뱳.*݉a@-lArf}i**)xZrNԇ)G.80X lˍ0`-*H ӭޒz8jDY_)Y/7"@uh' <F?[nn2Oxp)`s &B_P#u=!g4&"3 q y*\/Rʄo#ӵn}X9w:>nBmukiC-xS:ĊqdOD6^s~UHE^y.m]E[ujP@#3hz y½"jtaSr9O$`8X i:Gpyt]RZQ~k2 9ְi$XѕE{p^MdxM>=t_E*_sIQh{$"hq*"_p/#gu.9,Dc뒍9+KJB2iZyue )lxVS7eH~ʩm ?nF4RZM;1HO!Bf0W](%I Q4a1wC~(6<\gldk]n /Ϲ2*& {5_.1uglAAaClܵT)ߥq}.XE s10XiGrﳓ|"CR'Sbp"+ MnjA m&e77 <\G*F樜\4@~GԄ5w+pKZPnIRFS=D; hWG x ESW446{!N{=r4.QaZ92FbtX Trc}ztD|ݶN?wo/7+bS՚IK@ӓ퐐wǦLv\jlB]7}v)  4W(ϤWj)}{?7@mLa[RTGk0ȡ(]Ӎ|SiSCr{-[hE^.".)O⤄8i;I-xA4]{ڐUe%]U5* -<Or[9(ktFL`>QKy*{o7^[Fp< [E@ޥM'sʚY9uLS9Ks7޻]G'QOҋ~v%ؐnM>f-h0>mϣ6EqMS[@ر0 = [Fe==~.'[Z4*&]7-,sj`}^B?z"dy=CoWïxm ĮBߙ9=\:M vZOt+LKM?} jP<;F pnp=73lNM)JSHnjtGt1n.Gb%ҺjлRqz\BJ`  ح`F&x&bFO I i`;HBLr+iEiQSrB7 b Z[ULP)@8j4*H ._w\S7L;GbЩ3ƷQ:>Ս9F="}W=z uH9UU)JɮŨM̠kϷ5* @b1! M!MRS5EY]D`b9L] WJp\tqPC-t:M0[JmYwfp|W4JBжdܓ9[\3/J=NX yyXG8Cx?qzJv!PC^7f&2&,R>2c2q] 4uLHte32m֜EC)N%.M=azSf쮈Ar-(8> ;ϖ!qĖV2?5Tw(3V_֢5 I=~ӔP4 ڀINn A|eZ&0S `i{q 2)@t~,9 [n#5/rFA?7U'>NT~*D]#+i}v (ah!b\3P&0lw|^g{&Egs7ud4MKi H0WYGwkܽ B\1[W@ ؠW\\ #`F>4 %p֠ALyr~ykLUY%爑l ġvx[.kt?\u{vn1Պ\=N`י3x#AAGb4CɢstU)jsp_F3-ݓ:ƨZyçlɩecHo/l:,Vٱ%ckMB5ܛ<3ǍQt#2Hla_ס,Mx&PzBD6B`TͶ\fNK%J6>&%K EMG3ϟ(}uv _tg㖑"7Va>#Xh&g͆j.'EFƍf '#X: &Lo2S1%m*gq}]F2B&}/whZ lXjtOvyBGYyLj8B\mO>ɚ`h}* -} o~7z5o/%QRbi./v<”JACQln`2n9\{M?q*dYlV/D3pYnM;ZSţb*y#ãr6-%ǴR >$.+ 3@IXT6u}}UN"|h@ L=/E,n6 ĺB7XT~W{Uy:U*b|5.- ٳ8q$EYE%A&jUV^,Yz^2O >)?F8iK=ƢVl;|U9Vl>E~f 0N?GHB39'lUwlSb~E '|wMi}B@;)He?ڴ央DB88B'Oo4q\[%p1dmS-<;ZEy5JhlK>1SE\2~T !/`,2VWOX\m]).KxqcԴPLyUx2 gS,D`߰>C;R|ĵ>OյdJSHW=<|:l1Vw5B>-s ;~낊 ip8>;n&ЍX4A$bUjJ@m }y2ŖOt/aHa+̩B$Gcz.2X%5؟}9u;-sJ之c27ʼx6k@F !7S+"9m۫ xCd<(,Dp;W*-G&"{DOD/\y1^;YOjme/lK !ᩈtTm[@;j*Rfmk&mR"./yL[ 紀Y@բ<#YycK:G 4BxOK;dW s`\j$aq%|QA~:-Tǝ0owrBPSL ^Ԡg uW:TK ?]AA5GJ|aE&@]ZP#3V%dұb?JmS+2ȉX=L_ NNr=o]]Vn44+v P 6*A;S.&c|7i=YqfH_kł ֣▨=0Ԉ #Ο%Zu+h|tFu9㼎̬i'JOE TiN8'#k>O&ct9=(ۯʛ$NR>z2󩧷)TJCp[`RMfmC.3$~1!"Itv`_} }Db%CA!( NԼ^Qۍx9"\0{U\OAwSkmlF*TFgU6ZKEfo֜ v:KV:Aկ@6䢽IgqoEUWMN% 60T YU AFqAو]7ʂI:]%t`V[G14l[WM~ɜysy9rI$S ~sP7BȠmj37p!fia&oߥw1 ?S/F P3sm~H`] o>jqP8l6T\ ܳ߭o2Y[~ f imD뭉!xēmmٛqT5Sb!w6T%4HyI>>cιL\ibh6LjB r؛)<Ӎ^<2Zmf+]4Cq#Yd_3mHk˜ m.T9%Nv,}lu4ܒI$<✅#<"ڸAh6R^ft3/ VD"a*`N;hu%_Ap@5SsCK5E[M~(UYQY]@6p5"OLx\ԝ2õN՘ !S 䮬:G_9Ժf ~( , Z#ճgB@O_>ӡ=KE|PKN#A (;xzulF(jӁG',,L'cWo: Q8b{hlְͅvM>ßP?/~< P 8luo1T )ȔF:,vtg|)bdZ]H+[q-%$yvww;!:iBK&r) m[O CT 5N7&fǼ,ÒswE^Ru9;g/.=HR Ɯ֎LmC~༇_Uߜ[a)Ugχd~ܽlf'̓IgۧT[:'`eX9I*X /?.LOʮ7~\G\)* b_KTx::tgvۤ"+;euy\/iYJh F0|Ιj34^9h/ЎOht/2:f~wg s\,J"4Hsf-DD4>g:@j1۠涵J3ͩPo2}f,{#WFn~6m H^C FG}Ň= QVs>zl7nql8eEW2JK+ Y|Wg1+^'}HrVEWA+^&^[5mE> T؇b0KfoDb~550S` uءhވ0l62/{4° H644s`Uw@n^]9; e U1[ Dfil?9sr 4_M*sEDg85^Vmu4_8F4&ƄxeEW"GoAK\?\G4AFW.!ևJ)v~E>\3chyMTѯqpxѢȗSXkv24CbWݰsl:e+5× Ο7eLI(>J+Ґyx_ Y%i *\ٙyh:2~ayĕFmmh酎fBjrCmiIVn`h9I{ ϱK~mlQj^d"jl`pC~Y=S`{?Hl@W w+W9[,@Z ]yM){0mIٗՂ>p xLPltkGR* .נ~cUD]ouG'AK yTp\rOi&3HH}Ǔ>.Ȝ=zvy&LULG Ðj͈M@ffffABZpq$h Ͷߥ]ێHzaqXS}I'4OtPSRX-7ӧ&ħn2Mq =*$ ƊEWZ@Y8ݞ F"{Y4p|qI!5&MA nziCӞKD_[鉙=A=يov0rP ɿ'ʀq9X?ݵ^j&eJߨ~{g}/Zv+7CH*5jgQ.e|ˡĺei̍BOFLBB\FA*CUɬ|~M%a0fU4CQ̿!- W @h{k8@0cژ0邬,tw5G9|{ )dow33_*: ϐDy`f";W6jZ2) rx`U0|>HF&6^*X ݠ we-&JqCG+ U5'>3(ݶu_F'[7eҰRbDalg.n ҧF+-nf7ؽKme][a;#WٮGB[dغU8cD"깽ܿ?xc^  "۸#,Kg(U`') /RDؽkv5#`^~ݤWq(j[Ⱥ!\2*Bs[k Ep9tņ)e]d0èp#DW-ZFGWj4oxKAҷ׼7yO*}Q/B& Dq%j6Ht¦5 I$߽s]<=%,=2#,.j'\Y9זU69VWv (v|4RZ/: +XsqH$ v{ȸʤ[Qou^݈0gjܼg+} C6Gk-jXԻW0Cȍ~9xpu7W)QB9<;=]Z2D#QD~'<:l#6ڭalՕ&40N=K CJZ>R^Cy \dSd:495R_\{ >&ձEҬ1^Erϗ)KN: a{5I~#UnriģL7A6-Y4xF7[45A:ciu{'uWl3h,*L#m%i"ME*m <M]HGphC oԧI67sSf&nzkϧ8{TzԎZ/*M+gvVʕ룜.uOt^^>\HJcOܐSH,U[PY2 w7Lx|MK ,6&~mQl\U0Tus%>rnԘ֟4U20,.ʨOin`\nhP:BM&!3izG==ؐݎ/+i9Sͫ7|*o^B%:31V<+"&Nu7 `K[&WX i:Gpyt]RZQ~k2 9ְi$XѕE{p^MdxM>=t_E*_sIQh{$"hq*"_p/#gu.9,Dc뒍9+KJB2iZyue )lxVS7eH~ʩm ?nF4RZM;1HO!Bf0W](%I Q4a1wC~(6<\gldk]n /Ϲ2*& {5_.1ugJ6^K67[+˪vXE s10XiGrﳓ|"R'Sbp"+ MnjA m&zjU .m%1T8 AG-_n6MV wN+^']fܲRP$8Js|t-ʰ̽"ZBa DvVg#D8i8X"ݛei@QEUb8{{Y&dq΄6)"AC\H*XQL>GWLlk賯B@N?-yU~z<CgP*jg CXJ" ǠBL?\glS*T_X wx|)"w*= G_-FY1H'Lv ՇKj&J<~W982c2q] 4wL(Ʌ: wzu\?m՘Wl(PY"E;Kj %vHA:Y}ԅH[H%QĐzb݉9esOOrƁP / !U2BaDf=j}QASc9'w+)`t_)5ݚgذʾrK(HJMpb1Th)NCuVPde%9 3QÙ;JR!Ωm:ַ2953y8cQ?E!LP3C岀HqQY]qhO]Hl$kV[v2@bzY9hjL eZ%}ҁRZ4G49+s8!8?}ʴM+X(h[fxsoXHȝ<{ n \6UR~][6{7'}Kqx2n9\{M?q*dYlV/Dg~5ˆ4y` gXu As,Cц1=g\rh?Dȍ[^087l2MJ/E+K_O1yb ;uL&n~ N toB[@Wp2-;pki>ٜ]^ć5*[/,پpo̸}O >)?F8iK=ƢVl;|U9Vl>E~f 0N?GHB39'lUwlSb~E '|wMi}B@;)He?ڴ央DB88B'Oo4q\[%p1dmS-<;ZEy5JhlK>1SE\2~T !/`,2VWOX\m]).KxqcԴPLyUx2 gS,D`߰>C;R|ĵ>OյdJSHW=<|:l1Vw5B>-s ;~낊 fxN2kmHzN>Lk_MRIıt*5 %o6>7ˎ&>&rڜvA5w*H@x’,TEEw~UU q?I|W`Agwa~gyB_yHvػnݷْs_qܥD3ϙj@G^r'iiG9AغOU@j< o_P?]%l-Dm  Gi՝^Wr0}o91(\n$rsPDFֹS|H,xn՞S#企g+p+,XIˀ.~u;'j[UU4Bޢ۰:g@gWqA?uXWӉ~:0%Mp=;Vt˯_kF$~dtTZ&f#ⶎIz a;ri>U}@Tx- =uUk&|@>?X',(L {륮cMm`',k?#CLΙ:[7~N,T_NCp'hЄyO)֌/%nm' OZ. PBkt$>MKY?$xR>ێ=>?Xi,@oR, _* P,$< vbS&/;Uj U QXz;ͯnw 1>kB*0a(;L'2>:cHxj/Os9'gL+Bᢀpa_S'B~T΀INCMÞQ5[G:wȡ lkq8Wz^9*Pu!CQQչHB(6SF` RJOE6:0ο5tܸڔ/Z0>@Z^,jIˢCܡސ% Pb PplÉp;{{;qZc+4߫8KC㜑ãkA>O.;yjk-ich3Z4 nJ+>ܬ7mJ؄ K1T8>|'kgJ~Alyu .4 qktXD51۪h^"֝&9D8j@^̽} 2}JȠێoʊ1' v!^rG"6 5ɈGV7-_ JE01C?7~Tf̎)H("=3~/mIo>U'`l9\bGuAxw;oą}UUH]A_E)F\"n"`'Ԍ@o>!GWF[> ]"W-jpb~?tUYy~{0$\r@Gɢ%[o@d>G* KKn\=%uZސےI$/255DJÈmȥbJI ՞$L]o=.ƪqVsou)`cWT U܇eUHA`]w ݻzcnV &dNtka LRj\|&=4!%k:p8N5uǦx,,θlO!mB 3sAy=}FVgmx(/p6’ { .Ɉ k]co`jSض4iorMT빑rK.O НF"k"rWGN U/\&z);lZTBa%dP?>r_=e]yhgbx!am< wR.O~Em)Ay}%Cg.Age 柌/f6-1x0xeBt1riX M 1+:N{# Hss鴫E53 ޡTA>| ]xI@O8K X<;`zvɵ}YYQ]7*2/joЧ6iv^D&×اG'S#~k`F7ߌuUh4FiIM~5pkot^1qpt ˲iύP.:tj4Q &^6!^?S;cٺzV=?qfˣ80uF9R֚䇐(w9|зXn)ުGc=j*孻 Cr'ئJV] bd_!+\CKm'^:6H ! 8HVbxGpO [=odǭ@얪ǵS^[.kx#8XI\y2P=!,EE?UZLY* f(}:Zs)eS1cz, r&blQh:X l| eEC^"l%lmDR*NcYX68(-<ݸ)2,Ьt-'oJ9t8" 2]?P~k `@d l]VCʾ

W2JK+ Y|Wg1+^'}HrVEWA+^&^[5mE> T؇b0KfoDb~550S` uءhވ0l62/{4° H644s`Uw@n^]9; e UN`HzE首/ BxpG֖g3eck'HdڦmnxML|E/y9Œ1G|4 hG&ON&&#NζACvu<Fg˃>?9ss>>`U$bpoj,f^Cd97W} Af%w d4*!<ΥzU`K祾Qd+CL w8{BtGN:2bVoMю\ѫ\Ml29!zЗ=* iQܟw֚i*zaͲ ZTiI SDhFEtwzb89)E1])LotUPÚzJ4jOF(v$ w4[TdaO=f$a-ip1ta AH ʂ[c9OBs&_\c؈ARV~5!SPĿ'YdB 7WKm)?$_CHvI^;ǣuֻՕݷ3z9MmPo_co抟FuB $*A̖+nZ_SX]Z_" zMs[(]xz:k70̖@N(y@h/.MCehѓsV/|6.#= `<*xTbvaz }43Io%a8rX+g ݚ1 "SM?v] x|&֎8 jᗟbq?X߲r%Rxq;-6 Hb U D\Mù]}[&zvU_q(j[Ⱥ!\2*Bs[k Ep9tņ)e]d0èp#DW-ZFGWj4oxKAҷ׼7yO*}Q/B& Dq%j6HtPӉS*/#"7ONAbbO "qmJ TU7b`2ULm\ DVo9zZ7 ssg?cf?M @=Zx:/zꇢt~ TG4NXܮsyH*&zj@Gȴft#Gۯ}Xb$R~p 8wsBI^Cc#=eH<\_WK7I/q[ڶ( $xvȭQ* ^uDA6I~HqbfU~`PQJ#ET8wݑ•UA%JR'ۍxV"AZն|+RG[1a؎ ` tY8m4e<7,S~Bܻ{ͤf!kH/#6$ YsHk<Ԩ3Eq<։EC)+G@PSS 0ԥ#X i:Gpyt]RZQ~k2 9ְi$XѕE{p^MdxM>=t_E*_sIQh{$"hq*"_p/#gu.9,Dc뒍9+KJB2iZyue )lxVS7eH~ʩm ?nF4RZM;1HO!Bf0W](%I Q4a1wC~(6<\fcLuj-_q{8^reUMgc^+M` <5Nk[j\ba̼l&N ޾KLF&aߖ$0&@ ӄpb|e˾LB:;R'Sbp"+ MnjA m&zjU .m%1T8 AG-_n6MV wN+^']fܲRPTMn {_n=DUwOD6,;r(Ni\ncda0yJŴYWsv!MuA™Y~151-Y'®rH=. OO1䠀K*%#l6J,r4n8:}!sXY]f_}ܨ8?/ B Rlھ!B^0/aiſA4;Bd}c-g2ȜG@YXg\1m_h93D $u,4 Q{.ZkosYY6 \2c*3bsrqii i^ɶG4V}{KQac>ML?8ud~8 zAUeЉ+ѝ[1ۢg?)d𥿅)w4_{~ gV\,y`{I*/eZ;kq2$M-E[wa,xY!@2b"kNvPoy(xYn37;E‡6%yIMwgB)E | ֡=zɕ>#ǿnY90<(LZYpyHD@."Aq4xcF;ZAU0gWS'\1+`zS k}7J+j~|ou]txߔ5+ETc"05ˁ_Eq!t 9q~Yx!_BUq_+%^$Yp6qΫm7OͅeM;/BFԀAV^9$Gcnc3F']PA+ĪXNM.0P\s(l]_%##k-Td?/8ȋc[j8{lK1' "4 d -Q[ p!iA Z\K3ۣpeogଖ| Sl㊒&ӛX$"_T7)?L/xqe_Z4֠97H0ӇxR*CTQz߈ zΐV 0t! x]F;IO 'H[Bk@4\ xYy1̤ҔP>)*H2!6VQ,pvS?`c*JfQj8iCt [Wt # <_4P<,rO"qSRrT*ŜΕFT^ qꉎ)C ;L }=B$ fNS?@GBWQl ]tQP ?*ӭ6":r? OKwCg_ Cp_HQ?ëḟTx^?âm*}ana/o v{}_DOw8JLV~"'`Bu9[)@V+~;wϞ.x ,ƼD7nm4., `1E(`Fo-x[{!-EXRDtz'%X^%%(J% 4V?8n1 W׭9fZ 3/~D-Eoi\4zmgw `lݢ#_){0tPb3{E.b6K6HJNhCoVt 4(. Ih8L&V2/Ńu7eumT[1Re&H9tw }q`%>K;^8zJVAu)WH >H;[5'ʹM}R;aZSqkEUWnSթl&<:4m 7u}';6ltԥJ ivj_zON+ڼ A n߿k @7dCxtP%))v҆c.:twh&y>!,NMu\-wVNTXSC;o&f ;٪MKROO#hvэiץk TmiMJA.&60U۔r2].ҧk9g51i4o@mRk㠡"n<ϵ*2cTWL Ǹ*mt["iYFUr}v,zX#\xJgLXygn {95G3;*h&R]GhzqeqbbwPmW.krw\:f)=[_|<ړF1.jr6}FKktw@Q"ȃ>E-19P\Y ~wQÆ0rTrA&8FtqC7N%Vc.iKC 89jhH[U{.(=F0;9s@~՘Qpzs@Ɩ`F8|Nדd\X:OUpJt '&$Z@ n榮w}mԝĽ\ D3=*JYS)LQdAU)Amjiwxe@edL"kvOddį=DLơ%#)lM V1>M#@%ݢUK%Znp*z?J.ǖ2 R3#ڍX KיMg_uƒ@.v{6s/V~Hk[µd5I0l=)eZ^1+Syb%pV\ P>QPx,Oo`}gRyJ8-:xcTd(-lz$v%.R¡MjK7UzkZ 3&B!w"-|f[иè"7JNs <ͽYChdƖOstܔR*DRwr'uX= D 3 {uߵ{Q\W=C&4.oS[ yB:H%No4Bf>iAm k]WC(Lko7BT+] #/ [e5䲮kfnA]ͻrQF$v, 7W|UWg1ѱD>x$TVic [TFȇ*8Lnl-+ OӇ5>ax{|ʧ/ /"0#隥!Sh[~܅U!cSW╅6QNAr?ŭa=àEUߕx $#M_X$$ rƌ·vKsJ@DC)mO;0bTnV9*cHQb-_.2ޮ1뤨( d<-Bt[,ո 5j&x~HM\"҂%M^[ta/ފQ_;|&L&*C/AQ՚l'0)nb= UvHmpFLk'pPfKk&u+SF<:TQ~+K6Ç% ÂaAQN2xFtvӀV=d .0l@(3F Ĉ}vbG#$U;)"?\o8A3H-m6,In:r.MJH Tޕd홍4ru}?n0?[xڛ7Q%zqbjG5ȷ"n2J a֡~j3mS/Cf |:B;uN'bGر!sW/|kIvf6ڃ~l-_BOK~Z@9HO!!OgC>YpZ ep))d1y1(|d3wΏ[6z9d2Rptؔ4"PG0}rii-4`KfSbA*&vہ8fx:@m$}ߢ5x; zWuĥ @i<(Mw?&}O3ŽУ5_N436t#&'r,n>z<^' HULj|:`[WUqYF{,; Es|WO;?f 6:oe#8$=tRobF1֌ Q0kh%'- )8z\]yԘ\?/.Ґ}dN% K GE3 My\o6>h`-;D Qm,enF쒊rn U _ʈxزE94 ĄY8)&RjcH6'I}-ӳ1&D/<@mi`ҭ-W 䩿ktuVfk}pp+.'*"J,lbJYF zra^59*d~vS^]e\٪:/oPm%) Uǿ] Y7'blh%XA?ZVrHNAC:-KȀ G5=%˝8# &TߠxބI#$Wrnm1>w`<WqJɋmpl`1{͂6H#(m %N=<+,T,!A6'r4y}-%e,h1wǥOw`Y$ބx19 |P ,{ qP~'m_J %x#uH_}V^U|"i8r?ӹ}=([}FqUKe*)>(x+|iz{ ,2?jBl^Ew3n@攧5SNBZEDKA i{wT,4K"@ID{U4cpM^̩@[ LGYZ( M{(X֢+@MD7Z-dV4;wWb@uObPxS݈5ȟuϛLس"3% mgƇ5]?s-)gү>U8]A$7ָoɢ2ՔE?:OSi,qݬ7 '_V&?ы_7uOU qqQt~ ,TC3r<"Cixۋ9w7fwb1=N%͔lHp$W1ziuyi~5bƊ-bF~~=@(g#>U YFOּJF]EAhoezkhIcHC^^RGgb|qKpHr`hBz%Jw;"@kOgv*-T Uz";*BAJߒ5D|냽P=G0.G"\[ 6I5(qJ@ 3 ݙoc,;@,n!p[#g} ,RA*(CLMbK&pv|+H :x* #B#lQC6rDdjw Ăve4 |h^0f`]cZm$z4\5@g(CU6>@De`Z oG24;HOONe%mdS/RQ_0,8 Hb"VŤoǣv o7Kӵ pk2g™=Z q~'Q NnoJץ^X|;:)"HhWZ'vm0Xn<RgxUba.Ks&G&qȯ`D )]99BǸoʼn!6p@\Rԁ %N4Z$UnHW$π>+|I|ϪdEe;nojl㵱&;w9ZgJp,}Hqn~x^15\5"uLw_)Ο2!)やnv\6V <=Rd@-s&_Z5b*Aǰq#4^b ?p,@ig/ܧ!\>xC.L4tcfC7@>e=t;`X~f`\uݷM0BVO-7] sqABN}(,L .Z)Jϼ$b.V}Âxyoߧ(s75k0Q%H6f[Z>sJ02VzS*4$زkF9[7VFůFeۙ4wFIS<{S"cpOT,49}BPe }/Ut{d } kj KbwV~8͌KЄ7 D(hTxW]*^\)E`7YKz6t|U&B hCړ7g;=|J P/|fN-9TR0ZII(CCE_:s5RoHO ңgA]廊m+|luK7 @'8;#kxM1t\esQٍ|8SN6.=+J^C''Sq鎅dwa*7 ;ɈDvW o(@F).p%Tj]Rq*5ԜdkH 6'?q2B/'vu$с\a?Ofp x7DSϾ|-BiIXʻh?lwoO.B 'aI۩} ZZZɻ$r?bKXw_<(7@R,YQgʲH& "0-Q3KO~#%4B`ͼ~tl`ɸ4$..5PޞcIZ}nևF1 i‰`4 3MU %ۑ٥`?!HkT8xc*p "ũ? Aؗ!Oj=P$dٻL\??@ҁ&:"?EJ#?WwI4W* MwZæ骒?6 k+VGh*d~(i}$ )oÜQAmUz ˹h2d,q 4AI}@0xq'Z@GUpdۮNV/d:cRNCzHn˂bp<S)m xlX&` "hF&7am~9æc{b t-.lcXKF݄*0nNb} NKf3iP3Olbp\r}[0(YdvhJIsϕHdZ,QBTgUT bW IƚUcOc+u4-r!8fpIP>9c(2I "QFK( @"K5.uBd 4FP kw߸|hrwQ<4So7ξ)sa i4r:EHSXI `иUROVkdBW$R877eqyHpT· RA{5A6<̅ڮp 4֘č@CŪ-}t%sicf h'r3Uʧ;c*J|Gs66Njm7&i\5Jrb] :fyͲdba-Ӝ[ݰS^Nگx11S1ʧ 30-% kl{wrK1(ay^A,]Ѳ u~#/H%6=T\$t-,;ᒣnxlO64x\\UVŇ%1 nr9T$A}/#>`.Gch|DEA'˾ m/f ݜ4QE/zܪ1r8~є*0BJv=1")-rRCkiPTyDZQSz~{"lX{2%Uy %KjZ 2!|4*r$aMq+d-Şz2Ș0j@YiV:#`2\J*3c2!l3D3/мCɗ_^xVw̳\Q߱8X.YÔׁ0Ze5axCʢ\ :ʛ\H1sI5r!_2NK%e/w|7К1qJ$_m nܮz~ 5{jssY`?o0)8ԩ/MR?>B ,4'CiPwdsx<¿1T?A~iQrpTe >hpy?8qdp 0M B3=!%U5KDuN3Oӻs>kn:O g}2wvͻЁaa}G.%GplU}]Ύ)/)6YMq6L)U3=4A= 0# (+k=D9@.yr(!8vn<줾&s:ө"Q}rai&j[by]%?}I^_kaׅ{«6/b[ ^XmWS9,V$iջ=_1LcQk1uE+f雖 EٓIj?SDba$(Jk rml\/;e0`EZGd22ߢMtrq=ا+G`ERYeV @'7?dV ) m')D z0yQT|;B6(&k >eom˞ /z>`\.*%9GVTd74}s!\M`Vtz@t2I4Ȋ ae^V@_dn"-;vRRL0j~_ZqCAܚ|fР8QAي<-PYH;Ngjq#H[M|(3wǯwZ6媾0"Ge4o7;J42,T,: Mȿ %vOy[0"}Iwn˺Ra&{Z~!Q%DjK:M']aU4 guJ?!ctUDp4gvhZt-۲Uџ491AWT(9WqL_PBm:@s[l_Jp/3Yӥ*}P\0LWfӎ*49 ;H'km?A6Pu,(A-i2l߃:=^]sa=Ue)l&vq|[1qt2:mn+y^C1J.WEIos VCt6Y5lUՀ*ݴV7朴5f3|sk{4]MYt14I(LC4++.靨q=\å[䬋,vr5C)Za U|N/ 0y>.=d瞥X]mh5p{I_.5^C~I1;OM5K3PlE)#{ q| Ê1 Ya v"0 g$%A^Ğe7Qfc`-+dD-Ko `Jzh PC,dܱ-<4UНbd'y]ꜞ(76q*wPc|_D_ ɡb4rYX L Ed4|VBloi{t}mH]Q@i3 NNG O2NwL)Ėg(lq>ϻ4ɛsu IBmoJSxS86E5`@W)xlig#'fbj2).D{^M0Ax ڭNt-;~ cBo-SExYNNj{mtK`l WX+<ܔtS ߅ŸmqMHXGLܵ@jG GVX[VɚGJT{yn}A\Ћ)d,+#*]bC$E3M|L?חx%("TcHqI {ǁ;.-|}XIe(?9MgQOiؾ_7GF^X盅`{SCͽ~h+p׀cW[6h}`1L>vބ^>c<9GjB,Q3늒_ho6$W "p]a"Rހ__􇌅_]YEt=SaN\}B:LXe]7 ]*+Ԅ,!/ZVI|Uv_X=$`tO,i+ QzeIӨ1gK !Hyo8'a ( #3 䦂tُoY2^C!5!MGE@Ai9u4\eLsS, lӱ|Q=ͤ']~Ovײ*ZΦ1I՛"mQ @@YE Cb~1/xk?k7_byY, !å\&tI7c^i&X#+-xw|hag~! =J_ȩ\ P5ݘO:oVJ [5mߥ#1G:\nK} : FIQP+p)J /[\H`(hmb E-&RNmw̯$F>{?c:࿕د9:'#T6uK _۳7-F`zLr.E,eQ3Nz"$ |'C~g+qjM6^ 04n/Mҟ,KӍ6.H_N_çᴟR(+?p6T9oQ?ë_Tx^?äx6QkpH {k ѿm_tvGInm85U#Z{z*_ȧ'/u*B"1Om0"K6&\j~z"'B#8c6ׯ'8n7 LmaiF=EZXδZV23^ɽl*cѻ%kW>bO8|n5-o3rdU}~D-Eoi\4zmgw `lݢ#_){0tPb09wQ_Es`Yhx\օQ%h3-IN%C4.JW_%(=4zRY*jk]2 'Jf@&*n,C5*t] N 3+a>^NJryAhIV֯pqtΥfA >mmw/F5uJws%A ZeU]]e7A?WHbY7!{pZN;*qR ! Ħ+hOwOa ȕ 1NO58cgnq"J dzX F=4b8R>)f^(' cLZ6xu=R4H:)r){Kt%DOPatAwSRFzz˝%97cb!&;gJ%RZŇJpP([C&[[+l09o5_fecF=М$Y"o(Zy(>l¯pB|X<^OMli| F^~8]U RYU]܉p[MpMfJf}4g^-iY)W=3n ^R>׈84a?q]t$RװI-noOGhzqeqbbwPmW.krw\:f)=[_|<ړF1.jr6}FKktw@Q"ȃ>E-19P\Y ~wQÆ0rTrA&8FtqC7N%Vc.iKC 89jhH[U{.(=F0;9s@~՘Qpzs@Ɩ`F8|Nדd\X:OUpJt '&$Z@ n榮w}mԝĽ\ D3=*JYS)LQdAU)Amjiwxe@edL"kvOddį=DLơ%#)lM V1>M#@%ݢUK%Znp*z?J.ǖ2 R3#ڍX KיMg_uƒ@.v|Lg;PSWWAnJJ|.ZN9^)ANvgZl<<ܣz%%RΎ hUcͦn'xCFn@q"'1/Ne. <(ox `4[!pjmճg B\ γ* lSJ^9O_b2ПWĝ6Nh&tK f|C_N6[AQڨ4CJu3 {uߵ{Q\W=C&j'֦,o.֮ܪل |Vd{Ï)A2u~#rBQ _ǁ4n-'rI& Oh %tt?Az JJ46g h!VO1xh*6 83ei 0pZ"fyX_is"xK#T̙uС-BJʔVBLar8va2e :UBZH(ign;NV XCneޟX֪?I$YEFI ҏQصqU l7EP.;xO : $,C!52>xCt9z h#LD¸Y]kmKkh.{\cAf Z tamNa7p4m--ꙛ%J?Fax{|ʧ/ /"0#隥!Sh[~܅U!cSW╅6QNAr?ŭa=àEUߕx $#M_X$$ rƌ·voԌDf:IjBI7:mc st5ŸV]k^0=bOa,ZH4z400>L,S'hj g ], #W &i ϳXb?tR96:tNm b~)@ZÍB9J*jǧB8 $dmkT~1rUtx۪DžU} ]Da=]jC*ԊW0`'%;6.U)!T ; E& uک2QwrLo+n$}ETGAӦC9q`zL[ͅ%[{C1B]ǚⴛPf}x4^VmcPݘ Wkbv-l,҄߉J#;H8$ rˎ:Rň,XQ#u#;SG b>D<(A лgm~8QHꑎ^@p jN%9DYm;6; 5|O u(9ڡl#\GtC|c`XM 6T@ 7oD6LשъD >7NCnF{ǎD*lv\O (*jU8|Կ1 $kܟI[S5D+;*} k(0 T1;(' RPBak y΅z 嶌9YzAy/ $UHHl.A? ʸt9Y0Rig%88٨[5 XpnL@0@/RV$uKA+ %xTɡ԰މ9P} (F|Q~"I$%5&\pq1Uo;1;d2Լu4KC0P8Ko}9GV=Cb*AL~]`A2H؝S,:9dhtJ~ۋk2L\Kb/&Cda {" mgX/~RnhB-b8{!p̶6M@&ʤQ[~V͗y ވ( Łf朠i+/O2Kb&xɠwu㩪5vnjϳ$0Or.Kw/r"U YFOּJF]EAhoezkhIcHC^^RGgb|qKpHr`hBz%Jw;"@kOgv*-T Uz";*BAJߒ5D|냽P=G0.G"\[ 6Ij])^63 N^~e3 TUk'u N>w: ÕȲ gZ@b9ENI]̵C^&wV/ $q0NBg l+ӀO<4aS]Ǎo=fE7֩DBl ʥ7JhOIJIl>}WxU7o\?R +HVΛf t zn [6rM$NyNBS &R8"-xG 4nàdz/p_3L1|:~XO4Sh8JsP[TD_Zb=E`M!! (?Gk<=f<ڝOë}&t *4@{3N%!nѮSaiu,ۄ28?>d{ŵ뿥-HE!lEXQaAcХ(#M 幁c-~ {|vZcdĺEWLl1FjJ_5 E.s. ^5=Gi| >CS2׍J/@H)έHd>󡎁^mG- h #mc I,= +JDBPe }/ups iTS Wʼoa_[Ro;ea!sVrAٌirl&G|G]3~ #~faRe<^)}'֦ VdG53}xXsܨ$D(.+-QU2dwï= wȐ aOyn3q~̀R|{SH7q[. >m+|luK7 @'8;#kxM1t\esQٍ|8SN6.=+J^C''Sq鎅dwa*7 ;ɈDvW o(@F).p%Tj]Rq*5ԜdkH 6'?q2B/'vu$с\a?Ofp x7DSϾ|-BiIXʻh?lwoO.B 'aI۩} ZZZɻ$r?bKXw_<(7@R,YQgʲH& "0-Q3KO~#%4B`ͼ~tl`ɸ4$..5PޞcIZ}nևF1 i‰`4 3MU %ۑ٥`?!HkT8xc*p "ũ? Aؗ!Oj=P$dٻL\??@ҁ&:"?EJ#?WwI4W* MwZæ骒?6 k+VGh*d~(i}$ )oÜQAmUz ˹h2d,q 4AI}@0xq'Z@GUpdۮNV/d:cRNCzHn˂bp<S)m xlX&` "hF&7am~9æc{b t-.lcXKF݄*0nNb} NKf3iP3Olbp\r}[0(YdvhJIsϕHdZ,QBTgUT bW IƚUcOc+u4-r!8fpI4 jkB $oZρ3?ۥ oʽvRM{7YۅvL :jbf..*r9C+yb|^_i]3X;ؾp04,`|ZW > QXhZki֨pڶQX)$Zr6čHL'[s~a5*$]Md:((H,a(t|^c*J|Gs66N:jD `2W0RPU8 ʞ#Ã&|!e!W!@~Ғ9Nޯ<> 2d ƃ&&ÿ_0:E%S͎ZFH&Հp,'JlzDImJ ZYw%FޙRx{cX3Dr=kcjvR:LXړr!-I>;?s֮Ge-JX7pQYT(}skEeG-V5u`ǦR5vEJ2HF;-| H  &IsvJ/ U2Xޛ~Hr@|&n}hidA8Ǘ61 7qLv\"Ijl|q1QUeϯxD[I%;ȣRLOuū >>̺dK>U#7_N%-Zk$o8sԔrmc˿ *_M&^D]oΦ:ARFQy npdzth+CmWxǦ ;)HJu/{KbD^7mCfLvB Y26 Ro-a3˷7Hk=-6Nʻ<딳[Su58\g 26E|yuSJR&p m_0V]x޾@!`Ͳ[9Db%On!@%!w=ro,=w_t#?^fc~k:?7>fqL ,4'CiPwdsx<¿1T?A~iR-J8ΜeC -8ea{js^q} b٤\eZZeu<8 J9b~ПMoۖ὎<(4T cҝUmQM _=WwMnWn*{ Y͜o L ;g<sp݇4BC.]sBQȫjIL8؀PR%^37B_BJg}ۤPg}o"%8W5̶D z._H zR r;&&_5`^q\ADEe\[pgZܒv_gOU;N"z:@J2P)8K[&T0PWeO0Z 9>19 CX¢r=3w˪22ߢMtrq=ا+G`ERYeV @'7?dV ) m')D z0yQT|;B6(&k >eom˞ /z>`\.*%9GVTd74}s!\M`Vtz@t2I4Ȋ ae^V@_dn"-;vRRL0j~_ZqCAܚ|fР8QAي<-PYH;Ngjq#H[M|(3wǯwZ6媾0"Ge4o7;J42,T,: Mȿ %vOy[0"}Iwn˺Ra&{Z~!Q%DjK:M']aU4 guJ?!ctUDp4gvhZt-۲Uџ491AWT(9WqL_PBm:@s[l_Jp/3Yӥ*}P\0LWfӎ*49 ;H'km?A6Pu,(A-i4kh'47@hΏz&K\٥ xR[f9O2Ѥ녞O#1 ?-3/y2)WRcT]XgB0شh67w'=f<&&L fBiyhYtԦ$`Fa(™֛EǝvViJRZKO>Jg2~+C^Q* Psݺ'A:\:'ٞ`WD?LYӕn6T!zS@J~4/ᮻHO6/$#EGS{#NË[MK<ͻ :(.#pוH$Rw`랉I\ٷUHPbʥ'P_4~ }> gSYO5:cs#uE@yJ /6]hm]?]AZY$8px9=.Q&r0-i@(.̜@/]y ֵ?(ǐ([8 G1B "oAdQ& `#xSɒs`y Z$L@.φˍ=<8=œQH"Wt*5([`%*Oe+>oi{t}mH]Q@i3 NNG O2NwL)Ėg(lq>ϻ4ɛsu IBmoJSxS86E5`@W)xlig#'fbj2).D{^M0Ax ڭNt-;~ cBo-SExYNNj{mtK`l WX+<ܔtS ߅ŸmqMHXGLܵ@jG GVX[VɚGJT{yn}A\Ћ)d,+#*]bC$E3M|L?חx%("TcHqI {ǁ;.-|}XIe(?9MgQOiؾ_7GF^X盅`{SCͽ~h+p׀cW[6h}`1L>vބ^>c<9GjB,Q3늒_ho6$W "p]a"Rހ__􇌅_]YEt=SaN\}͑p~05Ҡ2V߿@e,9b ;dI~G$TI:*'#b֢M0E^4Pz7xbUH3r/~f ]׏P%l t1ba _N1f q#41 0ԟpp!L>u`ۏ$~;|=4ͨu= ݩ;`*LÇUqb{ws<P GqF쌬Zۜ+euk7_byYDX;_Pqnb7|(dcZr1}$@ k很v˲AtvJ0_*\ P5ݘO: fl-F;j9 2CŒs_]WaiQ$aĤKx_[#u^m*-5yfgȰAs /YbNeѝQ)~@3wY"M#,0Y RDM dLjK4ĊC~3$=T]7D)ӻ)@@PyxO*-5=Ob?ԥQ;Vm`|#?iWOm:e?/ڋY>o v}}_Btgѩ 4~n**WZc5@zjt"?dC5]jLuR:w:i'ohyu#TgٖɨrLaoMKd3 Fj͓Oo(UET6bOJ)[ [9/G|xl~D-Eoi\4zmgw `lݢ#_){0tPo%1M$@m#;=g @JYcq!$s"c$QFY٪OXK%MMw+(? N\CMXk;= mY@ uQ|\ XZC!z4%S}Tg\M3OIm\ܟ4E}WQ"j[oRw6?f]]e7A I-#'=_[q^ `:*'v+F܄f ̰߆{$(U̽Yo#D{!!cm"LL]z,YCrR2EsyɅr #/8,^N#GZ_C@ &<& ?Y5^ xvo{ўg0Jds ,Ѷ~m;:ӷL<6~71L$`5-muBÜpO5[MqH @ f,@  0DboGhzqeqbbwPmW.krw\:f)=[_|<ړF1.jr6}FKktw@Q"ȃ>E-19P\Y ~wQÆ0rTrA&8FtqC7N%Vc.iKC 89jhH[U{.(=F0;9s@~՘Qpzs@Ɩ`F8|Nדd\X:OUpJt '&$Z@ n榮w}mԝĽ\ D3=*JYS)LQdAU)Amjiwxe@edL"kvOddį=DLơ%#)lM V1>M#@%ݢUK%Znp*z?J.ǖ2 R3#ڍX KיMg_uƒ@.v|Lg;PSWWAnJJ|.ZN9^)ANvgZl<<ܣz%%RΎ hA<=06s:6^a9"[z-`=OI)8)~*YqBAZoX)\Q2Ss7I捤Y/,}_yYER$ E@eO \l}}[>Hk ہnVF+<꠵{~I)1~Fr\,.KD@{B<:H%N[%BTCI|/:5À.&l5cVG5vՃ%4FK8/8^;P#y0EN6GS"[A39i|YvAE:H YAn{5_쏺>B"gEs,% BcR_Sƹ+aF'wIE 8cV#yhns?s(ÝL/I$@AU1),ٯ0I5Cu(fX FS>$=k,U~ }O_џ¡|Nltߓ]fmK -IPљ$зoɚ{dW}u傼xm31BGfkEsp A:Խ8Cج-4FW$Z UtJpk#`?ĒsX|t@rXiəpSyC1!{{ML3AOv%VWt蒪JV~!:uTxg@戜`[ERc89˟_F0nf\MO)WrYR~̹}][YJ)bh $&Tax{|ʧ/ /"0#隥!Sh[~܅U!cSW╅6QNAr?ŭa=àEUߕx $#M_X$$ rƌ·vF%U*.P(GC$( e/k_[DN1u( s6 !z1Jb!N%'/K3l=^4ů|-1V4Ѭ&=g&d'?HCGxδn$}ETGAӦC9q`zL[ͅ%[{C1B]ǚ$XbwiS䁌<`ЍiKmL$G1MU̝ٵ?+`Y Jrǿ:~cD5_WTD egZ;. 57 -t(Q,HmKM $+*{rYKgr'.0JC>ɉ+迓3sVHJnlBP;t=JTE{acOÉ,6]&5yy)p(e nqQZ!ޓ,'q'ٽ)T&4N gU(5{xpsTwHeXz"/>i\ ߓ1Oa!Jۈo[0 'K<SJ`TԶAVu5C6ov%aM(0 r-5(D $zsw2ו5sZk#&40"2v3DMRE{C5qȜ'p#P\9E<@Gy- nʝ`Rc[^GH]rR}|\2:'Kz'wiD$pl0ނ;.'x)7lJm҄cYYQ^"m>F{ǎD*lv\O (*jU8|Կ1fd=T`1֤{FXP,a!&ֻd>grX rxn0Q6&N2|癲fcp_kP4H#!]D,Z_ʁI,mV5}4hTp.dӫ>.X !${>“P2k5Wl쮖pc0T~؃R8@ߒ$SXHa7ы_7uOU qqQt~ ,TC3r<"Cixۋ9w7fwb1=N%͔lHp$W1ziuyi~5bƊ-bF~~=@(g#>U YFOּJF]EAhoezkhIcHC^^RGgb|qKpHr`hBz%Jw;"@kOgv*-T Uz";*BAJߒ5D|냽P=G0.G"\[ 6Ij])^6K hP19Rr}C,S'kA\N"Nu N>w/y-c}"nOSI- VsA0))?(x Rvr]D.: LU}CMA_Hְ83J[hZM Q*roqLE 8ge̾U-HIвTE|}MVĊUrLL ab DbPZlmȗ"0GY۽?9$ i"bg'F)#ck2=k/E& fS?,ey')%pD&^Voȭu_S^9_CZ/P}fi^\@*;KĈя`Fiļ.6vXr_O9-.Űz\PUq>d{ŵ뿥-HE!lE%UV-ۤnQIWXʨ_]1ݛG5a N+螱̓$=/~@6=imgO.- j:I26kՋ{v6ؖp-P;I~s!Q3V#숨Em` ]nM"&&H26^/t.Bx2`iHhrOW.Ϩ IZzʅ,IϿxeW?.@jY="ů!^,80tBMj糃 U&5=3Efo{qԊRζOϭC.CbK3fgYó90CSmv4߃j% cO?joLkQLJHJEm+|luK7 @'8;#kxM1t\esQٍ|8SN6.=+J^C''Sq鎅dwa*7 ;ɈDvW o(@F).p%Tj]Rq*5ԜdkH 6'?q2B/'vu$с\a?Ofp x7DSϾ|-BiIXʻh?lwoO.B 'aI۩} ZZZɻ$r?bKXw_<(7@R,YQgʲH& "0-Q3KO~#%4B`ͼ~tl`ɸ4$..5PޞcIZ}nևF1 i‰`4 3MU %ۑ٥`?!HkT8xc*p "ũ? Aؗ!Oj=P$dٻL\??@ҁ&:"?EJ#?WwI4W* MwZæ骒?6 k+VGh*d~(i}$ )oÜQAmUz ˹h2d,q 4AI}@0xq'Z@GUpdۮNV/d:cRNCzHn˂bp<S)m xlX&` "hF&7am~9æc{b t-.lcXKF݄*0nNb} NKf3iP3Olbp\r}[0(YdvhJIsϕHdZ,QBTgUT bW IƚUcOc+u4-r!8fpI H,;MfVdX #I(KrU:J`]ڕ|)lc /@NelOvZ]JoOD $QU12+J쵱ƚ"FP3`(cw׻k#$6bw+AziNHk "ۭi-9AD+D=ԠpE :(p09415􉃔p4AǁuTy <Oll(tԆQ;F77b<.L_|5QƮ"mQ~0#M1ioYjUP_slaOȨԷ"!Ta~R| 1B5ǥB##APVotHu'JlzDImJ ZYw%Fޘzj 6D ^EYi9b,wnhZ!)7Ć(T G~z/$zvXH]^g9m`>#G1C9ra"i>OgUǦPgR5vEJ2HF;-| H  &IsvJ/ U2Xޛ~Hr@|&FCg@&@n?R3!4G۠].(Lk6 HG5w4v̓pF=!een)嵯>2ZuG'L\4#Q麆GSR,8%P@MVE"*p] eJL\""%l!й&[R*Wj Ɇ:ggw"22ߢMtrq=ا+G`ERYeV @'7?dV ) m')D z0yQT|;B6(&k >eom˞ /z>`\.*%9GVTd74}s!\M`Vtz@t2I4Ȋ ae^V@_dn"-;vRRL0j~_ZqCAܚ|fР8QAي<-PYH;Ngjq#H[M|(3wǯwZ6媾0"Ge4o7;J42,T,: Mȿ %vOy[0"}Iwn˺Ra&{Z~!Q%DjK:M']aU4 guJ?!ctUDp4gvhZt-۲Uџ491AWT(9WqL_PBm:@s[l_Jp/3Yӥ*}P\0LWfӎ*49 ;H'km?A6Pu,(A-i4kh'47@hΏz&K\٥ xR[f9O2O9Vi4zgHzp3YR~"OA|5׷ʀ$o:S, 2#)4 怏Hǵ[6 )BOˠ@V+7;Ѧ-@M`xcR)j^~T4T2)|Hgwqk٠(Ăe(9sG_-T/qP͋.zba]81$ w6T!zS@,$L;_*~?KJT "pk덋<-cNOK߈fQ8o;uXNw@ێ3A$JlڛҞzGseG[82e-6r+B+>þjәK̯*-{ F$E))mI1sa~yy }VZ~]N#ʆL GB%#3蒌IYELՀU!HA;PQukMv^bywp"(pS(!=EQ A< a߅L@.φˍ=<8=œQH"Wt*5([`%*Oe+>oi{t}mH]Q@i3 NNG O2NwL)Ėg(lq>ϻ4ɛsu IBmoJSxS86E5`@W)xlig#'fbj2).D{^M0Ax ڭNt-;~ cBo-SExYNNj{mtK`l WX+<ܔtS ߅ŸmqMHXGLܵ@jG GVX[VɚGJT{yn}A\Ћ)d,+#*]bC$E3M|L?חx%("TcHqI {ǁ;.-|}XIe(?9MgQOiؾ_7GF^X盅`{SCͽ~h+p׀cW[6h}`1L>vބ^>c<9GjB,Q3늒_ho6$W "p]a"Rހ__􇌅_]YEt=SaN\}YDw*fFf&Ge7^#73zxHl{hVT6gW:K8g5`믘@[xˑ+^E&uyП*YOןra|Q쯏31 CE֯A 習>4RK9'W0I#k-[:ْoԆl](Jݦm3?U4ݎ؆"A>2R)üC|˝ѣevk7_byYDX;_Pqnb7|(dcZr1}lҋqip*T8(|AօiC( vZPQh1ٶmW3k #wy|/D 0 'ۗ3EC`iP ,OC]⥆b3fs$jX:&D؁Ft>vn(&Js$&%C\0C:;'J?K֑.8tsZc/}R" wZv/L$c Lqx+X>|BT?0_*> tWs*`tQƒwQ ´*||YQ}>Ak}_¨. U27FjU+zcB"5&%uˍWr#1qLhc6M1*ѨG1*ʓ9Ys*.PM"oB…qўPvcb.B_b2.9:}prVpɝP-oZ"3Jy|h@L:^U((v\I_3GdX4/ϗC3+';[;φ;` o"Ds\ǯUeRI#nt.%u&,MNw- 1j.4Q&Hcw^H|bv@VIiUӭjO< ^6dSՏx^'+10c'(=P ngswe8# ĀV o|3@G -p<@ʾ+f!'>(w? KVG DqF_T 8' uOwf7j)ig{4ܺ)v@d3x\ƅW yn=mqh_Qou(pk ߙ) ՒCyh~w跭؟mw'e~ b72rQ4(i(71oՓԱ!!UeVoH)ez@a|:"g&pZ8 pp,Eey,:C?MiԻ#A:5ZAOfV ;>ZFu/k=-7[7jQOw婏;H VԐ"{z&'{1j/'%NZ^(C-$_3 NqOhHExVqS\w5Z&:2%ΡaPq)>:~f> l >&!vw[G$bٛ;bJ$) $sˌ!W_ו&Hkvǰ>fBo ݁M¶LA kμLZ0Ir!Hj掅9@$ f{1~f,x/㵦OpmG/zA ѨH'qT,bҐ!4= =n!` ;Ϊ.Et$ߚ ޘ8Ⱥ-tjU]Fb=J( x:%{ȉ) DB%~2T: O-5һR+a%Iq6^”x[jw!LG}6>EOD{+e[!a7fĮLB)[a]f+A8P1WBZ !ij63p."'ƾ3ET؏TlT!W(Kwpb ̮#5nw:7%1;1aI]Q-4zDա#XAZNPv\T[Y Q^x,='oMR C[6nmcc.TC/sy|;#&uwCW@;`&yBŵ[OfBA (=F}KE{I展)I,*{w@ [ahZQ]E܅WŤTWp׈? ۃV-BC3Z#E40H\*qrhK;6$@D@f{xXAXhJp?%o`ȡA2Іvv6 "v }=kG(r`_sC8wMYAbHIa*A 1u,Zj}{niPkUAD^4^P)"JX^dTjR=ڿv[NNʘ?%@ 3?]~nlM7T0 Hr'Uۊ!`K qD6 \%rzVJ KJyZ' ߔ " ly:|-<͕g~wt<(g's(J<5۴x}-WC& /QFD#~wNjԎ~Ɔ[K1n?R9ə/ڬq}U| g). R}.s$\RU "Wq,J6#QHϭ}T͐"[7% M)ڭzʖ*i(U hcR$Xm{JE[k}잪EbF kx3Q& s/Yደ vTt7zi_]@xdgJΒGSa=MZVYk=%K`W3t2ZX4Zf"84i׶p01<$(aoCΉX45?8QIkK=Be|l;5;6`k~-8rSh%1"Բ?lQkD[j$+h\JʃmVlܴ'a*@ :1Ǡ7 x?>,{"hvK5SQx3& D6Wq[K1lAQ$+|=q$|HQe p07S=ʧ`v|~&/&/̬ ³}_xR@8uO{֔2 ś~BW7>7+ H_`Ғ[8y/J p?;’k2{.,KR:ҭjQeV/뤈hzM)h/̫;e!bJ<-J`wW>D 0ԝwx߽|p>x6qiQbJoB~LJ_}{BD-;&Fq1v> \*@3bHR~N"kBPtQI Q'kop¡TѨs:Y$_(nMe ,B)I}o'#Ǵ+F [5Ж\(O{wûZ)WYw#%,Zxj!ث]')=lD3]. Ky&ށe^ *PU^52`] omפ҆.=+s.6'tQnd7UXNQEƵ"wIEAQhCuPE$kX'tQnd7UXNQg>T.~P$^ ހ@WK  +6!δK/P)Eݦ/u, Blg8[e!_[X`y-``y-єg< ɥ6==$2u"lsmۅNj;NX՟E ̺*o*^ r33Y*{IotnsF,)N<>|VCZj-!^ yPP~S8;O"=Rv,+Fo\yWrǜUVEX}aUVEXfwW}}V$Q_~_:EXQ*>*3;>%$_~_:EXQ*>*3;> ?QvfU9X-#:~7϶M7ΎXY5:) ؏,5aP֬7bU>dLUqH=T[AkdaӎtE@83 ,mFZ=j:2^zSrǜ* ;Ʒ_7;*_T܆˚:E3"$%q+9\yWӯ[u|ޕJ;\ 5:E3"$%q+9\yWӯ[u|ޕJ;\ 늻:E3"$%q+9\yWӯ[u|ޕJ;\ tZګ<Ε(9@L6=}Rxʪ[N+mDqrxל ?\`@ ⪡Jle>ߺ*α+~딡^u'[\Le8d|O6'G'We7!+Bt7VCLqcRkF7oUo?Jl'${k?T{oɯQ/%f 90RQ_;TW1,"K88wL5Q:GCw3}]"ڸr؆ f_ؾ>n*]8-}R2ٞLTb*PHTMHd0lU祘<0 C_YY-KDqֶ`i蝁߰0?3IFF9\bb+Vý bkѡޅEj˰tgxV?C7UJS}i,|kĖ"X׆9ͷ;c%xcؒZK9PWݏb@jٴ4-=7sţ96?Khj? p'OQ`qS|J6^o=uUaʅyobuЭ/\ Httk1.!p1v&p ~byղ`Raݶ;o]S8gG|8?RrQ)e]\ p,3?8?]|6 <0Y*|7ĩD`%yod)Jz T\ p,3?8?]|6 <0Y*|72Kf|8?RrQ)e]\ p,3?8?]|6 <0Y*|7:[s(hLtZ+z]#<U9pCxOY- XvA~n&?Poǵ2]C)LgЃV"0$B76%tB|.le7`&7DǖEADpZ]+$JM@~Ջ!ubj,&ubj'Fc'>~]̴JcJ= G@W\a|Z_<@l!WVVa^-ۭ~cr*hJ<8;\)̾دQ ȎLem' ;L 6⁇*1^ ]a(9ʽTRׇ"^ SӍ>欑r~}sE5;PC8_AӁ-Q{rrIEQR(^ZǬ-U߆빯_-̎b  5kzTkwU8LSSxcɉ]ogYhU>G> I=Θ;!Ѽ&%MQ4TfpиhU ?nMr #(I#'뫱sQxC Fg<`8`XDk 4 :!ߛXi'aqυt𤢖JE|QϳDh.ڷ60ʁ45M7N^3@6d w s4ZIC|qoyh6KrUEH^kW#{,o׭yІG+xn ^7T3) W7 !5_}oybX9\7#pp7hl8z}ߝB.a&ѐJuOJ!}_"gՀ: `rCUt~b>Vh@W>4x? IRfE(T 6F-k!_ųUm}qlTB& H(*߈[?@*@h= vqFԞҨpZ#~XG$؝!3^,/ !m di;^ۭ>NKTȆvf0ywvq ;lLZh)iРh5BxH:'?؏D &S[ĚAP}dkxRBs1,Moimx݆1U FRadk6[1 ~"c 5}ea! F$j5?㿀BA $%z0G|߇a!a G߇a!a P01N#T&B,da̒^%al9.W]ŘatY"f2ڡ. )rrkL)|O?W^@bj$HKnǣy7't_.˨d$6i F`(@SWWxS22ƱW%aX)) dܓNDUUVaB"BOB3LLLLLiGWX^M0LSTNA P&&&&4̫10LSTNA P&&&&4̫8Z*|v0h$D9a}UgMu/Љ2˅c NjI6fTs*/^nK&[@NF(,O-i"r|6:N305l}S{Ac)x4oRS g6WNx̷9 9-lP/"5P$`Q"nS{ {+O),%ȡ"^DjHD:ܦ]W7"RS/"y#r`ev#\܊w^"VQ.C_x%dSmIVᅱ7~vJB]ȇ-FCۜYŠjFJ7xk6Dq@vPZeD@pT-p{^`'^AvS u2Ř{"bWPmIr#GسdWLYM)4.R2H,ţnGlJM ҂WJi!Q4C{Vb W5 :Yo <2i(_M#bcKW 2VԂ|L1|.o_5?0&|<zcFa^qbD=R})H:fbiX'Pۚq儤q.꭪~EV e^vL0lWu][T>@V&a/<gs,%#XAwUmS,-Xa(c~O!Ng$P{&?ku[ZΣOih(gr Z[8[XJyQ,~ ZU=MQX>X(n\Tͨӳ2m[iG${]h&s0' >< ?arFuX2 "s9PFZQMhϭ#Ka J)y ~RBҊkF}iB_K%Aȧ\0S3̒ZےDG {ʷ!>!K/FyV^C/p$y>Ω"Sa0]niѯM5ccS3!_|,vQZ3u&7">[SPЛ&R@}ԷD7K}Rҝ߿B !7/J +E .}8}#k U-n  j)l*#ҤRT)Gx*9 $qYM,C떵iQoHYa2<ʀ0k@;+QrNh.+ PKBa^ uw 8+J}#љZW[XD'BҺ@ĮD3IM,eB/7Tm`'y7ZF0+BGcLHF(j"kͫF'0 E `4P-@5G5D >2& Qj[D}SY@, {!xj-Khk?؈}ZeULW m Z JH̩ zH mG+ Jņsxhm5 N>r>)JN )*NRU*SArה`^Ƣ|5Gi,MBJ_s)U u17p~^:+x|8C[-C=$`B;?BxJ!C784csэA[{ -pb2xy4?ͣ ˜3<7,|IuiI8Gu"Z 5赹22Y=\/Swj'l+.vUMJmFM"yzz(G?Ahݬ 4WX 6]ۭW$ A040RzڟT9l6*K9b5 퉕yӀ11110[ʼʻ22*ڽ>`N|9 F<l`G]^~U|*IhVWb=΁ Zxx;Ó ̫̬9n{**de^e^b}jpzܗSQNt{)hq?6222̫ݑyyOͦk&亘ҏsG]K@wxe^e^easWW#**%쟛?3)Lơ3ǐQ\vM㩌SDH,zj9c5ƗO*T34SA$(`H>݁V}ɯe!C?d>5$Ndr?xٚHR )[=vwi%uO_O]ր{}|l~XKSwRl[TtQJ=([Jj6+>mݐ-Dzy{J&uSOۤN@j F_Jo3VaZƾu$ėظQ N7!πh$SWHK_W?dn xTstflæeQ@ #5TQ@S "1љS[Q?bQ6%^d*k,5.D j iS#cV=-dMHhAfFݶrR m $ CRo {@RJ6pchIiPN[N0SYjRhz H(&SYjRhz f|H(&SYjRhz =O[],eCWgUoOpЯžqX__7%ĺ^848nVS0#Zd΢.걨.걸Ǝ.걮2NOHKL *XaVx 1]6DSh|p0B' $#0 lP0p@0Lp{ 2̩]'L +Aߖ8)+(6zR! $%]s`@mgQoA j.s!ve>U2pFGQ>*/* `Zr {a 2!iF(z~#p $T^T-(HބnU+`eLWs.)oi-0JH=ɤWO:- G4ч$(ˬ|#P1MJnރ14 $Ӌv3۱ ʝ[g4Ti ջf~SOUFi_n9{Bbѡ8qNF6Nu\9)?UT?8g.r֪@=ұPy<*o8uo/գ,!R^c*Nxri,uIPW;B%G$&L,*LieW~sc٦q4* {#+>iIڼʻ,Y$ Za&5+w鏲gL}y@z[T(etMDQӵyyGV*Wڀ9'D^F?mc쫴^e^e}:} `=7TmF>ʻNUWGWB.aZѐ'V ?R" HVޱӥh|9ޡ=jm%? Xs 7LQsHvёDU&:cHŐOç ejQ^e^czFWWAMA +̫o/!P7&/ Ol!iYr¿d ?Ʈ6P 8XY;'Jۃ8X%$FVvg=ڵa/ji(3'TK{Ħi=Ɗ0RZs4F*L9bH '6-dmw"=ogsLV殻;JkYbg:Bc^SB_ A,|NB nB[gcFt|]?V,H+&]Yw[z{T|4,홃T3ª ϒ< ZabF/Õ;^Wz .c#[NC3gɣoE2 bC`1 ʾ/lɛJ9ex$5:u{U# [.id;fc] '} OK Cn4'ftP8E1ړ)e o,7[ߏs5@Co:[^_t9J𽹝j^^ . HTR}ydP'pQ)a&UN9xupj?&Yi;FdAn?H;?Jx0q^7v-9 5y{@q M5 Қ_[6T>^(5CV=H%iH bTPepm/@(a*>G(T{G`:կyDP=ΤjUʖJ0W6IJf1S5<9㞆fo.J5v&ebf.3~}w+%j_tyS2(&0-Qtum^Rm ?J s9+ % R|SqCg <A 1fQ@bsF:l6``?#M0*+9bEb>jX"-h(|wYG˘| V%pKZT\-d)&Н@jXYlTTS?F$L〣_*24k\pǙM~̈́ ;AEu#mY|gZ<*􏥛c@ne|2=mKFqd>;&eruZt1R?"҇YktVRmve'h*l$a0_k9UǯrQ^;ep(#&YłHL>I1({Z2zB:Ż3a\ {Y[hc,p. ƵX V[}!~ġ #'hI爿dB'K oLMhտL;Qe^݈(DL6 D pֱ_ow0kl%RJ~E3L4xb/ ( QE͌ab=k~T}gQi{\AƄ;4.__&R1Ϩ=hS)O}_ )W@?i/z*`46D_u7@o3Q#?_g=G CB7B/3}AﴺKG!C_iA|4h a4w_R_ ?•^kB=p 𨿅[}_yNW BG  ϨCƟ8W>WϨG DimJþQ/ZA;(UIO4_ ?"_oM_hzBh' )F~A]/(UH0\JʃmVlܴ'a*@ :1Ǡ7 x?>,{"hvK5SQx3& D6Wq[K1lAQ$+|=q$|HQe p07S=ʧ`v|~&/&/̬ ³}_xR@8uO{֔2 ś~BW7>7+ H_`Ғ[8y/J p?;’k2{.,KR:ҭjQeV/뤈hzM)h/̫;e!bJ<-J`wW>D 0ԝwx߽|p>x6qiQbJoB~LJ_}{BD-;&Fq1v> \*@3bHR~N"kBPtQI Q'kop¡TѨs:Y$_(nMz 6@c5 v"rBAʩ_qSw벿i~T cdY@Yt:%;YҢXx\}BKG#IVt4xDZrE ln@ BY'.xTfWWa  (pɹcJ0 39rR:AQhCuPE$ ujGDj6|aEi Ak|c;Kd7UXNQ`AϰK%qژ=K2LQdw|1iFtbͿxF4gVф 89pRT~.g< ɥ6==$2u"lsRYv'E8_ A._ܛ/;E i~,;EIotnsF,)N<>|VCZj-!^ yPP~S8;O"=Rv,+Fo\yWrǜUVEX}aUVEXfwW}}V$Q_~_:EXQ*>*3;>%$_~_:EXQ*>*3;> ?QvfU9X-#:~7϶M7ΎXY5:) ؏,5aP֬7bU>dLUqH=T[AkdaӎtE@83 ,mFZ=j:2^zSrǜ* ;Ʒ_7;*_T܆˚:E3"$%q+9\yWӯ[u|ޕJ;\ 5:E3"$%q+9\yWӯ[u|ޕJ;\ 늻:E3"$%q+9\yWӯ[u|ޕJ;\ tZګ<Ε(9@L6=}Rxʪ[N+mDqrxל ?\`@ ⪡Jle>ߺ*α+~딡^u'[\Le8d|O6'G'We7!+Bt7VCLqcRkF7oUo?Jl'${k?T$E‡ 6ur]SmsJxҠ4ң S1p'{;RwL5Q:,tZ TcRz'W-mMjOԮ$; lÕ٥7mQ印$jbw]u kMt'\HX>a9J~/Pv)kmk!Cl?U祘<0 C_YY-KDqֶ`i蝁߰0?3IFF9\bb+Vý bkѡޅEj˰tgxV?C7UJS}i,|kĖ"X׆9ͷ;c%xcؒZK9PWݏb@jٴ4-=7sţ96?Khj? p'OQ`qS|J6^o=uUaʅyobuЭ/\ Httk1.!p1v&p ~byղ`Raݶ;o]S8gG|8?RrQ)e]\ p,3?8?]|6 <0Y*|7ĩD`%yod)Jz T\ p,3?8?]|6 <0Y*|72Kf|8?RrQ)e]\ p,3?8?]|6 <0Y*|7:[s(hLtZ+z]#<U9pCxOY- XvA~n&?Po'ny?IA )(t t?*l`S ͺ#!Pj[%W8j(#RK&ҷ~6,=J6 6y$b}y7g96CQ?Fc'>~]̴JcJ= G@W\a|Zj4eX'0o;gBըM$_7Hk`f]eĄQqY欑r~}sE5;PC8_AӁ-Q{rrIEQ8߾A\ȏ6Ҹ׷gץn>i'оS=GY|uÔ8׵쑼{~Ow 4 ke~ë$.UMc$x`~1 ~jk"HP._7pNbkUԇIRM4@WF,p6TbkyzWݟm7:[~w $&͙*,i*EfpVQO &Mf܁bL‚Gw )b68aPLq@>a3ס4woi<m()v, bZ.8_"Lw7c6Z6Yų<"MRa!eC5uEpX~ 5XSHlˍ34`w+;;ٻ;ъyZUxWG4}n]HCh!-'Ui0P j\apo $"a!!)5{ $"a!!b1H $$/da̒^%al9.W]ŘatY"f2ڡ. )rrkL)|O?W^@bj$HKnǣy7't_.˨d$6i F`(@SWWxS22ƱW%aX)) dܓNDUUVaB"BOB3LLLLLiGWX^M0LSTNA P&&&&4̫10LSTNA P&&&&4̫m[褍;oYDB!,Pn,JBx;.@Z}aΎv+iqdRTTa!$PX?"KlGяcچL6ϥNcD= [ql ^7 [LADq%"$Ҳhg_8@+SK;E~QPsz  &7GBn 5ڢ0o&7Gc.M[:_,h%jd\ u12% C4  Ӣb\.iq0`P׶>A1(U-x] bndƺYTNIٴrȩ6Ȑ!-$uT]? I9rf{1hWS_:@f cgǬse>~vJB]ȇ-FCۜYŠjFJ7xk6Dq@vPZeD@pT-p{^`'^AvS u2Ř{"bWPmIr#GسdWLYM)4.R2H,ţnGlJM ءZ_A ~-|e΋=v) :k@B:k,>2-nIR\l͎@}$3(ovy@Kb+\L E@L-i3֛s4Ў+ ۍ-5.hH=`U#SWJ? [7\ן։LIr)1.꭪~EV e^vL0lJ; H][T>@V&a/<C,3fύ~EV e^vL0l`AϠ[jMbDA kpbR}:魈B#HF84MP'H),tޮ\nmnٚQEa萗.1wa hM+0^j6묋=XU$9"S{=N@BQ}0hޣikwQV.[5s -(g֑%庱@-(g֑%{] wU<0ZǐK%Aȧ\0S3̒ZےDG {ʷ!>!K/FyV^C/p$y>Ω"Sa0]niѯM5ccS3!_|,vQZ3u&7">[SPЛ&R@}ԷD7K}Rҝ߿B !7/J +E .}8}#k U-n  j)l*#ҤRT)Gx*9 $qYM,C떵iQoHYa2<ʀ0k@;+QrNh.+ PKBa^ uw 8+J}#љZW[XD'BҺ@ĮD3IM,eB/7Tm`'y7ZF0+BGcLHF(j"kͫF'0 E `4P-@5G5D >2& Qj[D}SY@, {!xj-Khk?؈}ZeULW m Z JH̩ zH mG+ Jņsxhm5 N>r>)JN )*NRU*SArה`^Ƣ|5GֺM\%o8ۢ㐎Cb+dzN +ysKw`qrf"_u"ROA1ԓary]fI/IPqfh~{FY(ړ*.>LPHC3R+<v4,9NYO0[ p @cq$쳾EZ<, Jb BsSSX;ND&SYgpY GW\iH k9)4(Q>?BxJ!C784csэA[{ -pb2xy4?ͣ ˜3<7,|IuiI8Gu"Z 5赹22Y=\/Swj'l+.vUMJmFM"yzz(G?Ahݬ 4WX 6]ۭW$ A040RzڟT9l6*K9b5 퉕yӀ11110[ʼʻ22*ڽ>`N|9 F<l`G]^~U|*IhVWb=΁ Zxx;Ó ̫̬9n{**de^e^b}jpzܗSQNt{)hq?6222̫ݑyyOͦk&亘ҏsG]K@wxe^e^easWW#**%쟛?3)Lơ3ǐQ\vM㩌SDH,zj9c5ƗO*T34SA$(`H>݁V}ɯe!C?d>5$Ndr?xٚHR )[=vwi%uO_O]ր{}|l~XKSwRl[TtQJ=([Jj6+>mݐ-Dzy{J&uSl֡ZG]X0< AI. 9K: @H2@`ALf<VVI }.$ 5V%(뫄qͫT G؇PTCX}eNSYjRhz =O[],eCWgUoOpЯžqX__7%ĺ^848nVS0#Zd΢.걨.걸Ǝ.걮2NOHKL *XaVx 1]6DSh|p0B' $#0 lP0p@0Lp{ 2̩]'M;ֈUu[v/uU06Y^E[}80{xES5լ%X $#4^}dv_!ժyZ † # la ]ڍ # la 6#x TDGHބnU+`g Ws.$XqI( A6U玟GPXw|C!Ec`P6 ?*jneM 4eN3LS.m$ئa"BWղ?lSuWi_n9{Bbѡ8qNF6Nu\9)?UT?8g.r֪@=ұPy<*o8up :-3pv[uih)% pE-~Jz wFSb5$mY5k `B6i`ϛн|ht.Ţ+2bbaRv2nUPZ#u@F?mc쫴^e^s #ǡʿ>m:>eoKNF_HVޱ\J,ۢ?,%i:C m0H&{xX~㌜Dm\'\+OK z,anR#h{1clnbW1M Bo/ƁetPdKlBQ]WPFݻy[OlP\& KI+D*@wfyT ꔊ/x它Fպ"RRay"?{gIQP>+|僴ߵvOO/v_ji(3'TK{Ħi=Ɗ0RZs4F*L9bH '6-dmw"=ogsLV殾'U%9. Km< /%,R?A.-9>H3} ؁{!9'!fzjŴiә` c!K=|4ziiWF>RiG)gabF/Õ;^Wz .c#[NC3gɣoE2 bC`1 ʾ/lɛJ9ex$5:u{U# [.id;fc] '} OK Cn4'ftP8E1ړ)e o,7[ߏs5@Co:[^_t9J𽹝j^^ . HTR}ydP'pQ)a&UN9xupj?&Yr&IaVa4? aei2䐬fpP[d&K16r Jړ#B٦aХ[oҲf{S'݈*Ji!Pepm/@(a(3_5T{G`:կyDP=ΤjUʖJ0W6IJf1S5<9㞆fo.J5v&ebf.3~}w+%j_tyS2(&0-Qtum^Rm ?J s9+ %jX"-h(|wYG˘| V%pKZT\-d)&Н@jXYlTTS?F$L〣_*24k\pǙM~̈́ ;AEu#mY|gZ<*􏥛c@ne|2=mKFqd>;&eruZt1R?"҇ZLRFK`*K3r.; +Ъv9UǯrQ^;ep(#&Y=<->I1({Z2zB:Ż3a\]'ry 1ƵX V[zydlf_*?爿dB'K oLMhտL;Qe^݈(DL6K} l{7ɀfR\];LKhg]hsF.5m(`@3͋@9_+2Rk~T}głgɱBt2W>Jj~ ͉5oQٝ`Z?h+_iZB(G@?i/x`?wpIW<u7@o3Q?#?_W -O a4wOP__ ?•^gB=p ?c}_yN„&p' ?/CƾW#DSm+џ3-;(WIO4_ ?_o~O}SL>P(UC7 T鹩pmK!CUUvȠOW Td+鹩oOzǒ?HWBA+C5D];ɡɆ%'=ǚM~}}a-Y i SNPє}) ZLdxO8=_]E@6ndaw{#x*Ȓ؛ŏ?<(evBE]*66BbҗřIKpQMs$3Z)#7 Eb: x8 Kl/U=" dSv[¨'3ғmjZh`5D'0qd^JϸMf+m.PN=dG|97wҾgko/a BI {.N 1}*0prPmp~ ![_7~zߺ~wЋ; ^յ,o|7~rYc_!ߞTBЁd+~o[_oo I ;^'0h9 Ӫ5ݶAFW6O\ab`Y.J!ivk!0U"#Cj‚gzmH;y @fzr=$fxE! idefv-Is}x,C<Yo$C߹V>WuĿg14Kd=Eow_U=nlmxk0Pp73M:_ 1!:L2G~+im\[W$G8KSAGhN=rU'p Dǯn܆ti؀5#=7`Xן;s M(Z/%MFz C顐 8K{BO0.P^x;גޯ 18<=eze PeQfħʕy }s~>J}9 v r KXgNBLJ\RᓐGuP xd+;j1nocyBA.ή\D3 <+ }`4BqE >1Rd,jlbt"d,jlU{s2V5 o51aMy98#D Ky>\JʃmVlܴ'a*@ :1Ǡ7 x?>,{"hvK5SQx3& D6Wq[K1lAQ$+|=q$|HQe p07S=ʧ`v|~&/&/̬ ³}_xR@8uO{֔2 ś~BW7>7+ H_`Ғ[8y/J p?;’k2{.,KR:ҭjQeV/뤈hzM)h/̫;e!bJ<-J`wW>D 0ԝwx߽|p>x6qiQbJoB~LJ_}{BD-;&Fq1v> \*@3bHR~N"kBPtQI Q'kop¡TѨs:Y$_(nMz 6@c5 v"rBAʩ_qSw벿i~T c鏏kzEtI*kKG2۠Ѹfp:-t *PU^5˪dVx yBR}yQP> wI*ULy[oAQhCuPE$,".H o\ |aEi AgCH+mH3 -Hn$?`AϰK%qژ́HtjOdXs|:a"sBQ&rRsF,q'vb.Q Y[ôRPW' ?"f}"%_SJp B2kÖ sGĝA|Z=ΠaP!5*$7oav7IotnsF,)N<>|VCZj-!^ yPP~S8;O"=Rv,+Fo\yWrǜUVEX}aUVEXfwW}}V$Q_~_:EXQ*>*3;>%$_~_:EXQ*>*3;> ?QvfU9X-#:~7϶M7ΎXY5:) ؏,5aP֬7bU>dLUqH=T[AkdaӎtE@83 ,mFZ=j:2^zSrǜ* ;Ʒ_7;*_T܆˚:E3"$%q+9\yWӯ[u|ޕJ;\ 5:E3"$%q+9\yWӯ[u|ޕJ;\ 늻:E3"$%q+9\yWӯ[u|ޕJ;\ tZګ<Ε(9@L6=}Rxʪ[N+mDqrxל ?\`@ ⪡Jle>ߺ*α+~딡^u'[\Le8d|O6'G'We7!+Bt7VCLqcRkF7oUo?Jl'${k?T$FTbeYrQ\mV2tq~?RrtwL5Q:,tZ TZsq$5Ձp fdmi3E@@_ZP"yv]b]ۍgί[\Il{ lHBI=p$q)]BPi5'/U祘<0 C_YY-KDqֶ`i蝁߰0?3IFF9\bb+Vý bkѡޅEj˰tgxV?C7UJS}i,|kĖ"X׆9ͷ;c%xcؒZK9PWݏb@jٴ4-=7sţ96?Khj? p'OQ`qS|J6^o=uUaʅyobuЭ/\ Httk1.!p1v&p ~byղ`Raݶ;o]S8gG|8?RrQ)e]\ p,3?8?]|6 <0Y*|7ĩD`%yod)Jz T\ p,3?8?]|6 <0Y*|72Kf|8?RrQ)e]\ p,3?8?]|6 <0Y*|7:[s(hLtZ+z]#<U9pCxOY- XvA~n&?Po'ny?IA )R\QYBǭry5-=MF^FmS> xWǷ״TEӋ1W?8n v4QsVa|6TΘ-1O@poa!E&8UD0|=`X?b&BX"mq1_`,x[WD;FCf/ dv+$ A_Y.Wm' ;L 6⁇*1^ ]a(9ʽTRׇ"^ SӍ>欑r~}sE5;PC8_AӁ-Q{rrIEQ8߾A\ȏ7#`G~|?O{ U P_׶bdm~wKW Bw7!\ Pd,piz?Sxcɉ~޼V6W NGn x0|%"VcKyTEFfnKid/PN$Х' ,"_=A$ rHkD HC$Gg뫱sQxC Fg<`8`XDk 4 :!ߛXi'aqҖDj mWi)x {VfB>8׵쑼{~Ow E+GHP6syDvyL8nq1jc"}͐;qo[ln~&$TV~G9/P,_7w"fؕcR)٥;ޘ ;<7_ގ?yLFD,i*E`!S[ivfn@K&ZaA Wd_i<AYyZ/%MF_/"Lw7)ٱȢKanSH_KFYw3e^ 9=Dj '^$F?<]W7"R_ JP{e/8t M02nE;_f@DN|5@+Sc.M[:_,{57z(\GG.]tɑم l8b@^*PDŽN\{̣Jbr֍ xr hZ--ʻa2͓/#7Ak"0Q{1hWS_:@f cgǬse>~vJB]ȇ-FCۜYŠjFJ7xk6Dq@vPZeD@pT-p{^`'^AvS u2Ř{"bWPmIr#GسdWLYM)4.R2H,ţnGlJM ءZ_A ~-|e΋=v) :k@B:k,>2-nJ-UslƑƥ]|6t-JW͏g]jE$xdJ4Ў+ ۍ-6HdR'S;)MdU "ٺ3o$ܷ͟T>@V&a/<nxa({ jgՈjם %G>`(!i.ȴύ~EV e^vL0l`AϠ[jM "s #^F(6T?.>-9 $DҊwI+4j] &1 }O @m>e_DlO mRqEpf^j6묋=XUm^ʐF٭Ru௩` $%A#@9bZ0O~ (>vG*d&^/aD`0%$֌!K/FyV^C/p$y>Ω"Sa0]niѯM5ccS3!_|,vQZ3u&7">[SPЛ&R@}ԷD7K}Rҝ߿B !7/J +E .}8}#k U-n  j)l*#ҤRT)Gx*9 $qYM,C떵iQoHYa2<ʀ0k@;+QrNh.+ PKBa^ uw 8+J}#љZW[XD'BҺ@ĮD3IM,eB/7Tm`'y7ZF0+BGcLHF(j"kͫF'0 E `4P-@5G5D >2& Qj[D}SY@, {!xj-Khk?؈}ZeULW m Z JH̩ zH mG+ Jņsxhm5 N>r>)JN )*NRU*SArה`^Ƣ|5GֺN.6˘_qt]nYٜ}w`qrf"_u"RP<mBN@ r9s]Ahen?BxJ!C784csэA[{ -pb2xy4?ͣ ˜3<7,|IuiI8Gu"Z 5赹22Y=\/Swj'l+.vUMJmFM"yzz(G?Ahݬ 4WX 6]ۭW$ A040RzڟT9l6*K9b5 퉕yӀ11110[ʼʻ22*ڽ>`N|9 F<l`G]^~U|*IhVWb=΁ Zxx;Ó ̫̬9n{**de^e^b}jpzܗSQNt{)hq?6222̫ݑyyOͦk&亘ҏsG]K@wxe^e^easWW#**%쟛?3)Lơ3ǐQ\vM㩌SDH,zj9c5ƗO*T34SA$(`H>݁V}ɯe!C?d>5$Ndr?xٚHR )[=vwi%uO_O]ր{}|l~XKSwRl[TtQJ=([Jj6+>mݐ-Dzy{J&uS>ނ=Q aA:Mfժ JC'=O[],eCWgUoOpЯžqX__7%ĺ^848nVS0#Zd΢.걨.걸Ǝ.걮2NOHKL *XaVx 1]6DSh|p0B' $#0 lP0p@0Lp{ 2̩]'M;ֈUu[0/[0np0{xE ]00$щ& ċt&] GA $!?GAj $%m%ܸ>|/HބnU+`g Ws.)ZqVLTL1`#^T< o5K=/G{i`;Pa ۶g;w*unٟVZ| )бi_n9{Bbѡ8qNF6Nu\9)?UT?8g.r֪@=ұPy<*o8up :-3pv[uih)% pE-~Jz wFSc,D쇽؈F0Y`m8­*tPR#LLL*NU$>ʻݽRqR7_es}1U0?tFYo@enw /R <́0l;WW'Ȩ:`/v22ӵyyWiLAjrA~l `Gڼʼ䩓`G)?}ԓӿ?`HVޱ\J,ۢ?,%i:]a?}A3N]t'x*_U%ܯ-ObumT_'%D١Gb[ n6QɚנMˈ EBNL pzg:a!~&`pݻy[ӏh-y(7o& KIX!x9ꔊ/x它FB,_C'FԘd;CHߐЯ-8|僴ߵ Jl+#K ji(3'TK{Ħi=Ɗ0RZs4F*L9bH '6-dmw"=ogsLV殾'U%9. Km< 6jX"-h(|wYG˘| V%pKZT\-d)&Н@jXYlTTS?F$L〣_*24k\pǙM~̈́ ;AEu#mY|gZ<*􏥛c@ne|2=mKFqd>;&eruZt1R?"҇ZLRF%5Dk&PEQ6% 9UǯrQ^;e!c']m!ۡ>Do>I1({Z2zB:Ż3a\]'ţ*suOPƵX V[z$9zLYfTDlwd'o͋@9+.zk~T}głgɱBtA7$n y6,y[QW`Z(6~=UV5?kW`@__},+_׉7y (~Ktߵ?'@'oΟ=3i=O8_?>+? :ש7x=9V?B/J5M5_sc5]T?k0~?ڭ@_.?h+yO~MDSp,X? dɄ2N[pF<k #ݗ֡VgzuIn ,`['mj2+ZG ۆcQL603$F]PFgvRᇐOT 6$ł*֐JGq6(bM>48! ~HF_ gTīw <' RAaEup48bW.Wh4Yշ<;Ւs@ Αÿo:7V ^$ 'R P  I-i;T($-<}[pA<;PFlA !(NffN Ê7$2?^V'򞢘>!APQ$/O}}L!m^mLp4Qޯ0xM]5ǜp.m{|ґ8;`c9_CȚa`&2G2xBJoǢ/fVfL7B $^+oO(#_l'${k?Tǣhgc&E 7gGɅ:oO(#_Ud5mo HUH2<wFSSlZW%я(6ŪtJHȃ 3ʝl~PJ{&3e"_TJP{ԩWf[AA8H|zA{h(J(0@Mx8/.K GoX {0H*\B `CxsQ3 `wc{qRvJ=Wb.5ֶQ1{-.Vt8RGEւI2vk9+UO>(v*{y{yUnzaH$/F澮꣪Y,/۶ > suT.N;t7<4"Ah.!O$ HhLm$|zS,h_b/ DKl:E@ ZN^:#Tct@L(D+g@U E/xLe?PG1! ?\4{AK0fT3H~^|-Rq2ۑ׺G؟djg{n(Ye|@>1:nk| F}9@1s+NpC |(T9OpExәܣ 2W.vd!?]t- ȥrʈ (u6$'zV_- x&z]a瑡clRX#6lw_& Agl4gYh{fx?mk)zλWC՞o ~}lcS/Y3.S,F%;ZnQ ŏ = 5 ]a!6Tc6HPE,OKoGgs ^|$ĨʷRFo ,6u08w=`|@bdߧ;Жs` GCY1cxgK[ԉ4>ݗ8m4pVN+Z2R;3,yeznAmYO'jpK nj[ ^'bj>)=-#Cs78q|ڦ8dӺi`{- !Ђpti8/ -е D+; o 8@ N^̔ U$ST.r,$t̩ f]ݻzk{?ݻzk{?xq鲨\U?hA j~kCRgI+}0םW͵ $7r&V5xr%"?#}{Q-uIX{S;&cu_N'AR/Pp:ғ-^>DZL@H$qPSBQq|h=0[KWjZ0ׯC$}3ttC:؄9dZvw[p&u$mjnU*W-`ͼ8lƧG:; #[۪{')WЙdyw Z7kavz !oi#.mvS.?{E`0ǧ#j9OOqFl"Cmkmc*)X/jwYMp%Xa(H`gāE½]PU|b9[D -$ oRfj%ഌ2%il91j2 `cJL2y%'G')Ԕ~/̀ R(҇ۦvV?ЍL$ruHz* %I lI[hTc"gTT0& .hM,wZ^/+CT0jYVQtTAP u(   (  ( @ ( @ (0` $(0` $PNG  IHDR\rf IDATx_eU=sQdF}BIFC`4 Bҗ"cO 3H({)t QOi(pk1={s}}?pљ=7k/vx3 88x-pQVW{xxx xwrVm.Zy;o4?y_ɞ2VWa`# 9ȑ>lhc? <Z/m&GI}Ҷ>p `7pA[ dpId8 s`{ 9s7/5 D񼢩 .'h] La1>0զp5;R"~ua ` gm&oPÐj8ؙH|&U^Z8U!iKHN fM}&Sfy, $7n$ =YJpTѕ5"VR`&)0X+6ֶϞq"}rr[pILR`9{U6Ӵh@cݺoMjZӰ3H:-4o32qu-,r~"\;ڎ.)s[t+)0 @ 9x:]~Lybq +)0 @ ur޷Wohm]1 @ weMtQKEivVW? @  f3HunP[ԵU۝SS~LR` 5rIS~G*GYHLR` 5c:އ|cQVR`&)0ss"5U9/ @  f;0TMUqd]ntq? @  6P4^:'0.d]Γ.y3H(4Ư:Pv ؕ1LR`ӀEٳ%LR`&)0X+k]@q~yYHVVkL:?NCu_E7:3HLR`~_iwlLR`0^,U~mU?+-^jo f3H-]wSiueu/+)0 @ yWEo>Mujԕ% f[O[*{ D̵YE3HTX7]cdg3H0Pʣ +)0CiT)DZ3HLR`NJSzLR` ʔUJILR`&)0te? @  4i9/b f3H9u\_ @ l8lTVݷP_=p($eq<; IY<BRzųsG!=BBROBRO.l^6F]<׿W{AHjRrG#UkFR# ~Ijˬ) 'wdo9;7I}~rrG%k}}0M:# iqv0%HTג&wwV$5j&_PR#q{~)wѿieeeGzQR2.7VRn&!=n:{{rG,rTܾ13K#TK;zu}iii㣏uiF'U[ i&Zpx0.AC>C$W[#H}sI[2':9<> b`w# %'+3J#IXn# 7fg>0ʬuE>I{TKvoDiCiq"H}6ٹntk?<MXX1ksEn?t~3Z  TCg~[Z iݤہRARN#i&ytS? ҂8L_C גa\$8;^bҲƳMm uߤ &<)*R[tl>m!%mi,y2pxx~9)'H?{ImiIENDB`flipperdevices-qFlipper-bfce851/installer-assets/icons/qFlipper-installer.png000077500000000000000000000135061452337521700277110ustar00rootroot00000000000000PNG  IHDRxtEXtSoftwareAdobe ImageReadyqe<miTXtXML:com.adobe.xmp òoIDATx[\Wyp: ;JW#$!AJLrO$U^8j ipPU$  } @p .UIh#!]'Po9g={^k~/߉̬g?Ykd}mܨOzNnzDԣQwUE7Qg 3P!8e73 RU]:Gj;U(Ө9gG}]ԫ%QR5樟zDHQze?XOEp;u{U?z F`tQu \\՜D]3Va`Ue_zkޣ Z ƵިOpQh7F}XhQ? T: qCT{cݨoq@na UcQ/z]^W JQ/w8ۢʨv  Ru?ug~ Vu-ިtd;OzVs򒨿?3Qwfhlws^XX9zcw>uf_/GUp^:24DWXY'NL9{sԋ>tf%^h`eD6M:@#ܿ?7F=0*곣zwVst-3*wi(T@(y:Pp wu.إw >e;[y}G68G l7 P:Pp`abB %ju+>08y7}mo_@@@z0dqYG 4=f7}ܩCݿbt[*g'KJ@@@@wI wnv>Ѯz^mc@tEM]0Y;eupۛ_ո|_Z@`>xĠI7oT@ȾpZ*t}5>x=OA4uӧ_u幭nA_ǵ={_ѵ~ײ~q;z||;7v  )M,gH'dumv΋Twtt?{^@T~N}{1וE j*T^m(   t==մv۞'C}u\w H| dfl*Lfv2VW ˬ|W_,})M@@2b'Neh7kڎPwc K|AE\tVmj\ǴJST_g:tM2YhYF]q\qMx}\{HQ:|ݮ  @Y@tgxϺYۺa)j $gqo9Ηan<xu@ ScCf,]z8r2Y:   0`vZfGwRO@2e@*7_@@eYR @KlYT:u@@ qu:T׳R7mܻ^Oo>]xY߯ e8mEWOk}wa}5 @@@\a':z 7P{߲_Xܸ><ի.zmzf/f    \m؊nt]v NOhR>mVlWoe%љOf    qr{ [-#^W;6_`o`=߸9N:P(@ li~=п^Vy-ziVC $ᴫ[`̶y@@@jl9;: }@ vGYO@@2cEj6_u@ [   @!RtNR @vP\p4~i8,YQ(p0@1N@]w8luO d:Pp 醾c,^(Ÿ[ |0@1M&g7gOd둨g@N8?S};@;ݰ@vigH^_tu xN}%;PSnlܲ@N^ gO; 9Fusm6 l}'9l_t6HG:7e `s\|@&It6Quad fgݮÊ}~Ѱ༻;?;<5|л>";Pxgˣ>0<(=Q #`}?w&k[s~'עpK}ʴ0}/9 ~7 Kw,: L8[~̰]SmEtZu>¨o3@}0vM.î:KYgG0ܾT\]*h ;|"~è>pL߯}bٞԧ<9Qi؁FoP@WpbWK;;OEI1GQ/_7ЩN%zWG=;t7͵9:WG>P%+mk96PwF}:uQ>aB6u߬Ϻ]۷)dQo҃:5 ߎzUAutQ'>xԿzcԇu@]wz̭qM\%t~/jpvӨu@s^~r V:pgFBOFt`inŨZa`Vת|ION 4Jf6i@]5'WFCopV̱wu@cફ1UW|]ԫiQG%ju #% h0Ψ:*E=i t ue)x#Q`G:wuNG}zsSgFtt6W0}z(juػU0wԏ{rXIENDB`flipperdevices-qFlipper-bfce851/installer-assets/icons/qFlipper-uninstaller.ico000077500000000000000000001636511452337521700302510ustar00rootroot00000000000000  o . %C' 2%M h9r hv   {  00 %Y00 %PNG  IHDR\rf6IDATxMG_-_Jr")R>! E=8R$rK9q$9`$(>9QB,0pn ,Yag{zzUI;;7.J ϊw\w^~.f#Mv?,v_ X.0>0mG1^?栿$g<ŧp ~ ?:]&obmG"q2}p¹^/m)h@6Ŀ:O#!Dj\"[⯨@6ſ:>_S:8r OUW,MF0!r6wB=8r!ťvUlq7D񤙢YwJh0!ijF@  5Tji"ltB8p!(@B g;B0|Y+ D^@*!/T,$msnU@QBL)khV2!lÔˍ;MdB؂)[ m @& Trw˝ `(Ww:R!0|8wm 7ԡBt~YPԱB}hI[\ρBav,K<:}7P0ģf  Sa~q0$cjO |+ocD4"/ro&ONC@Ou@J&N\2*v}bw0 H\8Op40"Mrlp86 >L$҂)k1 pnQ 6SYdܶ_8a%8" @?QN[o83p/ln_"8iXhK3_&t21t_qI_p0I@}-mO ^tDS# dy| 0C& G2F^^:؆ \Blc{\# M3lX/)~85LL@d,~ l@ oX^3.#L濶 LUbo?Oftu #$N%;@Hk7\te"oP]c *p&9;}~_2<}bmM@oP% \ oɠ)@_d#S*C^bN $^* Ub  x qH6@& ̐7@& !ӺdoPD3sMݣе( (" BhCM\:$֦J.%ߖXK~kN4$B1VLdF@4ъۡCL KF=j5ԏ>8dYA4ыrEY(V791nqn7Iy iD1@&*327V01ɏo,ݼ 5[ټY ~[M֭fϝ7 'x?+N_d)1CK Hq ẌJ^PIMZ#H|?:iƞho2w9cضf~㉄rJ>X26$r۶O`Zch 0u;Ϙ<[! ` <Gğ+@eTȩgz;{?O o9>kkD7$Ȥ6IMP %6D@ LJmቄaK>2%QWvcKl?TX@LA$c牄 6d 2.d '2>d /6c]Ӏ*6O$L`D!S,<ā)U}Xhl`90}HYw `CW0$$"d#JB@0)H?|d>1ٖ:c>,R-6`W.aJDǔL}12KIÍP%$XH"v+'}c曶Y۞w~5`lW6Cl!pSNHJVpiB\#L(zL C B^fg (^Ak`rNiU>`J䮤eJh>K'.t?Kd!غ%lwYYc]hoϜ&:F!!!C% 0^ ttϳG@/MTf!.XI9'ՙRvnuӝ4gbP7Q@Զ0PRlSH-FG " & [P}wrD@i db5s0tVaYsWD@l0 96ъ FE D$ cȘ`MTqRS&ZD !FB 1 +X3Gk5H5P@N X  &jW+d4Q{۹g#'cR(:?̔'&pC2&1:$ {\:XM|?-#Iqѯ* ʧ8D2&~ǚJ>rvNS`*~6Di* 5D72"~J@0\} rdcU!Ϲ-D \]u"`M60%O6  L $tz$~+"ט!h”(7Ɩ@I@D5P)1qQ<ٚfx~$~O2טD >ySd ~ʶ2@- h Hl#WmcCjyVDI>r'@D@& '$SV=4z g{[p&AEX!*3rM G(ecDŕ;HP Ѩq吋%4pvs40]fIc)gLŔԇLeIIM(n@c~TJaS\H4 LL}˔s)ASro$q0%f05S ?E@ '0_8+D^L9i@|L +LcCCj u[D&ex*XxiLr8 CM46L90u$Svƈ)wHԁ$Z ʝH\P1dN Ǝ'u @6!CH9:5$~ႲɭT$@O1=8  Ɩ/|4&$~l @!a&$~AQ3,wFn#ԩ%k3NeJ /1D:?/bh'8)$~y3tvx_R>CK"f0gjHMoEY\p!%~aRQ"سž)pf:V)IV&N) IEecH"'0X~ FEߋzu_??q`/B9w%z~~$~!b5W?' w;.gMIGjt88^C@?|+K#њƛ7[& 8L"ީ힀?/D?&bm*wW?IFYkl|[5wmPx/8MymE8Uf>ޖ]Whl?@b:\*M9{]&{/M`$~!Cl Rx$~(\&2O?z $(  _aeQ~:ğS6]{}o9DeFBaȝ$~!40 N o0 '}]'g,|"6LSHBojC/j4qO\,_pyHK-wű^ 8>-]6FIlx16< )-7L)@+%uU6k~S)&08=1,4N#Xq Gt <mքsnt`y=M!vp/'maQM8lbІ.#p` =w.M "&+\DomVkН|IENDB`PNG  IHDR\rfIDATx͏GƟu,qbdbp0q&HN/ "" N?܈H|HBl 1BĀDۉa+ZtwuSUONU>ϼU]]eVbʲhC6YksշnoXjBbee;=wn? )`m} fhM`KٸV)i헀grz_ b8C 3Kڬ778WJ[O)Dt'e`ǞnErMy%S瀍%D*pc˵@`K7/_v!qGH`:/}x"ApÅ3mµ}:I92ww!Rǥv4?!B'%ۿB OaBDg5 "hÿjD`!pBPXa A\aG/"|0CQ :F'ܵLt!m`ʎbL9=ѲaB )+!(L'DrFۣo S aS.t\8]R]ԑBt)gOΟ^/ԡB4 O4]a]w^^:V:rtVk¢yBB”u=Å7wT?vP0uWN.[yy 7W~C"orMlmXoW~0uWk}mx7ݟ'+jr:گ?n?WOx;`1%IS.GǟpZ%L"҆)h11  i”c}&_c8B@\4@"-rk `K/Ã"꠮W3M@"(^P嶕/xb%.%◵!5ųrKM- IQXoWmgD* b]$X@si@mHb̀$wB}5p29W/Sd\W7/db9n^FQ7=5mllm>vkD s>^:!]AAuqk pVq-̳eſŪzθ0^/09ϲV1!GH?ف<8d#pmӕ Ŀ@Qg>]$>sn/y =N[X[k&.eL@EowRn2ϑ)5!O16xV+|Ub'x ~H6@& ̐7@& !SdѯSD3kM汆QhZ[{G0ACM\< JIoI d7֒xǚ]Q+ LdF@4ъ1uOL KF=j3p/2 vR(K&'&F;gv1O$ !;!d";#-L*qc?^1Lt&>{XvofvdM2Mo7[J= < o{x">KO^Б`2%fz)a)TaC4Zɋ2SKyWG9m_cQM.dz ү=s<A.T+02@&|ZΓx k}~>h prGy U^VH8!6FHxXo46@0t"Tt'A%4Ƙx"G`7 b$OLR Bc[G[~e~z1t`FC٘D 'T B@x>)'ˁM棾m#ئ#RjQn DtxLI#4UOE$bWXgi뜵yW\>vn\0T,6*0%ꀤ$jW& L Đ8 40*INm `9iyV縉bnTL)g) w LܔL g #.g #Dğ-Vuշ\̹h2E@x( O@ d3HD>{z?1MЋ?9UCş 2rDNm%@ )Lo7:nNY򝚳 s(`X j[zIQ())d=i H-y0\9.UQi@,$b͜%b'@.~UWQcM"F1$Z1Id-#Iqѯ* ʷ8D2&~54$}e6HUm$.U6 ok"$ndCE>5$ `?ıB @CsY(4A藻g/k17Mۤ >&0M$L`J0&14F}>2)XJf}"omoWЅ;ؘƌ@L$bd;RdM0%Z 51$4ɱ Q␉&=Ak]@ԋ\cJ SD, D5$faJ?WƘ}0%F>r8.'[X >U ^!aO mDL9ed>.}iۘrhhjGQD/I~@4<D&%e}D< IQ[-8"L,&h1 @ GmL(whԸrE]dD9N.͒fIc)gLŔԇLeIIM(n@c :ҩ iԧL64 i@55)0 S S3^O6`Jak~LiFO9`|@ÅYxaS3SG3%`0Snv 9)SGmYYnCJ6"`1a0eJ410lԑL &a#]"Sw(w"q9o @?Bƌ'E8 @6 ;H3_؄h y"f5tsHeI[%WHğ"LczL0_ilIL H'LcL`a @!`&$~1ha @ea0Xu,ypm @eJ`eG1Dv$~D;[=/b"'G/ )gb{thL`G H>_ഔOeJ 713 H+G])/R&5l] H=H"'R0[C_0hEߋzx~ Tș+:g?vGXTtyqD+&d_%#i:pׁ/>=D h%~AfoX5 XN &p8 [  b `^,˹?6_Ï.0b$~Zgdz].6u9 eYۑ/p jG]ꜽz.׽&0j{C0$~ &0ZBP$~&U$~*L&X%&>6XL`K<@-D,&`D/`0(2ӑ%1_se)7 H"wV8/[m<-_W+mջ@:vwcZ!j/YdB=4ǀ{K},ϧl\Ef jikpT p=C?kkƒ6W;b,RT?C bmr 6`>`ޏ{?DU,iډZH!IENDB`PNG  IHDRx%IDATx?m}_Bs* GKR$c!5  *E @IG6H$veP "hx,YI=6زu(>̝s>hϻ9{fݽ/=lܰаatC*ְƣ>mp~eؾ3lG Zuw46k߳^A'>=; Й mް=aGZV`_{ 8U\V(aOUa^ggOxW?7lq~lؾwЈӵ_>l+""nᄍW7{.GǬ5/_0l*.aW#"+9zmOVA9ziLJΰҍI_ۻOs @ ;]~xj~gϋ?;|폗Yt&FDo{Mwjͫ7 @;j?;|aw >;l?w~} I'Zu3ݝ*aUDty(\d :ϑ~ OI})N"+JiN& %ʋx0Ch͑0E|UD<\4iO6$΃S:t"k+'9O>@U Ͻp3bqs B]y|9{~2orw͜o^Џv"6ǯ%=* y=9{SNpLFP\(_t{jy^~<"W$)sgIxa7v_scۻ/ 0sf|%eW7kiRNPByrޞ' [9ys` eODD/z+v/;'2ϯSë6!s'Byu^u+v;+2ϧk^<] Nsȏ^x}[Xmy< 1iL2wb92ϛ^O~`F%sg"|sNy 7 ۷VD'ȇ}{?^O#ېs\y~,Oexk_Uy^6O9Wit2wv2χsWwm|֓zvp?})?,P %srY 2cOoE԰pyb<\2wেbO*;8<(2se^Q "?Js~3ëJ.2O絺c+"j\8+`y><GJ;a8ID{;'%+ y΃ 4KW&^?+4r0#kVDU IuS¿7#=ë^5) ڝrG#GY8i oBTK7&js=kPpD|6*@5Eğ)x#"ߍc8߿ֿ}s*tC-<O2?<hoMDjW''cE7ߺF_8̣"qzx3"ؚEpIFlEw&">0EMVNK?H]8ɼO/}KC3Pܧz&G"S@O?OPz 9p||~  A[~k>`i9Ÿ \脻Ns` E @ ?#)P5LJH3jw,ʿ8 [;WO{Uzbxܻj]Ÿ脶F3` EPgRB 5(= VX"؃g% 5)- VX"؂ge -(5 6؊"Xg#Ik'Khxڵ|o`l Wq8.` {\D(`*{Qhg' =)JM#$ٻ^d…cjzm׵mݮw)~D*"PJb  Q J=)Jz *<{~.%t<A!D*{Zd¿*oO>e%@!DRn_+ zd *t7m>X k~㠶:<ԪY;kTJP3EMS1@&O-P@[? PBm4BEM@kP'Oc};sN!s hlm6l_c}InJj %+J^n=U4٧>k.Kf%aSǟoY "R=߅gw~1+J+HׄW=QR1@o)mY¿K<綾*iFouE>g @*(7O=S2Ÿ)zy?Sdi? (P8Ÿ$(2O" l4O2U.?'P~k7:nc﻾}',}X*z$xL]m9S 'Or ^R(@CD(xL@τ?MѻVXDꎱX~Bj}N,%{?E5H|.5(XF@IAޖ)(!r֤`gkJz2OLiou1+9g[lB2OTjkm1f< pۓF~nc ߰xeK1\䷯^i+l'$QDcA,f;B2Odl.a7 yBdse>f R[@*m]u9s{lyq盼zjrby+s oPSF?Kxs,\"@E F9 `+v]zBWpw@;bv5V`,R?FS~.I0"B&S E3)* a6,(H" XHPE?B+Q@j< 䉁yZ{5V`mj})N[Xq,a ؊Z1(`Kl>6 3؜**θ;`<4]؋`1(`O<v 79&; ^s,"(H )h9P@ ?Ly؛M N{t96+E]n6cPtlN[d9v)lE-f<Vt?]+J~qrF!N+REF+;R*/@)`_"QL¿msݏzrnڮ֝;RyG 0ouYLqN`2L!h$ K90`is( R%]\sHC8̽sνִzA/P`E( " 3RRo["8"R:ģyp[='`}}ޯ_\\qL&s<AZ r<я xE `W@ r< tEtO@2OK\];]Fo} f{\y"_o%>y[`~%UzO\m9(=N@{]-g "Jm9RgU&o>?y[NoO򶜞(h^z`!ui_nz{2Ol$?3}l->X=}߶nzE׭}ܪw&R߆u@@[Z絚^z`$mjyߗ6]UK?w_S] %>y[N ݭaz%n¿Lmz I6mz3G]kz'([6kzGC琩^zudlw 9%n{ޖSe - D>y[N }"VO $7sB>5 1q2bs yXIܛr%6`}',ῙĽ*b3 ֕yKܻr-6`='(ΊĽ,cu ֑ybKr5V`/&q=Xqy"~'򷚥> `կyKyT q/=YL<'_Ľ1XdepcLyK;sMfQ0^ F7#q/=FL8'ߜĽ5XeePcG7*op~Z'}-Z곘oO[`'蜗\i'ߟ4X"o4g)x(D9 |3mD`&9Fy2w\}d P)s>XJyrgKNt猈M捭/uRVy '! PPQ,%ü-_`  xs &eޖ/C5J<>|>TYq(@ ׼-YhZr<I IQDhY{{WzF-<).@2gEY s?ГZ$S?У[cYqx@p2<(N?p3"`@Jg>E@(?Z0}3b" g ސxfLY~]\CCgE[V*tX9BiVn"70"gFĻ9V?tD׆W?|}-" XNХX"'_ ֧MD|uxAlGЃFWZSt&"jVv86yuAвDWXe@!RM1$Q蝈xP"I7_W[?@=-6W?@}M9Ƿ9lSz.gKra G'vt>X/@+m5T^BzzO?.+k( WW?""#t>H/@ }4P/h"&r>E@_^uP+"j]QT~p ;Rp+u)px#v5|<}/=:""n>~XH:#Bye)tRATk /E+E@O]}W4lvS>Y ŋ{@DD},tPG8'kQ9_u?QCY&OcY X˿ۻw d \ X\*Z`,E.>+:\KW?9?d`"L2o⥿ @/֑`ڰS5`-)>3.f@6E\pJ?l; `k9sؑ]l-sbs}x/yy+;[S"ODM@*uֿ5|M@;u o 6.FՔ o ([M@&EEc (ڦ8Z7?@OM}Qf_NAI͘Njp5}E\9("b_:K" "9SP䔷8Fd_-^P8~`4ЄVMo ,$oO$+rK7e_0F" `E@`΋ 5tZYa_ BgEmRI׾o_΂;<1:)n"bCk SE@+/.?%5\[jwJ{1N2'JPw \.w ToED;whC{+/jExx]Y2""ǟ +tEDݿyﴑ5MUVD^={ߵV.q<'?Uzhҗ?ۻ19Y}\m`.'5T.x&/ ۷J7ؖ7FDݗgۛӛ)@JٓQ\;X~nذ}o#/ ۻonU阻\JWJt K?="abTO+*B :lOW~bDD}~VƼˣ7b@Uv i%h?0l} +;]aG?k؞OŸHNYacV$O?"MDIENDB`PNG  IHDRx$IDATx˯eauV;n/8nG1A [ L%(0A ! #9 -A2 Ho%_{g_kNWu{kUg^p?_?3>_^^6'_1U7 |g;ֻԂ}t9x`̆#O 'ׯzKW+o|G7>ᵖs96ת*+sn1kjz^X|ax}fPe9z^*+[+0w~ex}۫zm^#9OUwl7r+=PC__{@^ceR9z @ ]v9jɯ; @-V~{iG{3GoϦFr7՚Wlף+n~+찍 _zHMPk/l#yjRndK+-ϽݭJ׶ނZ @KS[oZ 0Q5jЏsPJFu?mR8 4Kio=,/^N u,g)twrDW(˓:͕ @)ݞ,VqYJsPJ'GBrPJ`ww+ph]"p|*Dd yؓ 5y0<,P2sࡼ\8H< q@yZg^ i#?@ v9}ރj_dŭwy;>p>U? o*bI|<1ǯ|؇}-ȟG}c6s7"Ew` v{S ]v=3q_` e-?6-I8<.W_y_`^xg|&y^\29_>Y`]pu_.vl\O9e-J-%y,^*_?>PYU2$s[!ׯ׳p'y~4^*_U$OZMyV AMmmɃK|Vy6=*M'x8|n<WO ?Rj^8 D4ջ_^3}jm9٧b/}Yg%`6u)U׿pPA]¿W~N{[oiV:?RCRZZ8h /JP-ߜ{Oi`A #ܧKy xgͺ_ކ˅'cpyS?s*:Ro|{k$Lc +?vLɸM/:X8\J "q|K|K[o<:;9gQ >|˥|tΥKݹWRc^Q`n¿/W A'm,%n:@NOr[s {z;nS?s.<v/+5ꁦ/{amXܮ䆡"M*_8H\@Ǹ_^۰+wr?f 9S0WJQ!#ERRv 8eɟ3=K]}c{vOT#??@G]8H^ @&R (/I^BU 0%! uJ#5 m'Ÿ[((@?G>J-y?)  ?ck}~`F'Y$h` %hg`,%hg$JP3s)@?g.ppvnqS)Pf\ f\~6Ÿ )S(?(S)?)sP5 fE 0'%XgF ܔ` Ÿ)KP9 ,E Y'=o.a9c'ڥ>oz7gl d`iN L!YP@X@?+Q֤lP7ϊ)[oIwVݼ x{ϯS_o}G"3V:Yz+3ߔ%%`-MEs ֔6=_&ﳃpS} jXEz& Dt_+oM(Bt-ձPL.@t-zd *X΋_+_~~㠶:[<Ԫ񠙼[oES)fJMS1vJIS9JEJA%JM5JIӘ_ΣSj9GNL|Z1K[ KmsY$w{}eE @‹ZSO_#?&1O E?>+G~"g%J @/*5'J,*Qz^)eE,ߥލ} K0|}_[?_ XUezS @ϔF1wJ\F9 PR(0'D (i'J>[]ܾpK/uA6S/pVRŸP @>9)(dS($%J) )L 7]sχ"XyXv?Fj}NCrOnu9!r >{ w@0wK$8@|rs(=IYs.Ѣ'@iNs.q eS'.;W)f9/P]aV8_Q!&wϙB2J5 >'{T SAs0A3|s9)C `M6{Ζ6=Q$wٚf'!X95PT|AO6=`95QB|7(T#zbL Ĥ}[ouh'.9\ w1a[p>u֟@ux\t *P~cp'@svi_%@Ղa.7NP^DrSw} =-n\H ͈X[ Ԗu]z ހSֺ^KQ_cƞ跼?^X=אַxb >+$RhR1׷'i@5w?OVO n}rmaEOmSBA >nDO+}+SIw?'q ]Φ9M8c 9G0cv8W08gpw$rN #@Q7p[?'u59a3i9xs PJYx@"(PJQ@'R@ [tY)S}v:X O}W%kX Y'1@ 9@ %@¿O=۩]z u}Kc5 o:,|7(lOg =& قAS J>{N v5xzR'-$K/'sMfyc,}>=I>6c(+yKQ` I\*y:u$OlɁvc_MU=Ƙ<'&Ὼ-{1+'$Ῑ.{1? p^D~ϰO5> a`#@U=L2N՘=D|VU=&y'_3{lr'ߌ4{r6q'ߜ5{rӒ'߬6{2nFc .u;sDDy`}î᥯s\Ód t 0').yI>c;)ܔ}ݟY=:k>5yޒ݅s[si+*ī@=BC=J>K&v (y'O-HB)iyiHHH<'vKV0qɃzKw?3+]lc|;ɡeB%Pz'bNɂGQ)E + M%W @?.xTR)UJQzDGY)E   mW tAA`l$x]#!'O* y0OJJx֒KR>!XXRo`*B<1`+}ץpC /IF%_>F (kJ'6+}$ϓ+sZ/j/y(eycwo.!y LI7W,-"N`1<@XRś>q\<.LXJEp)$x\4 %?PS%=p xo@Kyk_J) "e_z "%c%N ]?Ѓ#$k%V m?Уܠ\'%s% Ä? y+(J\QJ@O ( π% % Tnψ% gAU>E ?EWRV*tX !xLJ@N)zR{")])ykJyk:/`:%K0%/u)/u@O J@,G h{Sg@,O B?@3v|tA h+\+Ie@]B[Q~QgJy3=%IP%R^CP%)DLyG0M%h7>_Ji:w@+j5T~RvWuPw ?+?kc@G Z@K q ڧT l W,?J@U+_J{>U?@*ny6I$kzR1=om8|\M\궻I*1RJ̻/U63:x@\w y2$z@00kEUvW.>^#9ˮR\E >NX\7 `S 85?-cKs9yN^~}ԅ9 `ij3_E wi X09?>|<]yCy `kJEι `L.f|w~W?sy 6꩷)dXO} %:Ż"ڠ2Z4ZtJ 8ޔOp{|R?@_#>)7Pp4H x]3 A (['$+/Կ L%*W?@P oR2Kn ~ީw_c?u[&xe]J!% c@p\wLq i a Y K'1?DYI>o΂;<1:)h~?5 ` `K v ?"Vm `K8ys}%P^_[4~ko@PT }[6Ї׽sx}^gofRCY @c PG~Uks`^m?y{w~b|7Um{`?jh.<+>h p1mžSKu3q$dl߁| )b.1!O (zIY&⋂~seo.Vٻ"0+py~3H4Jzbgx;uz?2v.0#L1_l`c <̈hJ$쎁4Hj d,=¶Wr;9;W$pLѷo!9-?# ȱiҸX<e=d ]Ǩǁ671PN}i8gZ2H e%G~`s}?C;\Ь < '& qvYr"8y IS:$Ɲ\5z*}/< hxN:k5[ZT\- aZP?#[5, n ! U%fg\m*8 VW;x,.Ԑi4g{m2lN|;s[Z6h,99͇9x3-qJIÛ)7tFV_!ŀ4A88[=T|EWr+HCs00fj2i˚a@0dPs'e&h4IFU#S ($M@nrѯyXP(5Q}|QlAKi> 81'KߙmGR_l™DPeM'y&;GθX ~8YdH@Im2\m p=i%K=$}x|7OD\`\w 9쁝bOv@S=Y,ߝ~vl퀁Yf-c(m0^r3a:2ۦZ nt:™ݍy5_-&&Ie,#4YgS40@y@KMQjndQ$f{RL @r9\7D9"%@"O;yQ-荇׏luly? BD %s[燓5G4p%8( B&kEIgzwfHW`l0bu3g'FG| GU '6 B5N-͌*XqQ? 8gfiiuq/c#_w.^f|PQ6} r,P"ðB(VKAE{yIShp:L1l0T>J``ڧV ?-AYxRnվ+ֆ|cfJk3'lX#B h-O_v]-l{\r؊<2Br6 2i74G$R`0*za4Njb!P&*;_@VyCI6U^/qOS &,y953[_Lߝ~v`mC;n݋.~mEȷDd@;|kG0/yh VjrW"x$Rg`*!e%yǾt1Hɠڑ/.-?țF4o$v30ט}<̕Of譛vρ㨥?@$6,g\? >o.0&ȊO8&k4 *LqzJۍwvXb,\L!=xQ" ~)a,p6o{nE=_m W>R D8V!bQ# LM gWo &_Hկ}/$E÷rF%ySe2H,8p+L @ WZ&,t.TVS>;viO^1qz4sƚB喝ߝ~v|Ђ=@bQr COt/ajLAao'o&MZ22+ x£HDu -1 ‘Z~$լAtPr+gtʿsz+ɨpO !=o;" k@ ݈Ģ@A dKD9df˦LARe_cL#Jw8&k< E \?8Kvn[jZ!qY鐏8fRCңu@ícA0 tuEll `>>,EDlZwRD?UoxpG4*i~ Q J3 M )qFbm~.W\RKofK i,ܒH ãC<ŕnv,5{yڊEЃj{: %(=y`W}IQGܣ " l]bgc,&z%)&p>Vs ؟&\\ţu]~փL >8o:1@ۛ{c;ԏK$x@ݩi~ q+7ܸOkZШ(zO`;lfrqU$%+>T} S>,}|o2>O3/ 4G lgD T9W,ȿj15Gou6K>QxBh&Ņqzb$iذFSpP~JmI{$B!2sW-F8-.F^t>ykmE2_鵥w>!O"&+ @2ūf:q$jpuJmZ,m$񩨣.= h. Bz/ߟJӥt¿HJWk{' fΆu)b-wNm)9-E1wup65q? ~XTPiLwuZʹ0E12 '0w+RnFCݙz Sv /Z7( dv5_^lb!  nƃ`p{ow`^/aN]ےH)='N9Q-9v`"~&"[.,I:cw0 ٔ?`RyM"Z݊evoe,/d;@ I"e>BmYqZeʹdN,#ooxˈvtV6 9,N8v1t[.~0߭Ey=?`9/c墛͓PV@*n8F9 4׾WƔw;xK|]3auX ])<3sUⰛ,%v^(W `>qԴg\}UXhNZ+=H@ Ml㺤m4#ʼ 2eC(YXI:m ß8⢨L+za ~>lݘXS\v\i\s>f`er^"NW@kC QZEA6 4ܖ,r?eT$ ЃPg[嗔F}<&"j⡜{o}S*du*w D6q&TddJUx,eEe̎0f%+Z9_.ymd^\| *23I?SOynLt㡘UI׿/Gb#I3vU㣒r䖚] $7Dͅw3Չ6ǀJ:4{JG(;Tl3."bmi,|l79Ix\ʳc'/<,P\@4?{N] ݾ@ncZ.+7(!-&`V=42 GVUj-eB|`TSEKtE0') 9>Xx;\V蝒͉}%% ONοߟIt¿n uC URxvL{|mܐ|o頀AC6!T$j5’mBܞAs= '1k:FaRljTJmMY1{7!w1==SprO&:jzŮAB3F%YBLOHZT ظb(F[Ͳ:/$:f˻04+1pʁ'?+ TdC \}UXhYlc߁7ܢ2o+bVxzC4Ou.*@rVuIPx}v.a~ϮOq"AHo$p.iEtQ=(l0 I O xj*.- ͆c;A#o5A͈˴K'=7$ف qs]'ysD!jEyUV׺ja T55В h-mߙEn52QZrn.'3/daB󢦼M'}Nc GYaqG|\Zrd D&2N,s.g^22励ҍC6]j z^?'8d>U6gPuBIFFg"ۨvq=bD~<߆gh׈5x%rQ_ ҃O|ؽ.ԩRxBH KQ<; k[=`81}LX!5'F_컣.~jF6(iH8 cYt O1c%RATXk&hNޢ#p4i)cWjJpt[E@~ ;FM:M#rD=|s(nw{4d4ܗ8Y<{z[Ɣw¡_~!Md` qo'@#h|m.ѭ/%1;D`Y$ǙB9RgHXg2mfF|#0XD674ik5i2q@^\na.MER<)NǕ1v5NSueif߈ਮ(Jvw9Z}&ڸeF ()nD7"(zu3J)ixEYFH9 HrL28b2ȖAJ'4ƽh ț^`Ci ޔ$r1;șϔP2CDlxbK.ɋ.Kܶk\}O ;u\FeKMi,sRiСk1d)Uk \1%2IߟEtzn uC U1 ,u: w7ieB۝0)oc2K+f#wHg-]}{A|'T|Râ8u_H >tuItG(ߍ} {3~ߣ`4bY!΄tjF2` 2b&GhNIgulk9ϙZ0XJ&̙7 ۷|Az;4g eBU KxE"qح]YЉAg/W>5i:Z QN\r͚U&MjLaPOֽJVC>U= Z1{Bj%^݂YWvZMM^.:AI"04,%ʞ r WE&X'b_ujH ZYn4tMG(@[^gTGle,[0\ Q7CõٿCBUWR]PCY҄xC7*| T-*ѝ y*d pt%03p>+،77HQ]JA F#w%іrmWbnq0j5s~|_^Io ŭ-49 9 ~c[`6X.bjG Lq08@M.[P}$%t2oW XU57l`dE=!31%~Sh߶\o#X[> w@ZE+nunAX;[~D5#̗cLWhC 8)]J!ܫ~,Dã_[~#[keaLP+fAO'CՂ qw`eL|_f''HV\tx lI>Ge s=aWlkr *{tAFFB#*><Izw˓ZVfwyPa(`x|zV , ӔYj7}{~ B+Ny2!?:xАH{݉3SÓ4?Q"aT$Y ?$Ğ1JQ<;t̫pt#oic`Ls` VmiĘ񖏼MAYVQ7n"g ]ŘYϱU #k*)t\ Pk( qY[I4#hi6K䟃r?Dgb4_X 0T`EDra@iZjkDC(,.deOg^AE롟-_-7}͜;jDAv|[hʌ'j9Dw-831^ V^E𐛝 `MMKB/šJTY\z`^Φ54<8_ rqTNY\͗J X- <`#r(u1y;.Aoy;f_9Ņ`X 7!]G}_W{ J8p.n49}yR68 s⤮>oߟ߷Xu97ŪݑWR#!/ 9,&&sP?~Kr0xNc`4yy @*a yv:/|ƿwJ.SzvA %3j{YDuq7<3S@2EF%ϼV(o_x'r퇧A^՟]4LO&HwIOM#r z :1%K[t ¨W '†syj*p=&.!Qd%!%1F9|˘tyV&@۞E83Ԫ=UCHOj["֫}g/g\N bmܻ֓[erFh7oyD&  x޳3n#5܀|Nk-u(2^-$ݲ$aw)qkd|':SSҟH›|^nZx{1E:Y7Pʡ^m֢:G=$p'wB;{Gt7ne6!y'"iOi4NJE#,V*]F8x>o:$u 曏۸hO-^O3!K3GB }lq!9aa=[aQJIKf =jߑ-4aOy6BKd-FwTϥVz0 7hC\tHkߴOw=4I*\A{G3tm҄ Ul``{ārlk|%b7d׋)8iꘫo"V{- ߵ܆eb+\z} wj|ã6+봋?;N/3p U1Z&O|4ewa4U$)׮Vucݓp+y?Kpa5&hɂOԚ~'[qq:"RHD?cI*nyęԟC3Zyⰰd.#~n dsR*]三{3,<70ὶ~;"ɋ [o*1QNU3ARy<NR eU7Fog aBN)Vt˥@zV{厎#BW)ͯ?JHI2kȾ Kfۑ qaUp a=`Xk{&E)ɡqf TbڲP&N,(Q b1Y4T~3ꥌ%^ }ϴҬ8&^c\ T^w8 )hdTv/?b;r2QN .w 5sW0,LWr1n/X!Wq/+@oY5MZǮk?\}X*7q7y22niUoFతƇ~;w/ BCV":hT/IzmN EsQkGfר[ 2Pk<ٟ%+$JRyX%Gޜz[PŬSJm1rl%pz ʮDʡB]&}8FӵhY%K,tsѻKb}Upn3{'_TorDj-LK:x`Ǽ=b o-j"rO;8(X}T.DĬ/eҺ\䥴msXmW1 >}l!r ;@HOYByKleg7Mt]4 RuS8Z1B #C?'L!JK%B_2QU5ģkI[Q ^3O! Ӥ2= ߵTN 4+9"߾cY$ @*kqm2 =u nӉYu\T0ֺR5{emh{U;ϡ9[B:_uf|mEY/h"so -H#TѦdGf@IsFO^Bիa+6R?l.KCTdppbFZ)930j5_W(nbт J`_TxRM h<X{KW,T5Ém(A(rmܞVSO!cLmVWq7ZEEOTD| TUYs7tc@1$]:NW+yHlKf8U-+Mld>c䃨m=3 &3lQc"O z8$k}$rSh>*:9H)b,{ 9 sW0QyË ht_7 a붭K TK-|@}IERZLT*8c/+ʵU)ݟ~ٛa 2lXi3в_P[ꛍ=Z'Ư&ҦPutj,6C8`ơ8 Lt4jͬ-:E\^PNt2bfڬhiuX.lGHSWE<,6x/FH!y qMYĉWe4ͱޤACG1Uiͷ4@/O(d*Y^OA^A9X-B#X|wԟCs lNoi ASKqp[؞HX;5ލUuԌ^K&>aqVm# *jW|<(&jof0'Os3jg [l8)b#) ѾN(G=HVko)ߙUը4 iFT"!ID(a,~q%M_sFHZG&R]+z!QKd%ٚ0|m)ZkXHKGB3VԐ[y--CRT|tRqdjw;aK5p71xerP a)c.V=)]Ux@:p7:Bz>a4jNF x_ 1 A.“-New7H͏X_J\Jb:w/IT_2Hi[}*e#N2U_^@$JrV)ek";): OTț:dAFE"GHV\܋z##WRrU "fsl B0=r5\\bcЍcxNi7?TR4%tUƛim\MkXK*?=!57V$+R+JiTx[5,H] MdkhpǸ5lq1 UCN׶ vEBD"ȠL++?ߟM"_@Xu97ŪݑWR#!/ 9,&&sP?~Kr0OF`ŋ6sy S_Bb8焅!ggxf =I  lRhmthaw؝Zʄ)<,,k)=z[Gx.Z{+?TW.66=U X+=.] a,$z>LC`=յ3\Bb*W/~A}7LfI[)8<݇pKQ7 ư$Es@<㑝׉o:fWPSհaNRüfp p n(@PL<Pw lVzK䵉L Zc5[TgG  i:TPw%P$*Pc1֗ 9HATVC_t>Gd4< 8˽ yEGW]aB:l䰭4-d%;z[;n4 ϊ$]IRFVmFt+";ٴdQ a eTre]eHj\\2,Ƌ1iPf<H ? u6ĈXLUII2%qнN/y$g㽮_t[$-cHzwM*($P(ltFrurDK&ge{ؔY{lZ#Ь0f[xYɴI J˛'r%4KT*Cg?;fW(O:PRxp%M?Д@c\.\v)u͹)9XaO%4 vVdujTF;U;X)#uՂ>5X($\%F̮,ށφJ^=ł kbC%4_C_쀈Iz<7Panz  ?JHׇ|ؖ0"@;8Ð0Pp?βIlvZ,+ocNjP+H%%$!8Y ^.~! xk_dGTq /^s=. 8:ҿ=4!\[dOt<#w׊!4ai/Ȫ= Q'3 6%:}HAj^O]08i9bJNFSlm7HXº¹& gȺ.Ue>⻞ 9k+!YqFUU 2XyKA~ɯ8b2T!ړŇ ljd~I^OFWSTI1XKdY<"Cׇj8pAp&9d򑱹BD= jCwny g7_o''(R[tJAG3u%}EecQ)SDeP>Ԏ&%π3%B#2NїLaS~tbQeC1o\yÜ:\/i#VsKhqКws~DQ/gIV<Py ['c17'3bL(Iz+M"Ϫ.J,CS0-Du1EtA4rH{8=e ȹ@"J*:@v$7ULR}g+:fJ͙mb!&˧V7`$e~>w ̐,h12JzɥEW8 8shzILSs=4{g9,@NJ鳥y,NE*ªmr µ:8,MH4)={:%3|@lb[Y^(, qJ_gܔ zLI-궕 C zii# S]cG˼ }xcGAW_3΅ax|jpOGnļ)TLXOc EdןȤUXzFS'z؍Oм)Ϣk)5+ZWqƸ 2<}<Vg;VpmVW p ؀EfZ#O슲2U_^@$JrV ~:ZVFu~58>OKf L]&nꉘRei OUUD=Xǹ vb&+,iRrN=b( cѣz8)$Շz*H3pe֢RK*敃~;ɹ 9ڱs]oމԊRfs?D/j Y4 Y~i~g,īI'U;7[7Uz0*8E1ߟ_Xu97ŪݑWR#!/ 9,&&sP?~2zZdW6!H#D(BHҹ3PT QL:C@ec!/ @qK?3,] ;!+EFum;@w^ZzK i.GM]kY`#$$3:dE?Pfc XOnV$f=ߪ韩o'}udx.VAcW|r,5,ƨ&|QNScO[`t/qX-Kc%pI"#z5yAEl~G8"O|Yk|E_9NbI^YMq}TJm_s{XG {Pܚ{x) Ù viKĶin;8ǝi )WgX6<ZCer1K=P66gx4K7cIJ5beD#ۢ4@'#|r:"]O)(AFoJO2>Sq7 x~Qk0G "z7G}e~ HÒ7[n:^9پ|4-9yA`3Sb_]!ʒ9ڪ@YUmcRtUޝOW×Í$:ښ㵷o?sG<z47hLne +N "tJ1CPKjN.L/Jg&і[ߛmq1m x:)N& sOOI%]5.6-.'|עzafGNpk`*l*丮zE&i0(>Hg9"<ԯOf#C-JӼ3e.C{wSY9~&*=Y#Cy8z̈'ɮŗPt nNKƻYÍψifg،.ba_pTԶɘ(Y$Uw²6ܱ2Zm& Xv4Ť8\؎E!ȥ܂ M(KqmJ9liiTvHSF=^ƸoUQ+qO^Fi?f(Z]roc +v=)zn=n)vs >pQ3@/&ƅky6 ϼ~͙pn. .~r"M`-%,#h>8Z1B #p[-n/2*{Uy#7 >B! 3qbВksu3LԋnMwK>tSj`>NQ[0j-&ֺO\Lo8"R.8+nK0Xx n ,A 2E簜^дICԷ}rT25M/SLFptUXtUbuw>GWYJ$7K 0_JHpŞt] }[3a ʬ1npIRLޣJlXS y yO|pC*~y89-ԧ:k~"'~~_5'pn O+ )ď͐1 &6=1GbT'DwaQO| TUYs7tc@1$]:7MνRO]s2Z]ҽz6 DX/cx$Mf_.Fu*fs:+m(bEeG 8gP[ٖ6zucQQ^fM{/g+m-U+ RӋun0Do>?ނ5TY yhچ_3BCv,r $kM4K֙K%P%6/{m3.b=kH'fp4 H6_\6q 2G'q<+b(gRnFn8/NC-ס2q%dcO~ ԗ[0-hG;.%!OPH[Ʈ4~v%VBnbp>hQs /0 j@AbLG½uEW/MÅ>v7] \gKMa$,w_涆Arl#~y!Q͡f~EXx 2E)6ΊWnPD&2 +Mp0{ݨ׏Ư[1k^&A\T=Ւ&q2\&(5$ʽu@{ m*O0%D]Ow&1?8"9LFj~A&p_#(iUgu)~}Y+b^K+̵FU)M!6nՇt+6 7C$XOjzER-2ePy)v',j6$I[ j%2㣞sEj8|YKHJj8KaV^~ӽ&=Ë,xTH0U+Up'2sbK6nCH(i8YSTK=%#Pb_F?֨$l_})ٽy#,E=O 1dZžbߞOZ0ȝi@}`h*'F=ɏhD,"tHƨ=ֆNS(ERWet H HDUžBaܮNpIh9?pURx׃1?kQ70hg\=?Ǧ)!GLHA_29<~gJ|z,^Zd/aOgh*@!<^c[ˏU1jӂ*C5 \ `3zޚͷ@E!3*7/UItQGjC-@-Q,Ai-Î+ҏ܆e?^PR:A@+: hL\iVpE̋ (kʄ~ F/X mƱel>''P=^k%q@7dgcJU&lEGrAǥ,!0Џa%pjVB90rZ T+Bziw0;lK}qȂ5Pi"fˤ(N+UфTU l$ZB#NK'v-JN~T{Kmqq;E{;FoZ3&q_k%NQPGi4EJgnyuBt6҆lI+Ŋ3_(Y_DpcX 4,:H"XK%\rn GlErDm)#S !}q"rJo>%,xgZ6]ZiWSW?YZDI[Q_BH Y@o>S$Ϫt{@ @ A>ܲ<\i&WRE/  ƭ Etmv6?JépO? i(h"4"woH5zl2Ї6Kc8xHLѢ~}청[`;wge ZX+zˮx%w_s!GqƕG[ # !b0Y`3 ָJƧa_nO^(ƕB%~^e-.2IJoCai_OyB=MP] z ﱻ :\T|Ww/Ӵp0qR81| nfk}h:PݜAFd\Xbux&zFsDcl(6=#bo#P [@S&rHF*L7K|n!4PC庝>DD_o2B]8I4g<_읫\'^P`m&L?gVgN6ߜ-&p!Co?n?zfS 7t|5ZO?k= ? OяYmse4?7M %}*'cc Pgщ8j_7zlVz%3k,9,i+5U2I/YbkN(oDE ףּяYmse4?7M %}&I=^k?֌Mi UQ mW>rzԐAgQ~ :8` [LtRF$ $4gvj' xRL9`.x6rZ_vpc]4rY^[ngÃ?ȅ,Yb^ށu/L♊ /*,?Ľas_"ep8q p00w,⬚6X_:=>\cDB. 8%yЁclqRԩ. 8;/̺.iU.61;hAAYڏ8ţ6?Hv L8ezR|6ZM㤴?^y\rp'$v@5=;k 7+?9C @, Geķ,wjbybpv*$A ij[nzm5v: 6"78U^vClpƦ< Qeh븂L=f^]'m|Ad:Ig1Zg6=g&[kQpb7GO~A#CIeeIx쏡˽hCϸ)2{[wg.ȿB덦ٷA FQ&_Yfcl0#PfjAb Z$}[&53_lWq$X{\Z{d fp9CvX=.3MX7teQ@ze`5ؐn| g+][WeBS3% -{1$r5LD %~+ &0R(? TcHT*܎՛Ͱ# KC1;#GmO! ~,3O!Z2/+G1-EV2BTQ" 1ʓҔAvd5K˭' '}(?ztW7*tܫ}:N{TWXiء@{gU,Q(άMǝbl|WJt#Ld6C\Π"OSߗ2pNRx2[0^[<=+%wv"mlu}WD xKmT c_77á]ȠZ2O(X_RB\8\ux[^P eT;ZenEy{+A,AUP3 ,^e??X>]Vun.Zkr4PUD:ǗUe8=;/3Qtui* d `ԁKʕ^a( |` 1'$hpQF dz ,h !v > ŽSp4~"-'ʃ{J#cҝ/hZv(@+3IW5f3 C]?Q*XBn_R-Vv]kW>KUQA@Bc1PY8-Mcȇ/DLba45!C~q7ŐhjR]Y+*iy<cMkE{?c T=" xq+Ar@#8v#HXNZ ɾ V>\ _Ig3a-8o5Ŋ7J4fmcC#G eN~89$aPU['&~2I5M^L6-2$Aտzpp0P{lH1ې˨椽[oQ~,`#Y~Nÿ :3 #duGIz3jMu ^W#duGIz3jMux6GZxt}#6^^(ր^<#%sHͨe5׃۬H Qc.C2(72p7EY pH[_oUqyP]Zwߛe@jһ { "$=d{<~!37yr-~;4%kZ}!v0KyqgvÈh{뗍JfylgX4  MB֤H]8G^wc?z^Nݤ9 !ٯKVRO l 6D2,\۪jCJ[⃟1OrdH:8Y&J˃S?K>|=XO9} 9d+eqSܵ!̞G שSv~|*{s'Ar95ON!&C9%-l:iLP1tR)%otʂxL4u$6,|Y[2(gKDyVyB<(?Cӣ_b[G-Vh\,;4l)1bP%`X&l)1bP%XJ S{b K ׌=œ=3Ե /"nU,b3;?TmQ.lTl W4I^eVڒ;ZiWJD#Yd$bVyg|F k4Tm(oT&,)`?zM~Yn_mp[wĉV@i_|Z)߃eC*Ŭnip_A,Iy*^}⭤=1&ҝ䩐U@a F$S m!@Hv[7ٔwv - \I{b, DMpu@IqcrzԐAgQ~ :8` [LtRF$ $4gvj' xRL9`.x6rZ_vpc]4rY^[ngÃ?ȅ,Yb^ށu/L♊ /*,?Ľas_"ep8q p00w,⬚6X_:=>\cDB. 8%yЁclqRԩ. 8;ThLv鈅K+ 7qOnZ7El`HN4ٴ $spw`̃;6,7l=>x[xfwG[xWl:'|#z~v4خQcTI ac-.-2ָƋ55bxWVSl.J>N|@x7FĭoP |8ދA%d8%`DJqrt#ʴ  `KSd3x_ý9P):Y'.`dAֺqZ`q3or %̈4yr$k/X*k? q6  Aȃ4+ >6T3To|uGc>X-ź}.l5v1yv*CwY.-u+Lp}R k͢x1X[^!nA֐i~Lպù/ԢͷZ@٫͏iO34ODܖkg =tߒ"O1Ru -:oJv =]B`43 GCG0T"%@=*;T5mE$#QKQڞ'dB>qQ̌~E0*{*Pu+ (8wS+`RxTB610 A7TvF?O"|h^&%uqCk p"tdhv@$=a=|3O޺zI?:^Ű?#H>WY;G!Q䁡p$Kg05Ȭc-eCLA3/jb!Yq 9hXiB&BQ@ v3$R~Ch\){A˺zqo^ѭ ŽSp4~"-'ʃ{J#cҝ/hZv(@+3IW5f3 C]?Q*XBn_R-Vv]kW>KUQA@BMyL"m%pfKO؞"P9S:nXp[OuֵͬHEѨȬ xJO{ }ZeMfvx]m¬40ŢP, )Nnm#]_Ga!гl,C|;!۹09vՁsd=j4lݷ-ur#7#א"+'e70ߌ1ά`wbchra䀒\7D0}xk PGu,uv} T|N7yaCu\oxm}*d,eڣgg35x1Gc2THZhZ!!DsWRP&V44=WO)ƦG b%@Lx~[ɜE> leai5>>br0\^SMDJ1Ivu ^r<$<@%fƴJ\{hRxJ:vu`?S}S=+F8p71n)6er]#L_ M'JSeΥUN>=" xq+Ar@#8v#HXNZ ɾ Vay 3QTx6$Շ99zD^"<N 6ΎheY .[^=M#Y<+xݏhI/6ǚ,o},u0>B>OQLtʸ$%>_tlGкxG:K>PkULj΂w8^x9f2%-9xt}#6^ˁ n#%sHͨe5׃HmNZo"ڝvh?tezj@XG.0\?u4l8fNQTD:i D28xI`0œEJϾt^7/Jy屁x#TlE9VV([MڧC߰y7`*%b'g26OP.~lPC]7msr93V65pf6#vb-NYa_'=ήf\<<Փ,^>0dq5|:n>tqMzs>y@q8w6e=/ K&ہU;oz`+CvG ׫$"g'tͩ;6j$5b5Mw /N!&C9%-l:iLP1tR)%otʂxL4u$6,|Y[2(gKDyVyB<(?Cӣ_b[G-Vh\,;4l)1bP%`X&l)1bP%XJ S{b K ׌=œ=3f*d:X f&xF k]rgmEt2+N81y "w@ hTN +q凯NnACzƗ\kH(T.%>K6̰Oq3/Zņ*T6FJ"j2REW܊z3ʀ:_+QC7>vy+5#g/3,Z߮@G\j 53]5.UDC5_ _sm-'Ffćjқ][#n&oҵtov6?Lëᢟã< ]+?ᤀh"4fFOQׁ)3RfPtzٮr6kJ-ާNϾf(JRl<zyɪs:+& 婭sl70W`iArW -& R#+8YY P_Vm$3 4g_ʆ,,gdU|+}38L &(9Ƕ-g3m\I{b, DMpu@IqcM2"Y=3}{%)F=τzQO|B'LO~O0mwpc.g\:V;>FyDbYsvNXFe(SծG_ tln&OEb/rm>uǦTyTfV6-^j #Kej -zySRuhXGU:4rO?ko{q<(C=ȍnKTnE-m !AS+Rk6%~|v{{60e ӊ_6r n[WIf:DHt=}yq^(R[*(I/YbkN(kjĕQ mW>rzԐAgQ~ :8` [LtRF$ $4gvj' xRL9`.x6rZ_vpc]4rY^[ngÃ?ȅ,Yb^ށu/L♊ /*,?Ľas_"ep8q p00w,⬚6X_:=>\cDB. 8%yЁclqRԩ. 8;ThLv鈅K+ 7qOnZ7El`HN4ٴ $spw`̃;6¡XcC)aDzAd+o ںI]2g(Q^?N,晾VfW~\i9 Q RCSYZEgmFD";?m~iedah+ˬV)wF5cnj$Yㅱ7X`ϸ1eх@ nvT)319h*5!^zٸsĵ_U@Cq6!-w(gIcj.LD)ޱc_zMZfs36>NRoDFmJ7nizR71H&^(Ws%; e*X:C> q $%1wp8 [(@^%lI;Q mf!u *mE.?GD#jx SuGmdc#O%@nb+B^"U>>ڨ*4v@$!LoMȉ@/cx %寀8dF͂FcfAD<*!SHzýz*fu aQbgA.&A/\7xZjBJhy@yn?KTR+yO%~{67`!BVsЫT{uc@jNM ŽSp4~"-'ʃ{J#cҝ/hZv(@+3IW5f3 C]?Q*XBn_R-Vv]kW>KUQA@BMyL"m%pfKO؞"P9S:nXp[OuֵͬHEѨȬ xJO{ }ZeMfvx]m­xҝ΃ GR1#XQyRRPa L=;j]B%@BF_,'c֧\Rl]KGvSf:9Æ Nau$uMiM</burU$*:;?=E27 A[T4sO{z2S2Ǣ5 *Nv CʹM}naG Ll1)i;k̯}0AFd íWe?\^SMDJ1IvBi$ d' ,(JRZ1#ʜ8U}&&y𗅿`?S}Q#n1 R]OG$ްɨ>EG%s_04jRhqâ݋(ۅ-L"*s`{\^SMLHgTb'BC 5Z7gnŌdưmTΥUN>=" xq+Ar@#8v#HXNZ ɾ Vay 3QTx6$Շ9s5*!FYXS3jXEy((幯O[yԉAPKu(3ñi 0ߔ.l_~dsXlUȁz Rk! %o~U-OXB%#. yw'Q ]oBcFPFv/m篑e9dihM+1: Bb[͏>$]X>VgS~?r95aa6)*~ z Ox5{AȎr&#AɯVsi;M7u6'Ar95vN!&C9%-l:iLP1tR)%otʂxL4u$6,|Y[2(gKDyVyB<(?Cӣ_b[G-Vh\,;4l)1bP%`X&l)1bP%XJ S{b K ׌=œ=3f*d:X f&xF k]rgmEt2+N81y &H- T:trUï;"]郠Szs6yq<ޱU,MϬ\N/)`{@=?WH%rCȎPod~@#`5P$p`;!FCdHo!5ت_hdzA,օ(*Ućw^%/Mlqs^pղ֒\u?genSS$(bLN]4g)WbesWE fH;*JEh'֪o>KQ/{02vUVxO'V;reT "ZpԽQt_5WTD]A|qaGn23E$4 a`ʁ[| rNl$o1 wWk[[7xTubB;$PCPpw~*?=DHpY䥢.Ze\1x`aYk> bd(tӮ+Va#{ڟ6gN2Y򙝸A3f0+EfߢaN:*VYRo.je$p k@ACDoK 8İv-B}|P8{V2{q@q tS^:,mh;G&Wg0XWma ;} OFk^%ڇ#٥A;t̶$*s~E.f؈H2r!1r:^bowW/bG5L͞iJcmhyU9%P  5Y8;RR3/GW-~ ,{GF}9`H`cYew &6٭T/[ۘQw6!!` a_(=6PK UĎ3e"R%O.{8z*l $Z}-%#g_· ٯl^\i.fN"5S "Jea@%%i)mb ɟbƲɕ3T ޘ+u2Ơu3~1|pdaMt.E-_x| pb!X*IRl>g ҬT}="_3T`i2Rm3{$xXS'PhR܃~zdVHIt面b;ѩX'Wv!Ԁ;fY9M3}T ㅨzSE#@$ OXwX&n?F; -w8[LC u8"-81ޱ)Fp_5Q>ʺD G!rc A/se(w͓/3AV?W, 1dべdٚp@YNǢmO/ak\H%c5}}cezž?jD?|*W?85;|1mE0, &\_u?W[w<աIi)ɛ{ϙ:r Q(R 24Ϣo5c:.oҘjf_߆,칧+Yi59yQ@S 4 ү3ʖ}ܖ!@`e ;F$6XBiݝe9z" ? x4`VcAY,MfYJmWr8z+*SElv 'E$0߹goB`Ik ハj:MUssN̪i}jŵV`z!s$_z4Ό>M~oݍ_?߅1;/,A5VMA,{isIgYI9^2J2aLzSzlɨIoċ?H=DyԾӞJߝ}~v4vgȇ>Pܲ:sҼŽ(=rk$h5CI`HoQ&׬gýVhk˝*bqe^7<?ElrbJh/Yw\ "EX_9J"$*~oU#U9 f%;E( B&Vx4{ -GOsQ C}R .|#Y)g~]屙:C# ֊F8bI{d> AYEBC`X XrK]Qŝ{GFM R -|^è*z[Rݡ@0YAe~/qERj_gC"]I:$#^툻r罒l $)֤=8&_Q/wP2 hV;hA[=}ƴ50ġdKrd ,8Ϯf }? e*L1]iJTP*۹0j3p^?,Iz.*Vԗ͢ߝ~vdvQ=q%J4Bĵp9Cྜ D&eq_~WoZwt&eq'Rs%v Ժ3mZ M8g^vsDϝ S% DKc%/QG.|SLrc9:rڬsKVX<5KY[5ɰHǠ͖1nzyǕ8&k4 @;'7gac_hМaG~< 4'CRe]|APwKyjn,fe3׼MZq2Q媹7VF1{(*-`E \0k|Uw* wŝ\tR_ !\ 1ϊ> 2$ĵLbU-ȣWn6ٿXa>+gmgN,:&ik"\Heްk90&.AX^n-ci蕜YH 7k"ϛ.N=G[![Z-Ph|Vz=y@_Hst+6r:)]Y6gN U`+|s~J+OD?)8EgH/ߝ~vtv:8ĩ.&yVʦ[!1Mo ޼A/S"a=DVؓUh7А BeNqcӀTK17aZj 7&ɹCb"kt'|6`0 P4Db@3oS"KƉV$V6o8&eL+덓P[Qvot\ nJx,?ȅYS.̐:#$ax bSf5Qt*MtѭH,TK6=ּaa,A( <"XLtlZlيܥh0I+ `wC֦EZ[IL^)5cK&c i GD\tTmڛ ׁ}hgb?ufPtñ\'ͮ9:[tzODG}щf yg}ѧBeth"_Z-9GJ&jH;;Im,ss.橵Xxg8=}CGUЁ4Llo*:_nO2&-a\ 2f]=g~ +b^o՗-R6䀲OC'M6ڳܲ휳8"wv>Zڌ^ͷ*"ъ~K'.>mxPj/j15Gnژ?6 )DBNff+l&$ol = ޱn~  ˓#_e(y"t^ݏ$?EkwK*9OpJ$O|+#6!j)$|= (|y_/b[EqDD#[4ġkPaߟGWtdi*>}GdI x@TC 0:]%t23CKܻZcf$ud5-) e յbFh*^ZwZ3ȈPM._ }ETga}W5:rST*9e>n5|#X>Evv 7LBR0C{~ǐcuG„BBtEbKiqCgiFU9q 6p@HI/W(/&FK }A?OQAqܼ[d na>)+i8lf fOYӊQegHnz51E05g3ʾ:YHw(D+[V ÑŞَQeĽrZ+uB (Q κ͆WʗFowRߦ 5ꁠvx>K6dEc83H/d/h'#y.qz2wZ9ǝgd~ܽҬ蕨ނP?j.D55zaaI|O6¨Më D(g[\J |. vKhL'~YBkIE) jo-Ffyj{8[mqcՆM~ P&6-)c: _3%CgTF'i"gJ HDȷ\b R8SN EܹJ`cfpd Ѩ&}SV5iS.fO<ɠtA9SdtbYF $'V#pf+30>:L< FAA/jT`"L "ODRлTѐ9IiBsL0g2 @LpZ꛴|P'\`* TS5qzF .2[7,:7evxHro1Уk1m&"T}&b rSKįG4ǀF"I :E|Qj` ~: )z\ݯR4{n5߁Wic@UZ3gdM:0[S5WȤ?׳M$ywk/)ڔ#[:?ռ 8l]9&Jss##Ow_VŅsN" 1T؍a`CjYGc9)u y@cݲwb)?댧~_J_C2vYgXl獢j=o2XZ!CUp2Sj~~Hg[A?b}Hr!8CH!v_ P:2^έ \>QU8Մ׈)jmV}+N F\@;bJn?~Drڅ}*;, )o,qDeF%1P3VϮ?̃^Rɢ F罰ŵt 3g_vsѯ {<7jy xH;k_kLl|g]+UZ: C7=ýoD!qɍױ5 {1F6̞WDZ~zp<՜_y&-JŪ *5F$<85Ljݵ9b͢cGoXDҌ&IFh|o6t!e}0 c˼:[YFJHD3|0qv)%!xi2glɠԂ>5B^-&0ڿhbܺU}5~' -Gֵ]7TAO͑딏h4aX +PH1v &MoM]RbE.tR|GL-Ek!JBa\q\+L'4 P 3%<%4Xx+EyM ,@, <Ύu Agp2KslWO5߁X U%=p_V҉N|lDIMȤ!kw7VP,MG탛*f%(#swɵ./Xn=Ԓ_N.gVla j&9Jו}۾s&*;|dq|> *ibB䇢odUtP<(!E4x8UwR frp)̵6kNk ܅=Yۇ P9f5BfZB nqL$*\31~e$wJ@ܜ\ DhD`Ыp Kݜq?UgQ2r#`SMW?ij${Xцt&`hV)x z!_Cug1N9DW{}y DTKpKXoٵ8F$Ϯ}.sa58}U77O=sN.*WBa a[%_-ǰig*yk'ZT-73 X6)G434s#PP].m:FGNTY~T~ Sˈ'|߆<u*pŀWZ] X`XZ/J+G3[t#jC$+k -T1,Q| V ^\[_{׋/8G\à۠`#= o({!{h~Պ0 Ǯ-vZ}eD6AzETQ[3Q[R|]%C|e4'0 tͦ;;a QI-ti (F!ثM&}~_3{Еqw(}Ȥ!kw7VP,MG탛*tzc=ϝ`h Z 7)Dt;Z=r4 ^.+˼Ce-٢ VQ="$_#Bqyf ]Wj{,DLJͱ^qbQ<9GoƓM~5Ugά䌈ڧ\8T" }{{{K^O:q}<$WPoKRXk犆cHQҟr-U?O:ǫ&\ p#6+LBI=~°sB-96[PQûӢ ԡ{ TRHCI@Hng_~ ϧ $NYPAΔ {SS[j 쮹%4c4Cw,x"7zL_KINP. JެaI'EESUXU# OFcn];? 1m5LP;m 1/oNb:~1?:xАQV`5 *5- I*ܧxjc\;kYMT,92뢾@UE[" Ͳδu:q!t[sT89Hܡ0hN؝t/ _wرW/ lEuQi}"=+EF7fϿ- ;_1GTs]6]~nThʮ{MLI/ݐ>"h@VJ_կ7u,nV?Hn`,;E3l6]YnTUw;ݿ ۇXd ]NUNrضld?w|=وɢ/; B,jpECW_ɤrCzC1#fUmCur!&3" h$xsB+i jq]wed 1hz//pxŢO,+a~UcJCI/FQ_xS9gL':.'S^pu$EYmSC6UhlN~uvdqŗ&QN4Пp=a#W튴,y|^V¡փ3gojL<0][D=Ԙ6$ۇ+$]X8CwJOȷ H,SbO\q]3ZzQ4TB* ȣZd 69ϢP~IZeBS lOU siڣڟ~\ H=P14fW ϤWTC&<#R=dܨu ׸ IzO8hI_^Թ섌K5DM oNMdBsDyt畜O9Q˕)rp[5.r&'RC':0-"x֭V]8b[=r:RKcCD,fzL]h]&=\ڸ0ms$Nua ;ȄO}eQo[ j8~NseoZ5 BG856t蹛L٤ SRR0u4ZYx2A3[ە#|CZv**}M^yfGǀJMAphU$ia{xraNA=56+hi'9;3&? S+5d&z_~?x-[d9Lsϻ*ֈɮ^{.d5jONXIL^0SKr;"sp:m:~p*A3Tڲ4m=[(R ֭vs$ hK bu#[ţ^"|O;U t+J d׻W;s+ q"8^ȸV Xd>K]!"FM聴/[\(P$-<ޣK a?<// .drtDGUj*Y&K*"dVp 9_^}f&랝[ff p7r nK8P_U $@h$Da2cOB9K<3q{]vMZgqTn';M؇pFHd`njR Zc}GEL]E,=%ʷT FM 0 r +,nӅ#eɳÇ3?' Z#TV;ZJEX͑ eo%Ì[ה$ @s0B/M^NYU|˲s/.A΃!{4(!% Gc'=}4Kqmn 9DZuG.yD_=t.Ș4"$FOOF 4~w2rzPl?$ $)q+KʐQ]n"hGg|\9\9w !9}8z~='4wk%m QHk,,t8s4{IUc>&=S/aǺJRWNy01JE5V,A'L(rjD0l`w 9(v%ڔuut6p\/w6Ew4ąbhl\N<%p--iF$Srd G&uX8F=#DW-᥼,1Du~3\L&\({h+6Bs1G:^uE/ f馲=!go >j'rސzzғx'!qTxNÚehDfٷ2e,RPۭ!_fdY%9Df),WMY㜏?+KX@&Q)ӄ)h!#} n?Z7fNx=sM2d%8 yI#+C-iYa)'fʵP{gB6s۠%Rzl!\1h}ۗ:cô7>5XñdWtH1<+y |BBf7+cpN!vy#mhBn:z/l՞ ,M;PO?PABqCq̈́8Vs.){6k-򘱣ff ^[j3X@AnY5yc}F^J^Elfݢq XEb0K ?!CN)՝19xs+ hNJUao3ź(["h,^pG?^X * w1vYjBөRZF+/Bρ|,۾+Ru8o+#Dn)8c0!]dǼ;PϤM^ Bo!+ћ{n!ѝ>5Vju73*BqȽs=!,6[t|8 3EϬ G>7H -? 3~p$kgi6:柾'âOkઓ9|.xA,d sehGœzr߯%q'F(}9sψQ;4x繺 Dޢ14% ,+ytC>F\;՜(>^R ,q=PSʹj/fHsL&?xR壩f\`{PJqp_O;nVZPe8\ "`N}H;ђAOq 2@[ +K|5j9]F솀jU1EKh@Y~]cjY UVӭ2]T_gF s<ҕ獑3@,]NU.[*!-t%c Ms /m$:eun]آ5OX׵ht!"_[kfiY&0b#\=ؼ!_SЗ!@>7)* 4~Cib4,LyQV NbSS\5W{!~ SmWAuNu8R!12*yn F~DAC$äD}t9J. - H2a$& __^ =jg^c ᰐ2(dDmw#>Bg~bJ˼AVj]<c8~ߍʼn)1{y4]49V2U 0i Ć؜{>ͣcI IB[cMs49Z&1=lv- rOc(7 F?:Z0SRb6$,#eXк='I y:I4Yo֭ Q%|'$] l3}^Z6zDzgJ婖\ ~ tPg2:LV'Wߟ-߷ fap6mS=1.h֦*ʭيK> lF B`..zc9P,*z zyS:?ӯmZuRu$ٕq4 5d700lNu|aS&SPd*D!`I10S/`XT9b置Y քJ#u:§\=3ty|[ 26Odv# 8d4 r-Z0 ~B.9?P_#ቛZx!x_Kib0LI:n5}((Ma]udQ4;g~H!̼xc:Su3Q 8oL(l:w7S i'(r!xؾ&Z&õ[})uD9!gg##^&5Q%܆ ::=jFPgߪ^5;OV/!c649_)i=\ubZrªo,>U5c&m7]K)s'q ! =4셸sdEUH.4rd؏f ' gƒo7ۃNpqCG&]k'z5GiŦh4=hz +5^'3[*uH|:[^F`zkrE4(sѮ`M x0Q_%pl>R6g\Hs #DB_ʭ xb!F < 84&YuQY(%:?7%ȗtM1SɺA8L# LBrux,ř">CgGr@efFN e!8tP4ܔpxǑۈG bfgSAO~0 -R0N{HW)y^-b B \H&E0^>Oӝ;] miSaq`SlMj-KU"׃h([ 潋o62D[xe_vvDd BZ S/b&&-QMϦ;ڜXaD1Qe/OfXCx7ǵU1dgTH4O%.KƜr^^!LoԼsMe?C'3!JdNQ]""nj,zGo764 aOg|ttzE(ǝp#^w3RDͣ8_sB{3wBMI6CQ. < oyܦt'ry}ZGYg&:4,2=Aߘ94i9~_k4 ;]t4PE굥ͭ#cvpWޟw4զ?`-jK2Q&S C |ecTD#y[+t!;{ o^RvDviந?2Fø'cENZ&䯶ۭ!(ўǘddO[ằـ5*:hOxqSÕA2Y !ƞ£#UgiG#1 $ɘ]* !dNdwͶ{XH WEʎoz_9`Mk߱hB8limG],rXKIt'/r)Ÿ AQ}=FN%y@lI6"&CvHx/U#HPΆ.=Es-=N5 +geWh.bnj:d ZMvz$v .CfS`Ė85, ҩ\(oBì[ 0A+uP6t>szrMD?YuD1vALWPIesDzHBt %8Di :7M7Q)5eZ:t.~Î&* y7?NH+RK։!>S5ZF5jF%hj7ΫF1;X[̽8^Qs%Y7FlUakeMfs:9K(cW?5*+*#"xZ5|jRKrD:˜}1k$lĞ rސzzғt@R= ؊x8JEڳ| ]jW<[ R$zrgT(a]s ٱP=JvL+ A H"=9*@%O8z9dPBY]==K%.ȲG:qN4Js7B }<;-{`Мa)Ѵtz#',@Yh&wdR` Ul 8A,OTgZ3ǚ-2,?B %j@/iKG@:O/ + >o_A{Ms;fqqiB Is =ai(r8FP :)#וAd FY3 j!6MQ ߝާKx'Lg.:ow2 __2/_j?6%1q&5Or  vfWk *tQd?}4A2ŎTVv@m:[,@+nFVۓnA[ ~)9=4Xӱ\x1M.ۮ3ȗjϩR矧xrcpݡj@aY 76bllD_q* gMLn0.gsX`@&`n,ϻ-kJϨPSϞ܂"Wd!vxV 1*_2'n3,Oab Jؾ_zl|)1ׂ 4.}߄p0#k)ۉڜvQ@H9';ر쮠fWa|oBBj#opVQKe⮎UX)4(; J $̭]pLɑG)>ipͲWIxvG\;b6 .p~ZkK_V'_ZV~I2>QJvوn4 ǘriD"'n'Q SusLD5Jy{g4" _,­G30jLy 1H"VL#7JhMJuN߿ỷ`Rt7EfG8 ?"v,۷Q|"MM' Iws|倻4"!TVN{ TXy hþlM49L#_-h󾐔 /A{8B"#hr\j 6 lF"av REF{pAandk轪E/{Yd8mʧrjy𠡿 +T}?k FF5j=N߂ !KNHF)&8l!(s3@uZܑI30Ҋ~^h`SrPt/L B%$1όPbt;ɽ1 1s2w\kov=嗐(Fj ?v<³}?D)LAd[ 2eV% ӱ%QBƠtʝX̲nd?6JfN Ο څٻmY@~פ K|/}-*mm5]Uqt@ /a"M@YL'AlE6h;]::i9 Zf%/o˛+v$~ww_lWs F$.'p; xCX^$ Jpfa/cSWnf?U X~/u}pB:M,Rv_z$~5UZ,,GjysՓaMٸ Fa1[9͵*F÷12\`kOsJs(res@bl:4@wz9C)( ~bJ#-t3‡5ԮlĞF*zA:#JN{`~ujG3ǕH_!?F_w8URV4S]bɄ,騉Fd{ŸdH'}J@39.$4~Tw,Ush=r䱹<.UdTnuEkZx]ᮦ(?P.3@t? @hfAg[?/ ]M DpƠ_`fLVl[rf"a 7Ơ#2jIb$Oq J"QNPQ,s \.lz@S<ꬣB~ B{PG7cG{Zֻͣ_{3`T׳&-@Xmm 0X%J8Z:ѫ n*B¬黟oG0?PlA;t7 3-ЖteB5:h*w2ۯ >Cqd [~D i#iռ(.+[^=-k_qw}P3|Hnm:i%a* Rܮ]3t/] j̉6ziiH~h)n~OX9o75'e쟮 bH/Wgt/W!`i4+0g}/y! _=P?͵*TN]R±{06`ٚ$-tZ |"fI&JI6] \VM%\!Zzp)dW˚ƬO#9EWmν$k76W.㬱Xl E 纔kBLWOW'4z%]Ci 2T+ n8iR9 . ﳁǎ@wY'qGޔL94WN299`?A||a . .aL9혂rpk);u^x<|RO[,O x6`Lvr}p]KmfIiG6;wf-┥ŋ_rfZqu&Kϐ`ȝD|/Tً`QaL=M+AKr+o7?Ocn]BuEÔCNNDŽHANOeqVe6e"˴2]x`%|)֔XaHj%q(Qy#!<]@7Og^;aO^74Ig%L>+3\à g5۴qLwD("mp  p)w=]i[{/-h,2gข:,-%5 k]ChHuQK^`ћ Xj6h/.ͷwZAn=|2BLVHAUBe6e{J'X(l;rbȣ-+{0 -ߦoqfik![VҐpׁ:|qku,̀u׆IZ0 @G˔bb35BrFIF$ p_=HxZ4v󺒖9[UzZs cme}kDSPlAJ Mu{+5zZ֜ϡ?ߞO`P HK=^%uq)F_i]h"u4e`XӴ"}lcLL q"ngH|=< ƭ#Z̫S)*l%ichҒY@wq\9ف*I6Pԥg,ȳ,W(NM˜GPwQĿ<=mi6 ]TO99WS)bM0`^s=6B2CPɄ9ӥkfU}EV"g{AU3zpW=`8 É`;an/%*,[Hh_+|=r,8#M4D fQ:e ~_Z5,r_TgڡAL֙gz۹rxD ZWp6` V#ƷfAP!~o+ZzSQodZWK9U~$ͭ"+hJZ5Ip5]kn|.gTzh2#,Ri'jeϽ,k5!.As(ܫQSGB Pa"L%v1:^,|.ʗz$ Tx/xs7õ=+-uE$$B+u'@nkD X|0ԙ_ru2Cy#FæUE~ (vx" vmzt!/0{6UVf[ƍeQ-7m,3_jy ل֘<Y#-@١92'ݏ SÌ00+x'b+T +_+@G4)QEnUJQTk}p WNw iz>V|s!^x!Qoe%$$4ri*mZN+LmBi-J)6*)3bJ;z0OrWin#Xh?ʃ`$}Z7>2_2:U j :I5whyaX7٨YiJgX=8ݧ}셯5!mH@e}a!TsLUw &N29̱bK};!R?x6!6s,OMMaES)@2mH#5~єZHd?G~XN UxAH4O@IZ&O[?<ť 9DّG&D-صv՘/_GxŌ%lcSR]V C\7.)=K?tYs+j6@ώ^Lv6R<#:,E7Sqɘ'm Ü ;3Po0fF9Z_< cȎTݒ!( 8w*L͒v($ sbݐ, d+Dzkc,%4[Nt 9H@5P՞YD|k/&B?iS[ ,N8FruHKUPFl(RTbMt VXwV5,>LOQ&v6lԡOΡnom;. \)pO Xh8"8, 186Ih\2FNQii2 $.c;YYrVHJMwu)JA˺u, AF|ѭ!e D˻BC/3g[|:Ҏ֕f쌈hKJI[6@;#A`$DYܣ؈1eW]Kg;A=ܳ0cffplzn~vy{\>\>OBh)Oo9?6͖}C@Vql|*ydI*= sYBUʊp[~gQo&1p[y@dPԜ[DrA: ؝N̳wr?pXܹ&c57pÁa\ kXA靴\BnIG!7OWո$pr5+~5l'{Dᥜ$o#Rx$Jf{^9>;Dmr<b)#K &{jsJÑ |"gh G?}GUlxNv?JXy9=e#5_tY؝DfO4[9 C'9SOl S{6b~]v:Y,4\Iø-vNTdn,%ؚi&shP&Yi6M!'jN"aB 9e {4 ۭ@g+`ٗfh%A GjTХ4N9i<`']n\BnXu=]}FMBțUc01ح@eά k!w>% ީx\"5 ähV3&G5cH;ܴ(,\WE¡&ntb(BxjH91ԠMm%@];"= ZtGeSѴ3oT3}{T3^E9s Ah-$0X~+̃썖 o|Lͬs *>'/[&/uoE`@ϬVs(8[?Ӣ7LğH5}HXs}J QҀ$)iQ .TϰSoiY'}e)uz`sDN{Ig4܎&3$p)*K)+d84vmb]jxly#l, ,:7' 1K\|Nj_h;jQfyŴ`i]"rh93=2,IB!E *IC?nt9$B(*DLDz{ Fu !rtm7>(Vehb$h~9MTCHVP?S [8E E+wՈB3dm114I$Pt4PB.WakNq+e%L6jtw}NϻH3 %M.rJduIѿ=~ͩEH$+5~)NXI0-8`Ջ[*޽&V++GQByҐ|UNŝx?0jd x0{8+1] L؁#ƿs'0+&3(tپO K!?^²4?˝CNPؙ܄|.u?Y;>wTٚ1$~҃`iCįvI*j{HH:}z Dtu ^'2e̫ihUM6JfE%s1Ͱޓ.X'(/sD=B NCəD\8Ʌz`z<퓟!>^0iJɌ.y; T(U盟9_՝>@g(Hqs@&-}a/ߚR4`w AH9`J) Ni-nԖSyAc8:X6 *oˏ-١moS}znP3cdPK/ܸGMtrC&Qr$chku>fgD-߰ƏIjϸncYC*]_hAuc8۬͠/Pς49w9}>_\S3Z?[Q8_Eͥ.Q&VsB LW,3ϊnݜ81gy>5`TBs-9 iX-٧P(`.C X7l"ԍ>E?Sԅ]$N PS ;z+$b_#pD?7] zGO}뛯Zo4%$^QNt CO4ιcԗND*,U\M|&E+x4򚡕$B>52_333334,3|qWb#S9~jg:o1]S)^R<-G_^צm7+߂ '7R› AOlu *X|#;2bQ|g<@Ȭ9s9n@b#tSldz8HKL0GӾ `ތ,ѡLFD%q?P+ j#NG>-;W4@P9s9s;jǶ| /Solߐ^8\lqfUU؁xvaڱcպA&=ٗ^~%WuYd]uUZ\#؅\ڀdfSTfᯔ7 wI'ᩊ6%.~H#\ᢺ)l邜!Ki %ci?!75zH触yR?'v"0%3Q)\0}íABҢlQ.{6g -+I֟6W L<'68D%lXPk zYtJLBauRp98g~w T-)]An˸=%QqjS4qg՗s' ~K~EGO`|e"5)&"4Ŵƿlp'rpNYdYIvJLރM4rʐ.+0%/ri +XUn\SciVZL8ovdLBg3wYl-(w4\ɴp4gڱ'|UN# q$\v"?K\Bsr'bp$}HT ohR9dxDӿO9"!Xo5%ϸ,{idsUA'RgujRGG~ȼT_Hk~nŦlOZm>i}H`L-~v)y}xqSrIځڶq+HNJo k7T`lQ(?8\8QyEHj !ad $==S&]RgčN)WE0 ikDL+^ezz*&^U_⊣(w|fߥAPkO^d$_Pe hfeH([\"M$)TArpv.N>+](ܞ?L$Jy d:T, fRS[Ⲋ&(|p o3Ax5o?{uLݑd&^t(cC tnJ)vUxTAZWNm RB-ݙhfo~rbNG~;'F=\lŠq{N O]XÚB+7ϣO*d>|x꥖Wx^WΔ;3Y nb]wG<4TQ 2HG9=T_ Gg Te}xSWqCU$סoS%lsl*p qi&h7w#޲ޕGf5QN}9k1UcW4Bg0~c< [D{F,#y:b@ɵRpmq1jPPwz6l4rg?}${B,tp-@Zkz$('Zpjṕp.&2~Z>Z0ef[飁]{eS9igXh3P/V2UYMY.zog#;xte"Pa@}4|0 T"P@U";. 7UDx.Y8M9!{ͧQNz%Bj-p]$o }{C T1zcMY%_Ar(8 _]Xj:|tDwn@ȻkJ7}/Q1ue-d7)Y3A–SsJ5$ӢwT*ZO2j'sR4Yb(˶rK,a@r9y"ȅ$<)`X$et?Zs*NA0,dEbvT^C,pi?Әv[TT[_3hi| (0a \a{&z~>eT6ů9Pӄ;>l^'ѣoR(*Qot`TQ(C۾h=PQLPe.(Rb+1Hݛ<Qv9 kFyT:ĭ!Ş5PSfh!%6jWgPOʼjjGTe.Fwu,|.uOTlP/zDm!'\05@T鶪szxDU*~9Jl B@@ ygcU8&}x:)o:7Cꆟu!Pu6XP}+R?$C&A ;롔@:cڀ&D+[=9e_?~w~mz?rb?Mĭ?;bф~A[?2]zu5Y؞  :yDlG!JA7 =*=R pQ<$w&~MUڧR@_S#;G%e%)jZo#iP.™MzR<߼#;- Ng>݇˄\gϺkkhΠ%P3ѮdߢGc3}4c0d FfCFe XnόHH#z>38X8kSubgI ]"gU%j1Q?'Xs1J9A Ɂ1J._%M9.=_k/4M_͘*<_sOvU3jzv` PT6Vش<[Y H@/@vQ.1[ f[97Bҟ^YKIg:YKih-'q:}$q lfGKj,>5qC!XUlB=FGk?ZyG곺fZ+O:wW8Ŝs'YF@?Df1ڜϩ;R >o:\IԺ6Bp1WIجϻ q%WFM"؝JBzCJE=G#-V b_"q m]uS뮼yJ<f:,&n,0̧>{f+` ٔ˭ψ 7{&,9˵lvv(5BSSp}fcY. Z-֯/k ԉA ?)=u#/6͖}O 0bL$]4& b&]wȄ9 {w&&7V~L͑"Y?pG!:#;Qupc_k5[o`itQʭ|̻A;kn&h܉-W${g^k8NJqsrlТܤ/+e_ ב8P7 N_yP< uĨnCaV̾.H?Q}FdI+ߚd2\d~*D6~ 4 M`;X?"ŨBDN{ "d{(@> 3Pq)j$r _2`#5Т #+ʃC;֊aDb1y^Sܷv@0ynv3U5@AP&Yi6M!'jN"aB 9e {4 ۭ@g+`ٗfh%A GjTХ4N9i<`']n\BnXu=]}FMBțUc01ح@eά k!w>% ީx\"5 ähV3&G5 Z _JưFؾi_[ćErL8 R"o&YB~ǃaMtv.~qH=M{Ɗ!#"/pp@CQl-B[TÁ4\@%(1yHG/yx #cā|_s@ HLtS $ލPFA}]j0zoZ7@^k?,y,S!َYX̓̔uA{9'ٮ+A~uT{y{4s j?AkM(DzB̉B7?G EWR<ţBGkz~ '}z6:;LJozF>tqPݓVoلBq#=7 & Lfj2m{@#&!oX_< 3ނ':=9UK a8{&0?]}Zfvc#uU!r 164;'P 󎿹ibEޖY`]-[ciŬ5OwF`e0TaOb{1j| l0 SS(N9PPDD=5"% Y3%:MYc'ASlyqJ^jҔf外11 +I.EJТoc^s4`z.fia:ۭ(Ք0T7!ZБm.稩U?|A]<=vP|5qT658 W~)jȁP艥g7;Ѣ]hTAؐĎsQ"(/TH; 9$7h~Pz)q3j?ӘcRm/Q6yr "k :^镅ZpdlD&kr_esy6*٩?5ïs^|qHFiD#rx3$A8E*ݶU<9$B,1-=4 j8ǰ)Sanla5fh悓HLt4?\AN{"Dt4w|3{z7W}|#c(4lEqZm&ܒI.L:Bx%'o=@Sw%С&Cm ^$"{jfV= W@A(DuRPpN!b_{X_D%/0-Jr)uOkI╶%z#Cs,Q8߶tƨu$θ,[(^L9.̹,9!֧jU@27| wrR:g0ބlqSe3 >M< t&8@(ԍVg!-Y1C9W& ecx;O7kpG,R\|Km:vZXCiU@m# k4%4/r[Z>JɌ.y; T(U盟9_՝>@g(Hqs@&-}a/ߚR4`w AH9`J) Ni-nԖSyAc8:X6 *oˏ-١moS}znP3cdPK/ܸGMtrC&Qr$chku>fgD-߰ƏIjϸncYC*]_hAuc8۬͠/Pς4R~ Ad*D Vϑ 0򀏽؆?LT8ߝto(i;pgeڹXo״|Y 7u޲u-TJ߹Ҙأ(t{_] gl&$F ]*v`f/A5S&M"Q#R h1ʵb/m_VKA*5ޣ򍛧|%R.f ҾzM-MU7fMZhewDZ OܦY(vPSjo&-KLS7n* 6ndY'k0+c#)>JPT,I\8 _h. -0{V8?Dplq3: 1@-ZUTMµM[j^*/ꠌԴVR%:ܨ%;NAl@NšyPDl 7!=wvЯ`V~HF0͟@VYL6.U6vbɽ&"fGi $!/=vXlI͑u![[-FQ;GD`@-pV |dfffffhYݝ tf i:I$sU)6z< G@)4JKM WIZ;l[oU?_1lքuhaKU4Zy~W?N n5i_"!i+)9s9uG( D(zD Rk52fY̅uzv@ilJEuSrt+"RNRJu߯c`7ГXIkf:N;Xk6wKZ?E3 X{EUМ',:Iv +JAywwl tҳrs+oɽ#wՈH&i6I|ȍE&#ZQi+S!/akzveǤRZ9M] 6n*ȟ"m]v5ǻKp~СX;2fvbq&Y]R3^6g*@VXwGќ +/bvovc^4h`к_H#nx'lK3 "O⃯˰ }:?iLZ :e}@k)>]Sm00mS& nDw+D+kU(0N?BYgֿ-uˆȿ@!j,덧U!a3-~vX;Ѻ-R?=tW$ltZT[kE'r#ܑ"[^֞: QWLu+`P5]iIoui:oX)::~ub =~w'77nUN4?A:xKg04{m~}IyͮERAwM1؀sJTߘ^3$Fuq@^^_ީU9>Aq*MCXǸ^Xߗ E8fȄA J>! !yK?F]lE< [Q{.aQߣsD S†̯wF4A(jv}Ub(C]i"ajn8W,}pkB﹜^n pR|4v;ard-40E*+ÑTBScSf:7l=vL<=nRpx(ttƓ{l5uuJi+o|.?pI%jҸw.6BzuaBB, R줯XQ>Ap9tu,5K@<% ~vNCt@*TYE_i"X+sOi%Vpy (妉z`h>y&}[(jPV9_[}'% va(e|Nl#X$}ƯTSgTRңMr;Rh84J2=@cQ<"8'ƌ^AOi 3Eu,>,>(K21FqמᆕHv^Tڭt5=F'-]X}p !p.&2~Z>Z0ef[飁]{eS9igXh3P/V2UYMY.zog#;xte"Pa@}4|0 T"P@U";. 7UDx.Y8M9!{ͧQNz%Bj-p]$o }{C T1zcMY%_Ar(8 _]Xj:|tDwn@ȻkJ7}/Q1ue-d7)Y3A–SsJ5$ӢwT*ZO2j'sR4Yb(˶rK,a@r9y"ȅ$<)`X$et?Zs*NA( 8fr?C2&54F!*b9LNLa];?W_Ϲ3niK< _p%}9ؑ|EyB鋑)#N[DnE E "נ"Y[RWմ)9YJ1,:]@ۆ)7U3ĺxeasMNbanUNGCz>?8&IOozlP1U1ʬCU{H{ 9ܓTmYv}ʥ/N:4$%s}"`bnH6tFuS|/3da5G;s-YGƺn(rd+D .']֠b zL8Jq`u?mw 7]aրS{` IԩZThA5Qťj"d/]vJMx3:%%ݛ khY㰫)*-a$A:Bq7u)6ؔ!<DZ6~R[/3^ɠftEpgږ .ME&YND+D:ѣ7Pƺ9o֗wA0:i|8@xߗ FK T$ h|\,pj( g4;?3DM'c6%|l Rl{=(wI2h)"tqhTbɠlJnN45&J4}߀4{98F6rp`Dh!P&Yi6M!'jN"aB 9e {4 ۭ@g+`ٗfh%A GjTХ4N9i<`']n\BnXu=]}FMBțUc01ح@eά k!w>% ީx\"5 ähV3&G5՚9e^ lq&~2+YFܝ7Ü#$]"d9mW*">/-Y&L=7v`^:!83N4&L(KjF?_AkM(DzB̉B7?G EWR<ţBGkz~ '}z6:;LJozF>tqPݓVoلBq#=7 & Lfj2m{@#&!oX_NLB=a'o0ڹgEM]`vo9+YXn™Lտ"ІkaН% -~?}b*)( VpR|K_1HT]DVHE ;[Р=%i$<*BQzJǷ]"@.~ /PD0g$ȨjIP͔mLr>Dv|`4VW:|A1kE,x{kblk/jpEW h6?d*c.lԨyne ;_JQ!0s0NjJ^7גI$I$14@YrYHf>;250ч*T=lh6ᓙ~ͷ &ĊN j8gq' 1K\|Nj_F# k*!UfZ1JMXɓy"znH6mj0O#FvImLe7s1!`'POm,͛m LTM"1Hr9r9H~^`Va-IVyo Yd.WB OU@ kbɻrI$&}Tؖ.~hCŦKCmLn65HEyjfV= W@A(DuRPpN!b_{X_D%/0-Jr)uOt탖Mqa !9ѱ 4h&Hc;@W.(|EmQ?>q8HJH8Y5TU~gJ$7ClYq1wTt"Nj}"Mt~ V bӧp'נ=Sbq cRnWyUTQ !qz~颡Ema ߜQ?`*~3?&(\r͖L>Ї`)$}HaCR7VԈAf soHђt1Gz@GQ`/K_*50! 5vSm6 /cj@um'5>-xf $bOyˡĪ;b(nGM|JɌ.y; T(U盟9_՝>@g(Hqs@&-}a/ߚR4`w AH9`J) Ni-nԖSyAc8:X6 *oˏ-١moS}znP3cdPK/ܸGMtrC&Qr$chku>fgD-߰ƏIjϸncYC*]_hAuc8۬͠/Pς4Rw;.Unp}c#W7FhU0zd{tuExkST$Of|7+c`3

9FTp0LcH`r!FTtV:iH]E)\(1ҜCiH,.̚DT;bra=% Kwq\(e$0 }e=xt+L>hr6f`\abϕȝ(HAN;nV!^Y9BQ;.ATXh=Z)'UUUUUR^w-[h))BiW86\!Owr+^ vA6"ڒPbUGwnz$_}C["qN<*Jf.Iꅠ1#d7_L 9dc ;T-r3#?<$krSMw s(Xfm |)#hT./ަTĔǒ ~%v=YbL'PPa?3_(sVN̽م򝘣\IWhTn3̀QٓI ̄ef H q@8X5S5UH~\ɢMQH jiR|$aIļ8ȗoDoi^ʒG,b?e_n6%^6̺#MG?F"'w`tsz)D]#w! 5>T581cl$-C bϻA~e_R?-~vX;Ѻ-R?=tW$ltZT[ie[L ieaK6yͼ!P~ؾaGM:nа?%#ϾNMpTf-c")ib,ҫƔs蔼YG3e0z+fBKmkpZ@a*?fR"7|Ei&vdIpXT]ҳ&39ɸ'I5ViaPNQ~b6D*oUD-zΎ[޸@;#.b07Mq}Լ v jo&3%CJB.I>6KIy"!W֮:f(!0LuN36z@Ъ8<Ȃ%X:e*Zv0ˣ!*MW6#\侯㧑{R˜k PYaj3(H؆'"+0Z7D8 &hzil짷$bi.u 1 Rw8"83T *kf!]?M4gbh{,ʕY3{BKΠ b7}kڅ\LҜ0+ZbR!}ƄtSQ;"11aPhxqاeƞ-k9v_ּ sk~r"9:iQo ΀4qF:m܆A69;ƝA7Zs,5laxP7!ۿZ" *~p'Nmp.&2~Z>Z0ef[飁]{eS9igXh3P/V2UYMY.zog#;xte"Pa@}4|0 T"P@U";. 7UDx.Y8M9!{ͧQNz%Bj-p]$o }{C T1zcMY%_Ar(8 _]Xj:|tDwn@ȻkJ7}/Q1ue-d7)Y3A–SsJ5$ӢwT*ZO2j'sR4Yb(˶rK,a@r9y"ȅ$<)`X$et?Zs.`|MhQ&Lvh.@% TRx琋^ܾkX^+@,`V jli"Ѽڶ44$奀0*G,0/#ءڪthJe>FS f2!5|7aKIފq"m?Mʟ|;ժ6-DX]w;kh|.npkX|J^ NoCQ+b;'ŬL?8.ȝ2 nd .SaQ||SfR>.unl.83fF 36lmK4= &tXyATl]%nH!+Z:aѢ#mhv #PisKw)3^iS,\Ŕj{`{M T)3镱V mz1Al6 kgАN1HZcg$5^B)WV]/n {|ƒ 6Hc0.!̐w lZtWs(\J2l'@\\`liH58WLυb6I@b6ixBi[z^lN55Br 8f݊V8{;Vw3% ϬO '=6qCc eNI@Ď'bypt cVHp Uӌ+%e^^9kIQ&CT z^äʬZG _PCࣁH/͉>۵ʲڦZ5.rt?b>g8٢51H+;5S_Gſ}|׫Τ YI r4;H 9]{JN]>W(^8"cTp͞Le z&zed"j T'0#/v@1L;ZKˤPӟ7+ GN) ־viP |sYAq<̾Ŧ'Kr\GA9Gx#;ӬQ#TD>a/|8V d!D"IQr4 l $ʿ&>cٵs݁WwB|:PU0&V'|rp}i[AP}yE##!zRrrRoVZ-oL-nPiAFػ*\ Iw` 3Y»3 N(<-v˳'ˑBُ_cŸPT,RcQZ; g6Hͻvjz/m6/QR1KE i3 MYo _&o"**p#56'k\&@>Bǟv ٳ '6VX3_yAb9o= 5KFw̻=p$Ul̀fLFmDI z?F; "{꿄aw)q6MD=; ~dw)K%soײe/@j[ו vkuZ:uiHYE}RH`={B]7zvp&b"'t+Lc/C"ǕbI\SJ2>_35R*,oN_3debbW^'}PDOet)oK ?t%u@ .pЄz!bck+ :RDԊ"IIPl7389VL*i鰹='j#vT8gaڏhf()cnxH=\=2ivxZ9-ǒQ;M{3Ҳ[ٷAcңmW $+Gq4_2-g/{߆_ǿCAg?h4[ 'mܟ?G6,5 BA}@Sºx3LA_:G%'x6L5MLq ۿiiCR< [hw'Ti V51Qz (7 _|dC7gŃ|dC7fPȋC \>Ƅݹ4Q-0e##-n5jC^)i (b\Z7ȸ=4$kR ba.߮ ր"^>*1 8tG@)Wc? ۻ9΅P~EӹW?27Ŧ30|j$oFX1&Xf⌱zbMi;*/K>RUgIL ʴ9n\c7k_2mV|yXQ][rpm O,(%g: n82>wX²?F56'ôAq//,.0u_3[qMz۴MPM7efj'볰Gsq(E+q; w7|Xvsz-DvvHn4%?*+Xs$?~CO,;^s욭 Ҟ̳sGy.XNwׁPjD]5$Y).Z'ߍb"+nG#KЏdnUOڏ`ꅚbk,\uP%ݏyOKPRuȘ}WtfBXֺ̄wF wFk%o}`?Jst¸+S9-sʑJ6u%lN|I+O=KREJ};_kT)(hS -d?X0V\$ )x"M%ڄE1 (mUTIh vBf-$LHg '3x!r" E2 H$!T5=]$z71c oeOV }Qzl!pjʃ&v8{A/UaEHaf!Uu7uT^x%ںrsɝNp1#OV }Qzl!pjʃ&v8{?+4 5&򢂠a2?}ei!& WFp{D O@926QA;.Emm flҋW9si=%Ld$tw13sW- oIFRj:I|?x쁃22V$Og>FHd ;}xdd<v@+{0SHɮq+eXX[Vy-S̸#,v9%0Ju٨}/54CT/99Yf6n{ŒӁD̴7|`REDe!nФs֒K{q̫WNsL(I.Y a(!,pƸW.z ;R 9 uS uŃJܦWΙs^tj9\}Q,@!in:Zrw@ԧ/u)6Tv%<[q\It~[_Mk:WZV$6Ԃ;O31os]M@~g*pS\IGvV7E@>na C}Z3ZM[<墺bʱӬ/+iGH-{;\pٜh^'xvCxj B{L>\Kꮼ<|HHO[ٰAB+ʞ.F- .F-"ELK`G^kj?MPq[whI\EOY *$dH AƆ vKr(tѰYzKTx*+jX%|okw>4$IS}+8okb!RyԯJߺ*"0Ds=ay-t ZsV 2Iȋ~I|xπHj.ẗH9餗>oaϱ#ŽTeΓ):4G2 7kc6Z%{+EMvK }ѻi ~9D 7=#u)Q#MUEiřAVmLE E>z~d̷R fp50+G6 R|aWz?~g#,/$ U`h%GbI_tR'Y_LV5LmP.rOjPqtZK )S(L"AΝjPqtZK )S(֕"xzf΁ҜwO(dv/:z\@Т;0Y(9 la滠v퐉Mţ\T:%]|O;E,@m~P!O=gkțx{=]GYe6;u vjK*f1l]CQ6Ҳv2ZY_\.\\S)i>W#=Dod~ʼn')U_8 $%*[Z)e籝UAe31)~8D.!_#VKh,T"J1G2.=Ei@ MrG;LTpOGUMi0@#ꍶ؅=Oc"{I#5sBTu6b]=0SZA? $%GPaHm!zEny."wfH}Wʟx yeJɮ G^ Buc%XGpGlyuF*8Ӓdקf/l hm8 3BO<֊K4?|g9!8a$Q~[VZr΅yeҠv9fqf_1GlR4/k q1xE3jM8CZ@Z`e4 <>Ml?)gcKYh%̈e4 <>Ml?)gcKYg}tg.Ji}VZRv>8`< >7fFqrRK Ju>".nsgLyr3y0tU0y+ is8A0B.Sdc HJI501C/{lR:wo i+fUú9(X\i+fUú9Tx)AKEW+Uú91S:3{4O뱳#u} Gpb ֆ[ w9fG4_02d~$CHuoGuG. p:$Sj {刘-*8'؁q~fI*)uCV*E$}Phk: $ ߤL?ቜ%:SmpU}⑗J!!f)#%U x泅_#* ٧!>t 9*mi A/ܶkJ!e_Y%e\U$;lJ9d5*)i4ĨVECگrMy81iHHFrmgY J5o4)M1*9ՑP^NGhV^^h+OA *`#?nv @ۀQe㢷);`ϥWg@rtpU%k|4S?D @AD)0?ĉ禂'f<˦|xi!ATVΛɴc==E\Rn\}i^Q[n&Qla晇_T%ݘoPMd@BfT]঳j?;7͍T3>tUJ-%zo%T 05W_) ll⡕'ʩT%ݘoPMd@BfT]঳j?;7͍T1k\\1BiRL^^.NRԶ\5FH3ۥk'#!w47B3Cـc=+i@ 1~+XrbKۖren -G!LL4ҪrI`IQ_%r$)KDch{E8s(}ڵM|^﷌y_]v 1b/kP(W%or??8ňծmC\w}c*/?Ѐ( 7 }["$M RQ$jGW6㗹i@ܶj[8Bv[@;GI(%VCro\ FEmR_dӔUN$։7IT#%Hb+, J/-'vC: V WOy.{oxKyY{UfXMGGeb='gx:74̀ v(E)IЖ栊/QuE=jfS G-rPO?#.|'Sgs@?D0DyImV&j ?L[j@7F5#QRb?zh]Y èMyȇa5~[u% yG x%~&ql9W1T0-HٖoY:Z]Q̿,&:QuNGZEe Y_D0ztN 1 Ul0;v_=׊`1t.)"Pc$_0\+ &<^|P0mD1\G^WEaP/谽ݴqf@Mfժ Ju (x5dW~7| ~0 P35. k6PJP-cPG"iHPM [7@HA5V%((SMՑ]4¤(&}B #r 2BKZ[T?XMEhg.sZXd2hœT0$`fML_@aA^_~ HqT-9Y8cG8cM2oCّ 8X;&e3R>%Y7M>ߝ4Q˸قBg<| >K e AųU)ku SmlX@ֳ;\͊M­P ,_kx?!o^N-ڨ8|ez IO^#)xſ,Qa`@᷹ Bl RH 3,&jͿhMцDHrhQDB(ML@{N[ ʪzct^7;=ʃ2Sk&TWb pMe~j^΄v!BWf_k&32'zjWޫM\ gz3uIv0˔dxϺsؘQ2<кsؘQ2<`MsؘQ2;? Zf \&@N gk~Qxak rs6T]3\#fmt,Z #0 T#Na5JSHvd3_6xE"bl8=7Q/ZhLu[5)lt!p_ITM+,]"}goNT=]EHlfpp<Ct@Z@Pvg`BX#!Q)hUF3W}bZsO "#7T`i+]^Gb/RJaGH?ïi5\#>PfDgjx㘾] BmKbfl{kFL/?ؼΥE@ڿ ^L{ύ-BxVRvhJdzϷSv9$z$\3G{8gs/3'9}ݶ5y ? /m5.o4d OOi1O/ṟN᭟h=}`lAS¼ ?B}``w&o/e2x'('4AU"6%D{!,LחLİQ+ JOՏNW.zXюcW,Dsmk߳|_*ۏwY-gb%7=W2v3[}bHD٦Cd#+&}m#&[%{\."ģ~7ގsy \ʉ=S"oLا__1Y|ᦴs2d:AɀP.?GO]/P+wx/ЬxrN "/oG귝 9J;8)d7i]Lo͙lM(RUC9qUUJL LyBMazmX[#r%4cso\&>\| T/E\{b_%-Qؚ iA9Z}E/1<D!\m:6Z~CO,;^s욭 Ҟ̳sGy.XNwׁPjD]5$Y).Z'ߍb"+nG#KЏdnUOڏ`ꅚbk,\uP%ݏyOKPRuȘ}WtfBXֺ̄wF wFk% c\hzP fx121,T& Gjy;rJTt{ޢ}QQ74*EX@7"R?b>6K@ Ö(ͽ8Zý~o:iuN`?0SHɮq+eXX[Vy-S̸#,v9%0Ju٨}/54CT/99Yf6n{ŒӁD̴7|`REDe!nФs֒K{q̫WNsL(I.Y a(!,pƸW.z ;R 9 uS uŃJܦWΙs^tj9\}Q,@!in:Zrw@ԧ/u)6Tv%<[q\It~[_Mk:WZV$6Ԃ;O31os]M@~g*pS\IGvV7E@>na C}Z3ZM[<墺bʱӬ/+iGH-{;\pٜh^'xvCxj B{L>\Kꮼ<|HHO[ٰAB+ʞ.F- .F-U1N;/b@y a(FzmV e7_Kƽitk*c'sPMNIDD1ӱ`ܼe4Ҙgyґ“T a'xӼG~ 3s1~U,;r[6[6V_f쭗t7&7˝'3".R#ui!/`HC}IqN{C~<˝'3".R#ui13c&.ܖӡߵSȋ~B3ܰ/kc6AWL`Q||_*Znl| , ?EiSGW*ciF\}d~$PoH,M ~YITg*̡pq)*YU34*8 t4guӹam|ie:[`nO$gSm^t;'$&܆ i}Qv7O˓$ٶ# OcXR>m^t;'W>E4E+`yɖEmrDOoV)vH)iiJ'҈o 8^0cPmb $QM)7)TL̎@(Cci"*wxp@8`< >7fFqrRK Ju>".nsgLyr3y0tU0y+ is8A0B.Sdc HJI501C/{lR:wo i+fUú9(X\i+fUú9Tx)AKEW+Uú91S:3{4O뱳#u} Gpb ֆ[ w9fG4_02d~$CHuoGuG. p:$Sj {刘-*8'؁q~fI*)uCV*E$}Phk: $ ߤL?ቜ%:SmpU}⑗J!!f)#%U x泅_#* ٧!>t 9*mi A/ܶkJ!e_Y%e\U$;lJ9d5*)i4ĨVECگrMy81iHHFrmgY J5o4)M1*9ՑP^9 octГM5 -ސ[(Q^E7,#։#rͼ.Sq;Oq1=~cm؆Rtu+ i4(x#b^R~rI'pϣo:c Pzܝ--Cd(a^\C={ wO%@O~eDw!z%RO7H_ir^9H5 taeGݤ,b 0t >9~5V?Ѐ( 7 }["$M RQ$jGW6㗹i@ܶj[8Bv[@;GI(%VCro\ FEmR_dӔUN$։7IT#%Hb+, J/-'vC: V WOy.{oxKyY{UfXMGGeb='gx:74̀ v(E)IЖ栊/QuE=jfS G-rPO?#.|'Sgs@?D0DyImV&j ?L[j@7F5#QRb?W [6/:h(wT7Ȫt++FUcODo=:lG0p/Z-qy`@H9:"A6N;= MlJ@}3^4y^PՎ(OPMNf/`0pEC`?O+\VJՔa7+ gϧBʲY\ x\O)rCХ(DP4'|⼂FR%`YjRhB?l 8 Yߥ5}eZ* T\GQ5%`YjRhB?l 8 Y߳M<3T![J,U2oCّ 8X;&e3R>%Y7M>ߝ4Q˸قBg<| >K e AųU)ku SmlX@ֳ;\͊M­P ,_kx?!o^N-ڨ8|ez IO^#)xſ,Qa`@᷹ Bl RH 3,&jͿhMцDHrhQDB(ML@{N[ ʪzct^7<(>{((*j̞fB`*PGj7gh!c6J+'_ikW/_~u"ntJ7"n\_iyM)W]ڬI'CHr !\L\# 3X #_JxУ˔dw^", ~Tcmx&l!yrGIWpwhА󀒩GM>f(Q1I#wx\ N)/}=c|I!"$٢@e?gl=ޠ3enZhLu[5)lt!p_ITM+,]"}goNT=]EHlfpp<Ct@Z@Pvg`BX#!Q)e#7SqA+TjLHŲrO0WRk`@8g*ݟ8N3vX?G?ZBRH6H⢰"̑iIsƃA}_P^.0Q .=5.o4 6P?G?Y?hach5} /7+Ag("]',Ѐw|tZ|:_xݐMHK_k 9 B1nX4P㼸ا__1Y|ᦴs ۶J~^ s^Cόҟ{'շnN9T(9^r8sϊST9l&QẨoO/-y~TUVԍUl+ ~c,SÕ103UYQ9Jݤ~¾]z3k٦Bܳvcc 2&?Muk+WDBւjw~,E~CO,;^s욭 Ҟ̳sGy.XNwׁPjD]5$Y).Z'ߍb"+nG#KЏdnUOڏ`ꅚbk,\uP%ݏyOKPRuȘ}WtfBXֺ̄wF wFk%%i\#2XS+?QN&8bPQgAyR(Sր \S8ܷp0"=7Tzp?WmJ/<ڱVasC.f~RYOf#ȖS0A%HwPUE鰇]*K<>z\᪎?o;*C.%L p~$ۊrb.QPZ@%HwPUE鰇]*K<>5ju)u]6rhR߽ r0lUpr6!laMvU1 |U|d1yi!vf.H'M?'T:$M}6Ȫ0L^"^)fOvQ\" ˙- }v@TzqfƘV6F&j4̯+AGz/8%DZCF.4UFr$0SHɮq+eXX[Vy-S̸#,v9%0Ju٨}/54CT/99Yf6n{ŒӁD̴7|`REDe!nФs֒K{q̫WNsL(I.Y a(!,pƸW.z ;R 9 uS uŃJܦWΙs^tj9\}Q,@!in:Zrw@ԧ/u)6Tv%<[q\It~[_Mk:WZV$6Ԃ;O31os]M@~g*pS\IGvV7E@>na C}Z3ZM[<墺bʱӬ/+iGH-{;\pٜh^'xvCxj B{L>\Kꮼ<|HHO[ٰAB+ʞ.F- .F-h?(<.Oȳߤ/}()3ħy،"=8\#%"G%uh2X!`^/*a@! ڕV >w=JJITM(MU3m$kB|b3h+{s[v=&Q:}~ywbv.PUTGWnXG@%NiI115UJDyοM!_UȐ7+Pܳ''UTGg8gkc6AWL`Q||_*Znl| , ?EiSGW*ciF\}d~77]@0i_r+otp v^A5֙ 7rO79 lVqSߕcr2ODMlZiGbwfXn73Lڕc=S?w $IB"D%M{0/u(zjv/?@.f4/LK314'I%ȡ=._ .;&>K+{Q7/\!sٮ @HK#iF@?f /5_pGknm^t;'"edX J q,)Tm/A{W>E4E+`yɖEmrDOoV)uAY?s}[#% ,2 ; A|e&;T&YM5NJi@&5Eu í'yUr)Gx2$~hаAEU6b2Ewpӱ?l 0M#4 6XW>MU:gKgz2 Xh;$n߼])?DL^-æaWYswC[{\~.8)d>Q7ְ'ql.Ji}VZRv>8`< >7fFqrRK Ju>".nsgLyr3y0tU0y+ is8A0B.Sdc HJI501C/{lR:wo i+fUú9(X\i+fUú9Tx)AKEW+Uú91S:3{4O뱳#u} Gpb ֆ[ w9fG4_02d~$CHuoGuG. p:$Sj {刘-*8'؁q~fI*)uCV*E$}Phk: $ ߤL?ቜ%:SmpU}⑗J!!f)#%U x泅_#* ٧!>t 9*mi A/ܶkJ!e_Y%e\U$;lJ9d5*)i4ĨVECگrMy81iHHFrmgY J5o4)M1*9ՑP^O`,O=4?0 n]6/OA [tV>uS[B(E@K q quY/ļppNc_z^}*z(7|{&@U%r…%⨺)MfWv5Bo8f xȎUJ<߷M@6&@U%r…%⨺)MfWv5Bo8d3SAU080ޡ;@U%r…%⨺)MfWv5Bo8c=T U-wsl+$zD>9 octwET *:Y:}ʒ[~W rkZ41'T7a{, N|=&J7apF*l2fSY ABH.\, jJOlž/C'AS9Efioɗ4.+8+q s4Dw3ktJ}Y$)r^9bA$m?āHyW4gPeC/@ɼ4ώw}_S< Ϯg?Ѐ( 7 }["$M RQ$jGW6㗹i@ܶj[8Bv[@;GI(%VCro\ FEmR_dӔUN$։7IT#%Hb+, J/-'vC: V WOy.{oxKyY{UfXMGGeb='gx:74̀ v(E)IЖ栊/QuE=jfS G-rPO?#.|'Sgs@?D0DyImV&j ?L[j@7F5#QRb?W [6/:h(wT7Ȫt++FUcOS(}I׵V4#~M3}9& 2 e Z z6AI(>z P)js1~+W^)*rwEJRgWo#Z?xEMmc1y6[^A.2F1D5 @Kh~[qd!0faeJv1M: ~qi+OGP3AE91"_V%((SMՑ]6!֩}' M=|GFuCaʼa^gժ Ju (x5dWGI:X9x!O #siD*c~$%>De "}ha.K;Mlk$/&os_cUb?/U2 ``_ X)tO9]lrŸm͙#+Cҋ bI$5B |a7{]o tDK6)5\F j;XNً}:n^\}|WSM=Fa!pkv.;;pZnK烐,&*Py;5CoJMe__}sy$daؒG{\r8!-G INA%Y7M>ߝ4Q˸قBg<| >K e AųU)ku SmlX@ֳ;\͊M­P ,_kx?!o^N-ڨ8|ez IO^#)xſ,Qa`@᷹ Bl RH 3,&jͿhMцDHrhQDB(ML@{N[ ʪzct^7<(>{((*j̞fB`*PGj7gh!c6J+'_ikW/_~u"ntJ7T:1]bu#]]R Hdn`*=``*f2#mrФ˔dxû;k2<^", ~Tcmx&l!yrGIWq&*tOh".zqN ߙ%qM\YW"KzYT\LT.cV "1! ~g>OZhLu[5)lt!p_ITM+,]"}goNT=]EHlfpp<Ct@Z@Pvg`BX#!Q)e#7SqA+TjLHŲrO0WqWNsN?-!3|o.Zy)#ΗW[-:iMc7u3*O2+tk &D=7)>>3OBWG'S|A?#) p?EGK}D>qˆIZ-S0oтL_ %e$F XXk}N%YK0yph(0G_$Jd4n!2mYs dZqF!* voM[iD8?ȀU u\]5S?|,RН0 ~w bWՑ2t= yB[=+,okBJb{s?B;cЯja]ww1=3*J;&YG$H!'9]qc^;7%֏u\s}A 1/M!KՏ|yu0gWIC$#? cX|02 HZҠ 9=> w-Cۙ) `/U8aX7 z̈́1/M_ԱTyƔ(n ,F(vdp(ΰlCԾ \!'iWiW~fљ;)mx|g] 0nZ%o*@Q*gTVz.Bgʠ!lㆩ:1M .@*~uVi~"x{ mXx9pD]睫bp%0`_C/$ZSKx4 t}XZvϽ|' ֋_?k' ɁRFلD] >_ ~"WuSz82뎠 m1M#Q؛he?xTdb2uђN/F+[SV"љ0\ηawւy9]:2Hc3\}3 ~GɿlUX@>P NZaC_HN@?hhm9Ǭ sβ^KCLlZZ`ܷ`;A~W{S >'.<^*(dV$ oe߀ވ_V>~2Ld~#6Pw;5  =gK%K2){E%VLLYP`a%rj-23o l9`$h/" IbD#3^?Ȫx|1{E@?b HKf+cPxMelڸ[/|*3\?RY-!y8(3JlҺE휞i]Au&JҺh?*qB˹5 /*bm:]/͓)J()`(9Ti<}InUFUWV7}L8'R8QREuehO<71}&AkĦ79_a9vN[+X6seʍ2.7uV'00e[>@wћ|kεxIIe:?'0yctՉ4jBQ0ݞJd; XW_gyKT083gMCϹ3oԓיdsv1ccCÅL hb;egF6U}6Xꀼ*<ÏփDpb+M>2&l'3HV31F{1S= 9BO+=S5y<'whý!NUeoQQl`j-  2r]{뜟b|M00$a&(eP^ [(0+kЗnZ&t elTI$<[mݩ.tbOeሎZ41΅,8&F9Jk9g${8W,(+jD[ q0% ;d3b\[X6R VI]/ʒU CIiF 0g@ %TsvYTv4)1>)rL,`  h),T; xǴ`Mƙ5ݭ I| 2֕#"?_kIe3SDP 7IK~nvu}SB2Aq-Covﵬ#H!djH37];AD!ą"Q~VhGuS*ʐzg]O,tna96k;whþ6]u>#yJ6yo[dvp`<ט9,S[OteRߏgU[sV:Vj3߹9c?B/&mEooX^MP۝V L)uL! Zp+% `bZ|GG oR&?,m0tc3$:5F D6&TwN1wPg,EZXw x}.*vsխ ^C~Ӱz(h\|[,v^, 6#Lk&v2W; Fw;T<3' GB | iTYSQbI`"4'ֲ<ƃ&Qi ^]9)F[ JgϜԡhQP$%d-#<=l&rL=9:09R \S6qFf%qپsB{R}8FӨhtA'#!)=oq>HG:碍м1)9s9s)?y_vеhGJB)X4 aX]$;W/] Y56P41M%VP9I(km[n]S?.T'hnM hrى/9=?LB{h`9-ĩ.0*(^)߇EPOuEє2. ֶV$^S/2xHyBJl& A]IBgMF@N_:2u & OlV;jS9X)\9 :.^(Zs.?A]">⯂$pJY|p3YuƂ!.iho`X.F)/[IL8{@&h$;;Vg8a ^7Ek\WP{|-_ިI$Qc磆H~%:uk^hC\͆X'94cZj#4RR+QYUqjB2/oUFokN-Ym2[6|HfH b :|R,G*qTB QmX!cj-[OWJ5Ӷ[>k̚Ru'mϗj. b W+-wZĉ S $!6!/H?vh&ǜy3i )~wxEbiH_3jS"c_'ۏLSP>IВ4JnxH!7-yה8]^uJ\S7;#!5UO> P-1(mbrsf(;BVk ǥ d+fYT6YоˤΆz 6͠5V=}U)Y#XWDx8;D)W=fhgl[:cMaNv*J#TO<3,x]rY ڦXT䲛 L|NX<,̺C3z,X TJ%LP~Z(k'0 \(UvСTw99f4hr^0Fc!LVM^H/b=(vr&asϟ9p?HOշ[.?Ana{F1qcyl u!$9fD} X*Ve i[cN-;'i_Qk,Z j^U>.Mou[\ץܹ2I0O% ѯ@Xxg<)ޒC-hǒER7M5bCR>F~H@:h괗fBkSjsC|.fUe02AA[TVFc ZОmױNLĞ>(\{lB>Ql0]4KS:Q9 '#sxd Gp?t'q~{ G?Ki+9w,d>W|\9 )g^SVf*tǐ/FEէ9m#=U PRL&EȬgJo<2Z>;)xNi@ڶZ{G._e9`LEG&GlR URˊ2j1h( *0Sʊ$ʱJfo{V2=owǷBy]M/gVg(Ci=t/ûa_ /36Sb4Zs5W@&?)53L6)3%#]A U3/m_!81.?1~e$wp9oj jyGKz<&E/jH>$7jzgi6񻂫\O^:ha(D7H2V%(xK=i}PVN\Y_LAxMncUŜB]qEm2 X3졆IœFe`"%W^޳t!_wP=/xV+] v5c(s6_s5?_kf>r'Q5|+&bXKľN}nj4lxFQ3[fQ[o!Qp7 '[8)󹥷K*9 33LE\屶7f#g5[̥L( @J\77YS8֣ ӆjydlʈ~2Eߗ_),CE[+1M9#1T"k ژXPR jȐ5eZ K>*H1m[#MP_cxDbE"6^l|"! m%SY~3Fc!HVRub@w bf<$ Y2z˃W?AnCT'AZc%{[RZ 'y,#,Hb *-A5/nn_')=ؿ-f5N "zP+6 n?:N ܒ, [`Y_xvYg?@7T|(b8]:BЋ9@ I|7E$i|`< Wrah[Ol;rBJJ Ь3hm|L2:XAXpk,@@~$_q?t n)'ub*4@>lʾ1) X&UHx2 \68U-TT3e568?J:CV#xr# F h’3#e>EaʘfjN[D嵉3~%"[V]_X>l.iͺdVGTgIC,G>a鵴 bi=x[qy?u]mWr;ҙa)T`r钒+ 5<@3}L.cawsyM!:}h+_ߟG-tlfEY,"| ӊ=Ny Ծ|E[aFcV!`2maQh7l8Y8 W &uz|ԚÈHC@5H6ŐA[YE~ff],9%&o 2M[g]K";pK~?MQ`o_d<8jq> @/0PZC"<⮶(p*ωfgԢ$72@oWWKm[8e#`DzPOTnV ͺ=hVTaքn _rD+:w={5$8pEJNqƏxDUNpϜ٘ x ^7a v#=F LoZre1fTXj-GeRTtOM0j*Af9 @X4apۆ/ +CstCpp"0OVo5V{jR>$kz "`I&gVAϘ1~e$wp9oj jyGKz1XAnYmv <>6KA2|}B=Se% K p;)' wm(9pnT0Y=M^s.EP# 8ri:)raU:\- ғ ,PaQF%Q`Q/?XfNv:pk^TvHOKUٹ}+=;3-*0s R ՛3<ѕyC Ov#{)A 7 A]AP6#>N\屷k*{U@ߨ-*id_lLDOxIBX v٦]K(E;X yYE-x+Xއ zg+8=E@כJ# ūٴSxHVpކhz-3 T s%_M+_oNefBkc*v>޳,Fm廬NGFm>2ٌXHj rق],L%B|$c<~|B\=9Svb:q;Jx'AqoB8#\{z'q&~j@FV,#)!Qr_ =^F5.EJ5@[~H։*܆p[KvTߑ@MaI/Og45"$ ~('%!B(?Up7XZ|d6z¦l/qILh&DY̡HNgC4&Hib oԅ9Яɬn(#` F#~Do=Ī1M 1%bXHrRBMfeKH3@DždWD5q{yBtL17pĬvoӴHGSL %8cß?:o[0eO tǗ A1,M/3 bMb1[Ew0n2o:#?ڹEx$jVV&Z[O!d.~lGSi'* KbX]cu^u7/Ԕ s܌VNJ4hX #S BY`ia:)F);!4ORӥAXb5!tZk!UbB,CL J%i.oa8,еu^8`Pՙ ntdd u.Q o;vDVn{ZT4ɘiɲPi+"^RSt/ZBh:}Pj#̂=&=,!wDѕ=VϪΦphiz1R e%^Ju3-@qO"ԫj#K$b 604u$qy పEalX|v C1$ ,w^Co:Ո?3iiߟ5߷(mb=V_|%Mr#wS]T|=ۻ7 TgJ_"W`qsyWˍhU2u$MlZ#jO0TUT@Ъtj>#  V|̋{ggxEV,eD-P$ >w|Z yPg=]$ MQz еJu$OM H2iZ})-z1a&Y~h{xb\5cL(+r5YF$%VQwѕ@d~~yYo؞]S ct% 0!'b@kxCFx`gee. ײ6ect4骞^YC8؟+s\ $_}XR\#\kHM{)4ܫDp\Xjʓ.jUMcԄ~ӔIq}}gq2YUISilDlĻorh 8/Snkpo_YX[+!?OK6=̗;ó9!27L,u|F&f<2 WkB|gTC(ffYA,[H8N{ϭgrTX< %|:+Ic[!sQqmrio ͭF܀hX;>^UdGogѿCuH]kF@U1(V/#{%IzN@Qz! OI pyL`wDsu8 MS:pH/Ĭ6釿mcX޶u[\&|j/"3 pv PPr: WwAʪ a/)|bdr-G 8[e5}=sC n"(kS2R1&Ca`Td8iTꔥbWVOyŭJ&!Ih +ek7M[p;/[ 'dA :DƖ#0pPYMr'3U*hKsJT+giz=z\ܙS-> g>u m}'Ql1g ND:~aLJl#+"bIZO*ڠN'Ruɢ@\jB)8-)]7pcJ)C@;\7ʷEϜF6z-[-p,T}M>ƆU?]hkHDKFLG:i2 /,8W "҃ p[w 1zo(ɣdRLcai;VG~qh!%=Cr.0K w}UH|W=7ykP/vxRZ 4\w9JcX`: PHk^ڴ lyёPڼ)N,)񄕊L{DV꨽ n ghӁ04mͶ=ЌC_pVvWuLz@nJJPHl14s %i8)$Lt Ef:3s̋Ys"Lr'EPVvLuZ,$u DBvwQdR/ @p?{ &M/3L; F*O6~sE&`r[Zȑz g2` f 0BY=#(m{k}%&uIl0&9mJ',TVqܬDnf [bd ̤9UK1zM~:S#Ĝj}0$)y%/060@zq~| v/ag5O"5sCސ.Kbp  C҆A[{ dlskv!zq**DZ=ɨ>a4 ]Ӵ)Я\ZGcYϫ$^iG3hWEV3$N>;)BB j2[/)$2bdxeFJXd<\;~CBU%-dhۋuޟ$jA盳WV|%sO%N0P U\Sc peГh~9¸ Ux4ٜءl|XRc5iU+8mmT(3 ~^et08>.Yՠf|;m[TZBl ݬZ'^UBUi.+CL&Kp\ݝX=nFca{رHZ7&G ׶/lK[Eug#'3! i3"nr\%3FK>#̸g$Z\8і3`gوpAll+Ã66UoyH6K?:7v|d+diԨy]at@?mP>Du4rc@k,*^|31Oj 3Ax7{|NP=;sW,]Ϲʉ B+CsXDpB[DzMM)rftz&m#b'r=֍˾v^c/?8>ctQe}' \T0SgWd)8Φ"3> `7K*lZ?tvڜYv(c!GgAVJym50?4 mJYzPv鱀 5//`[y ڂcl_.:`kxJ1Wfw\Gb!օo;d>@̛ͣhy {>]ླྀiIX TQ<#t&*{V-eK֬ `%TO u6tjJ2׿ܓE AU#:Y^S-6X>& 9fCDӂqH@ǥwr'شҲS jCx6hYGഄnx/Oή ,ʓ"V2+S"}vX*e74 鐘C$ ;W0_Ѕ V/47#Zxlyԇ!}>y-9M3DȊ+X vN04?/ήu2/yfبɩx`Du=m>];?*Pe1*b}h2A6Z>ɮTR/.a,۝:]v D4#CanygY2LW|e_[]ۀʪ!vT u܈ C_`e `wZ>؈ll< 瓙z‰&gJmOOof5JZ29y&9{źj-)Xi(vb(>/&|DS*n^&+h22v|DީVs|SM7SKށD3oy^TGtTI˩*96M+\E&4S||r#K7qEWNJc99_#*bm: MicHxUU-P&]wI}1mv1MnNFURb|Rw"?uV&v¿2OpdaZH :e-xd1?DLF1v0 &&Į[L=V&P9Β`F\pzNl6#Nkc ޕI7~Q=9([Wg P~XvJ?;FPMf:* Jaו{5kG3+䕎N&ŨR{#vN.)bF,O|kj-LJ\\E|5)@g㍐h` &Sd]rVdKQ?K_#CxΔé|_ߟ9_mb=V_|%Mr#`))9XfO%YI,]^T 9/?r1I|m(ħĈ3A:QΉ(W@PtD~!$,*ȗ)4 *y x&U.D>ߣWߥ&k|RY<щI%fT?j$k7N=1Òߙ0KhzR=qah twK#4C3o n MYc/L2yH,"2i$-#\y.mY|S2onkO˨۫ `<⬆Wt5[{A˓-D'3dcN8pW XRXTZp0銡wb+R#4eY>N舋Q-m]O58AG͌8wQFoYx>`]cڀF dxN* t:܍x<Rm8Fd793oI)C{,Fmfj%"MC߮\/w;3 p2۬/w:!c.106)`0s zM|F DxU$?dK]Mu4 oINtЬ['&Pq^ گQ~ ENt^nZ ={P[ vY[o=&ѳw7jڻdb T51/;W(ްQ4+o}G݈2~}r^zh& Zu&J| c9Մڂ+1K0?r)A ";qA~,sb1n >izw{ B*Gfq:؜s#~" Ԫ"(n.gǢt 1|Ԫ nU\9\ݝrHBPd4şsrUūYU;ܭ}pR5A82xgß;rN2)\ {FzёPڼV W~3S2`cLXNk6D IKK>KFh];8{)I֩;$ʋ 8C]|V^[dM,!zV:i-feRksNu}qqi)7qf@HiMk$͛W!lύ<&$0\Mi|qAA ^L-iZb._o!ۑNuTc‡3s2rxT5tڀp}ae%Qb|nFJڂLe+2Tx V?-xKب+PleV+fl<|S{W"z֡4^}r-8P/Pw,a)t# u5?9`.xL%P,5ڳCFGJ!]-.E,hDW-<0,ҾG3zɀbC pI %+Hܥm.Qb%ap/vtxOhVyWK>RkP.=IS]t_VWAWZtƛ*1mftތΣ`﬘JwG]G6DK^4(1Q)0}{Q_Eo\?SfRj&HSC{ NC   gXŠ#wpt^vSwּ^ lsXs@Ҿ d?;ݫ: _4̦,ŗݢ+3C/:[5a՛- Ir41 RCFoxG1K:{C5cEQfw t>Cd oT1"_T_AY1>xMI=z>.>S%gqU,˾h8B䎟/7BW\Ŀ{H+DHOi˄IYK?e^>42KmemGP# Kv<|3f7Q>6P]9:Bc &V48BS:mc~hm2Pnv||~2n# A%l wg[(v>9n >dy_QV8{4VCޞҤŚL^D@ey2_Se{Ckpϼ(,m~& 9fCDӂqH@ǰ9U_RjN*L"B9|PZu{py15Mm) ~`|H nCCL>'Rجs{&2N_,wOe6)y˪1a=DMsPG[kI5\+cyۧE<%,gaջ:/*2_Q^{5  hxQx^ Oͻ|b|ҴS-Ȕ > 0jnC 7\vpmlyfGm/ OB4A,a](Y|&X-!|ڨ866_ӼQ]i+8^S((_mTD4 v7^HŹhqH{u7W履£zc91+UFhdQ=E+>y=V5׍)hʸTR2=Љ ھK؈ 9(cģA) ~ !|rR:W*fwU[v93*%('<*2 uV#B&Q!{lDJ0* ZH2 ;eYlTyO7kp9o+_QXƜ3*PUHcf5`y֎^B>jQL|<1@Lf!(iL0=KX[{ɬR^.\1/Pі7I\+(»a m8mRQO9C W#5mt&898q쐽D$ BŢC6%ua=݂9 5zG̗ra|F6MQ#ߟU ߷mb=V_|%Mr#ƯQx1r,ƪ o_Ԁp^)Zd/ *\fØKkg]J=wGMU375{:\~dKD +G`4?ņwyf 2U/_آn(upot\ u/6}܊T(s?d3|n)cϙM޵;UN ]9aS M p֜vf&)pgPU䝗'o/ҁ!Tˀ zp.!}/;Uy5a AI.3 RT{!~8v 5JM_'=&a ? r5_O,eY>NC`:Ðu|Fl 4q|Kge*,j1۪c2zX ެ%ǣbE*2Q*K/3K&Xiİ1&8YWu" nVGDzbc[!c槚106)`vȉҞ/y - V&~膺jDdOICw̤Á g;EqKEƫ2wkBpCY+̠wsT9Wn "ݩU[mlIv|ڦdIئ7jڻdb T5ճJ9!؏hC+ HoXL a$д-C9Bqhp HFD[|C!N ~u'lho T åd8 u~$֟]Qk$b`|2ex23,hS$ cJb̗%q Q?WixRPi+z3}evD@qiU3nk lӮ=-4 0i^u6EO,žu /|= /U7@<)#,+8kk.\=\k>$?ёPڼV W~3S2`cLXNk6D IKK>KF)o"ρ,S)VO'ɔںYDkqKbF&T <99 1SA91—ʷڢ|݌vy[2(sƖ2 i0wfg@6lD%ނ 2f^gbf:Fz\9 tkhЂF!y>Ek{0IZ]/l\2cA<;+܀Ef/| Fvc;%!P-ᴠί 8Tx. άey xizn!6VmlEC+@ c> G07~7v\P! Я=uZ7w E}Ge=dd ~sُHiw j"f\mؒkih (SpJ*.k,}sR&лhȃD+H1 ̤zI`)O$L 4!̠Pu\/-N}PK_;:^ wL`2_H}>ɰBFW -ate/krby3O Pʤ.M7>ݘ}zWn B,xk} F duV"}_ʖRb;%7.ePW'vDo;ClnNx鴜qiieacT|l_]qFߌ_h.0z ٢m=/CɐǏ w{vU*ж'P1D7"N?^ AU#:Y^S-6X>& 9fCDӂqH@ǰ9U_RjN*L"B9|PZu{py15Mm) ~`|H nCCL>'Rجs{&2N_,wOe6)y˪11iJE,#ps_~nW:۔!ao }u7 ꔻ%xUG[Kq~a43 v8gZ=2 _-@Rk19 24>/? ؿ:5A5{:gk.gPG$j~s`0;%PVTUK_1d{$Yʝ%N}.&T?ױnRXZ r&Ƃowr4~>$k-{r_S-cN/6\M1EmY[s^c^4*㗙"ILCW.>#-04sC}luN "]V[*09Yeb{q6RgGX}ԌF8P,c#WwDWSFH[pNw`pAj\p,5eH˱%$,&C<#a R|❄*n~S5|}@[>$pBotV[p{9,zU%聍-0>OV" @{ 4φgu 5OGq1:QdRȬw|Du^[bB@/ WnV؋۱.RIZu OEdr1@ePsP PwP;= _w"ă=X'o*%`^-(5 `/\b]}v`ᑘm5kIDVԺ܁ 1E"%9$ 4eeVc~qDpʙg'"`ĝ$(Pn1.!\Ev(IR=&!Pt%Ί`` Ԋߞa@}[WDP|RLyZϼjؔ+'* e;[ӽfKTnK \J!X+ 4 [rX\%*9UFϦ'_ՍDTOa* w<*r j Nsr njmf]sT?6h|[06vJaA35'P^ST@+@ <O)x52`FC83|)f6\˖GUӰRM#)tmh_Єa܇7|&P*{|%A// 't&TdUÄD59?q[RtND",8qx_1-,kX_WtX/FEm|@-3KTum["zV9p+JfL]:R5wI:WW< ]yyW72"Tjt{o9 YտP0 A*m3u ӼnH Ә&W?29hlYʔ\o]hHÚWޚIGvK4qKuB~Q0/vC{g,U`7L]mE[kAJrf9ܛKSuFß![KQ+?x'- P:w$lOv Uc'8Jpjt4i1&FzUM8Xez3zoF?_ùoèQ.%T#CHg8 w~x7/Z?:9ƖA+, NwʫPewˊ|7(Jes;nD?ז,_D&XVҕ-Vwz hB~Un&QɄjK C/|]G c+@`h60?Τs@/F>HĵqY\fKj$h]ZUm:Ԋ6>YN0W[<3MSZ["Ûoe-tK rJR g _{V@Y,3I0Ts@vNDWXhtؽ;置/*j#.V1/uka(Mw$ +9N܆lsU8AIن36AKҖ"Q"(fs?i2h$HKZ{]m5Tw(3V_֢5 I=~ӔP4 ڀINn A|eZ&0S dF..P46b8֯} ҏs}ඎ{𔮍e&k#(\vir򈩵#,XX`~xcr=DQ#ڣng"}LX@GE4nfi`$r:w(pIb!rVYonmdYAn~" W'[חtBʜt]2'-ƢgK2P\Tw4&1H.)auUT$V ?6!sZV%oo|r'謁5⛀ Jx!})ut)'b~@ucFOIxMپEK?y}T[cǣƊ@h"\ \ZsqL. n"ˋiكG'i+ө̅6I%ak!Bh!1-{V3=%eGL1aM{t=~JKҟ0iX6/*lʕĈD)>^,ӹRf @? /$"=H*1оHnCrf!UdzPo *Th3(tkC!~4^5@^k)c.6Gd54kAy$2/QARvx <]v[.7\ӉN1h&# !sx::V*1pQAޕgU>ƞjS+Mn+A;[d,Bo3qjD90DV$:1!ѭSj_?js1V/[^FL#OB{qcX+\,`JJks)?F8iK=ƢVl;|U9Vl>E~f 0N?GHB39'lUwlSb~E '|wMi}B@;)He?ڴ央DB88B'Oo4q\[%p1dmS-<;ZEy5JhlK>1SE\2~T !/`,2VWOX\m]).KxqcԴPLyUx2 gS,D`߰>C;R|ĵ>OյdJSHW=<|:l1Vw5B>-s ;~낊 ip8>;n&ЍX4A$bUjJ@m }y2ŖOt/aHa+̩B$G7GōPHޑ` _b}ap+.fG?*U 7I^F#7P;+A ]~1G%7Et9(xn\nWE 6АZc}e$[^wYqShrnn3yg"7NOmӆk“uL#H;F٫e)A2vxz 0[>A!)!BGw(clړ\k9Y3ɂ)KnGm;7sWU% cGIJL=ŃmJ/ָ9葟nKp 7c>[a.Qgr"d|;\$j)W$8"Itj7zo ~1{e AtWN \) ڈS wpAM$_S.,XΌ'e<&q'cEV`t*>WKvfv+EPU{*Dp5[C4LY*>A8IF5])kG{ @s%ѣs?,n5T{."w\0}PB5cm4_ j)a^/N,ͤ))s x_/nr$h#=rsjB!9 Qx.fzQs>p/|LC{. d1\R eR~"5û~=eAB`R6Zv ]AՉ HD*'! !3d^pG&N:h 2MgaZҏ o6>0KNtKD)NS\r$3(7[`7C`o9] 4Cޘ'װ?oqY Fz؝@a8oD.IEj*Ewp'YOe;+:kl.ȧ~@݆3l_%1Y΢sy=߯Z&5g]Dx_b_M~~ܦ"(ݛ#mnban 49Us|}z@6X~_9 pe9&OX_"ΗPmJ]{m\'w,x2n{*`mI>bexGxq׫)fP7T`\3ޏ⋕*gJ Zو!h Ƥ$;- (CC!PkN^h%!5ʉ+^NzLI呤ttVgVf_hZ )Ka_sOS[-X-Z eVےO+;z/jv!-(a`Ri\mai}aUM=SW$Ch)8E ,#ŪUg[;}8v$M͔sv4qPDazVsJI1B'k빪'Y;3}\n((7Vڙz6h-Y3=Sk DNgQQiƓsFx(< 1Qn}M~q%emWB'xeͮ\s jq/<8n@5H +M;uTw{K$PB\&JO4~ Vp`+ف&j>M\HY(z7F!R aNjO3"ĘdFnE/Lݥ/KEAy0aw>Ƃ W Z9sԥ ]Pe&?k*(B.Gt!*:?8_ؔfݦL%[>6ZRl,C;ֺD{nդZn{+ȸϼEjrwyۙ=5{O=ݗͳ_~<~El߃lW~#~O惤uDh$ _vS 0#‰g6鋹_И秌&m5): v"%|H/2) X] Ð`6OZJ@'>r0 Hsj"4AlJgKYoYakc{ Vs),9%'*incδX\e],:T(|U5·KBQ2hTnEdfNks+E^hrɡ;QL(PL(\[x!Hf^}*QuvGd4A=aUw !R &WKoʑ9 {PoOACufW/PMlS_5G̲{[qp PM:bOdHӟ)M(=*NSVCIq qR+>niYN 0Qj"Z<1$okY8=3.Y[+\?읔68Nb|F p`v4_J ?>S8cAM?:pHPdA\x#i8J62ENUmLe{ϱjI>l7nql8eEW2JK+ Y|Wg1+^'}HrVEWA+^&^[5mE> T؇b0KfoDb~550S` uءhވ0l62/{4° H644s`Uw@n^]9; e U1[ DfilX-5}_P6d"8&ڀLFR>UiuLkCp~%N aJWv]&WFPwC:BGil?N?LR[bUY3 :7YR*Wȵө$imȄ..6szdONAlCtjAgL--&e@ KiwELOhN=.xDhE߂ul$۽Y9X`5P=X:FFכ 3$%@HWm)/=N"|W1ܻj#'kN꣭? %2hNKQdF+3q? 1G#1``t[?m運RRp| `M"dR~+wD4j*F҈殛x/NӠx[F*|R&J9$&ڬͯ5o\PL z[7{K,()mJ mߨDmw@NQnUDİ2MaW3,@E!7(H-?,v-J.< Xmz6g ljRMҟ8<`*dD״`FgQ2,h".&,5Y]K;u?8w%FL]5^\S $ cKAyBR\ xu_>:"o꙾} lH5QgJ-@ffffABߦK@mu*ڐCy?\V_Ã`jj{!-J=@FGtPSRX-7ӧ&ħn2Mq =*$ ƊEWZ@Y8ݞ FyKnGX!2lRl%-UK0=ލ<4z H!*a~|dQ^ҡ/i/I? nZP&%'V^@D,?&r&L5x;'v״[wqTZr.w`(aBDj$Is7vwdä/(-}̈́c ~o`p:Rr0s h$LERE őU] Zg6P#p*KA<@K=.Rh`|N[L9LG\w˦|Z?B\ig2pd3`0{t p:CJ{P58y2}׈^೸? TڮAMUFbJuZi:}N%-C%;VzXG1N+_`)@֞*61ܟlȟ )rEƸi{0?p8* Ej&3`;j~ڼQ@ m9# Yrnz&yo:Tqe@iyz겢Hd><j%LX}fOV # e!<sѧN^C@V 3֞ f ,-Ldt4#]ʈS}Ӯ$JBG{5y^1 j'6f[ɭ#Mz&q(j[Ⱥ!\2*Bs[k Ep9mB*5zI9KFbB+R(#Ϲ2c%fe%'my^ S>ve)8HD1Cl~]@~uF.dtU̥} BuI!E;I!VG`q {p)joa!fq !lBŵ %ө5;ܰ0,^=lr)E3ubOc]SS"/z41X2OI}$2+vDlU˙3RQ=F&3vG,+MҍŁߕw\*TpM$}E;ܚww-DŰ 7)|콿7 =ìJoTt-¬,ROd&=-/8AbPN"dk_s`S;=uiK,O|Ό&(bNЎnQ;M {˞ u/ꛞaHG/O\4X~7\뱳.*݉a@-lArf}i**)xZrNԇ)G.80X lˍ0`-*H ӭޒz8jDY_)Y/7"@uh' <F?[nn2Oxp)`s &B_P#u=!g4&"3 q y*\/Rʄo#ӵn}X9w:>nBmukiC-xS:ĊqdOD6^s~UHE^y.m]E[ujP@#3hz y½"jtaSr9O$`8X i:Gpyt]RZQ~k2 9ְi$XѕE{p^MdxM>=t_E*_sIQh{$"hq*"_p/#gu.9,Dc뒍9+KJB2iZyue )lxVS7eH~ʩm ?nF4RZM;1HO!Bf0W](%I Q4a1wC~(6<\gldk]n /Ϲ2*& {5_.1uglAAaClܵT)ߥq}.XE s10XiGrﳓ|"CR'Sbp"+ MnjA m&e77 <\G*F樜\4@~GԄ5w+pKZPnIRFS=D; hWG x ESW446{!N{=r4.QaZ92FbtX Trc}ztD|ݶN?wo/7+bS՚IK@ӓ퐐wǦLv\jlB]7}v)  4W(ϤWj)}{?7@mLa[RTGk0ȡ(]Ӎ|SiSCr{-[hE^.".)O⤄8i;I-xA4]{ڐUe%]U5* -<Or[9(ktFL`>QKy*{o7^[Fp< [E@ޥM'sʚY9uLS9Ks7޻]G'QOҋ~v%ؐnM>f-h0>mϣ6EqMS[@ر0 = [Fe==~.'[Z4*&]7-,sj`}^B?z"dy=CoWïxm ĮBߙ9=\:M vZOt+LKM?} jP<;F pnp=73lNM)JSHnjtGt1n.Gb%ҺjлRqz\BJ`  ح`F&x&bFO I i`;HBLr+iEiQSrB7 b Z[ULP)@8j4*H ._w\S7L;GbЩ3ƷQ:>Ս9F="}W=z uH9UU)JɮŨM̠kϷ5* @b1! M!MRS5EY]D`b9L] WJp\tqPC-t:M0[JmYwfp|W4JBжdܓ9[\3/J=NX yyXG8Cx?qzJv!PC^7f&2&,R>2c2q] 4uLHte32m֜EC)N%.M=azSf쮈Ar-(8> ;ϖ!qĖV2?5Tw(3V_֢5 I=~ӔP4 ڀINn A|eZ&0S `i{q 2)@t~,9 [n#5/rFA?7U'>NT~*D]#+i}v (ah!b\3P&0lw|^g{&Egs7ud4MKi H0WYGwkܽ B\1[W@ ؠW\\ #`F>4 %p֠ALyr~ykLUY%爑l ġvx[.kt?\u{vn1Պ\=N`י3x#AAGb4CɢstU)jsp_F3-ݓ:ƨZyçlɩecHo/l:,Vٱ%ckMB5ܛ<3ǍQt#2Hla_ס,Mx&PzBD6B`TͶ\fNK%J6>&%K EMG3ϟ(}uv _tg㖑"7Va>#Xh&g͆j.'EFƍf '#X: &Lo2S1%m*gq}]F2B&}/whZ lXjtOvyBGYyLj8B\mO>ɚ`h}* -} o~7z5o/%QRbi./v<”JACQln`2n9\{M?q*dYlV/D3pYnM;ZSţb*y#ãr6-%ǴR >$.+ 3@IXT6u}}UN"|h@ L=/E,n6 ĺB7XT~W{Uy:U*b|5.- ٳ8q$EYE%A&jUV^,Yz^2O >)?F8iK=ƢVl;|U9Vl>E~f 0N?GHB39'lUwlSb~E '|wMi}B@;)He?ڴ央DB88B'Oo4q\[%p1dmS-<;ZEy5JhlK>1SE\2~T !/`,2VWOX\m]).KxqcԴPLyUx2 gS,D`߰>C;R|ĵ>OյdJSHW=<|:l1Vw5B>-s ;~낊 ip8>;n&ЍX4A$bUjJ@m }y2ŖOt/aHa+̩B$Gcz.2X%5؟}9u;-sJ之c27ʼx6k@F !7S+"9m۫ xCd<(,Dp;W*-G&"{DOD/\y1^;YOjme/lK !ᩈtTm[@;j*Rfmk&mR"./yL[ 紀Y@բ<#YycK:G 4BxOK;dW s`\j$aq%|QA~:-Tǝ0owrBPSL ^Ԡg uW:TK ?]AA5GJ|aE&@]ZP#3V%dұb?JmS+2ȉX=L_ NNr=o]]Vn44+v P 6*A;S.&c|7i=YqfH_kł ֣▨=0Ԉ #Ο%Zu+h|tFu9㼎̬i'JOE TiN8'#k>O&ct9=(ۯʛ$NR>z2󩧷)TJCp[`RMfmC.3$~1!"Itv`_} }Db%CA!( NԼ^Qۍx9"\0{U\OAwSkmlF*TFgU6ZKEfo֜ v:KV:Aկ@6䢽IgqoEUWMN% 60T YU AFqAو]7ʂI:]%t`V[G14l[WM~ɜysy9rI$S ~sP7BȠmj37p!fia&oߥw1 ?S/F P3sm~H`] o>jqP8l6T\ ܳ߭o2Y[~ f imD뭉!xēmmٛqT5Sb!w6T%4HyI>>cιL\ibh6LjB r؛)<Ӎ^<2Zmf+]4Cq#Yd_3mHk˜ m.T9%Nv,}lu4ܒI$<✅#<"ڸAh6R^ft3/ VD"a*`N;hu%_Ap@5SsCK5E[M~(UYQY]@6p5"OLx\ԝ2õN՘ !S 䮬:G_9Ժf ~( , Z#ճgB@O_>ӡ=KE|PKN#A (;xzulF(jӁG',,L'cWo: Q8b{hlְͅvM>ßP?/~< P 8luo1T )ȔF:,vtg|)bdZ]H+[q-%$yvww;!:iBK&r) m[O CT 5N7&fǼ,ÒswE^Ru9;g/.=HR Ɯ֎LmC~༇_Uߜ[a)Ugχd~ܽlf'̓IgۧT[:'`eX9I*X /?.LOʮ7~\G\)* b_KTx::tgvۤ"+;euy\/iYJh F0|Ιj34^9h/ЎOht/2:f~wg s\,J"4Hsf-DD4>g:@j1۠涵J3ͩPo2}f,{#WFn~6m H^C FG}Ň= QVs>zl7nql8eEW2JK+ Y|Wg1+^'}HrVEWA+^&^[5mE> T؇b0KfoDb~550S` uءhވ0l62/{4° H644s`Uw@n^]9; e U1[ Dfil?9sr 4_M*sEDg85^Vmu4_8F4&ƄxeEW"GoAK\?\G4AFW.!ևJ)v~E>\3chyMTѯqpxѢȗSXkv24CbWݰsl:e+5× Ο7eLI(>J+Ґyx_ Y%i *\ٙyh:2~ayĕFmmh酎fBjrCmiIVn`h9I{ ϱK~mlQj^d"jl`pC~Y=S`{?Hl@W w+W9[,@Z ]yM){0mIٗՂ>p xLPltkGR* .נ~cUD]ouG'AK yTp\rOi&3HH}Ǔ>.Ȝ=zvy&LULG Ðj͈M@ffffABZpq$h Ͷߥ]ێHzaqXS}I'4OtPSRX-7ӧ&ħn2Mq =*$ ƊEWZ@Y8ݞ F"{Y4p|qI!5&MA nziCӞKD_[鉙=A=يov0rP ɿ'ʀq9X?ݵ^j&eJߨ~{g}/Zv+7CH*5jgQ.e|ˡĺei̍BOFLBB\FA*CUɬ|~M%a0fU4CQ̿!- W @h{k8@0cژ0邬,tw5G9|{ )dow33_*: ϐDy`f";W6jZ2) rx`U0|>HF&6^*X ݠ we-&JqCG+ U5'>3(ݶu_F'[7eҰRbDalg.n ҧF+-nf7ؽKme][a;#WٮGB[dغU8cD"깽ܿ?xc^  "۸#,Kg(U`') /RDؽkv5#`^~ݤWq(j[Ⱥ!\2*Bs[k Ep9tņ)e]d0èp#DW-ZFGWj4oxKAҷ׼7yO*}Q/B& Dq%j6Ht¦5 I$߽s]<=%,=2#,.j'\Y9זU69VWv (v|4RZ/: +XsqH$ v{ȸʤ[Qou^݈0gjܼg+} C6Gk-jXԻW0Cȍ~9xpu7W)QB9<;=]Z2D#QD~'<:l#6ڭalՕ&40N=K CJZ>R^Cy \dSd:495R_\{ >&ձEҬ1^Erϗ)KN: a{5I~#UnriģL7A6-Y4xF7[45A:ciu{'uWl3h,*L#m%i"ME*m <M]HGphC oԧI67sSf&nzkϧ8{TzԎZ/*M+gvVʕ룜.uOt^^>\HJcOܐSH,U[PY2 w7Lx|MK ,6&~mQl\U0Tus%>rnԘ֟4U20,.ʨOin`\nhP:BM&!3izG==ؐݎ/+i9Sͫ7|*o^B%:31V<+"&Nu7 `K[&WX i:Gpyt]RZQ~k2 9ְi$XѕE{p^MdxM>=t_E*_sIQh{$"hq*"_p/#gu.9,Dc뒍9+KJB2iZyue )lxVS7eH~ʩm ?nF4RZM;1HO!Bf0W](%I Q4a1wC~(6<\gldk]n /Ϲ2*& {5_.1ugJ6^K67[+˪vXE s10XiGrﳓ|"R'Sbp"+ MnjA m&zjU .m%1T8 AG-_n6MV wN+^']fܲRP$8Js|t-ʰ̽"ZBa DvVg#D8i8X"ݛei@QEUb8{{Y&dq΄6)"AC\H*XQL>GWLlk賯B@N?-yU~z<CgP*jg CXJ" ǠBL?\glS*T_X wx|)"w*= G_-FY1H'Lv ՇKj&J<~W982c2q] 4wL(Ʌ: wzu\?m՘Wl(PY"E;Kj %vHA:Y}ԅH[H%QĐzb݉9esOOrƁP / !U2BaDf=j}QASc9'w+)`t_)5ݚgذʾrK(HJMpb1Th)NCuVPde%9 3QÙ;JR!Ωm:ַ2953y8cQ?E!LP3C岀HqQY]qhO]Hl$kV[v2@bzY9hjL eZ%}ҁRZ4G49+s8!8?}ʴM+X(h[fxsoXHȝ<{ n \6UR~][6{7'}Kqx2n9\{M?q*dYlV/Dg~5ˆ4y` gXu As,Cц1=g\rh?Dȍ[^087l2MJ/E+K_O1yb ;uL&n~ N toB[@Wp2-;pki>ٜ]^ć5*[/,پpo̸}O >)?F8iK=ƢVl;|U9Vl>E~f 0N?GHB39'lUwlSb~E '|wMi}B@;)He?ڴ央DB88B'Oo4q\[%p1dmS-<;ZEy5JhlK>1SE\2~T !/`,2VWOX\m]).KxqcԴPLyUx2 gS,D`߰>C;R|ĵ>OյdJSHW=<|:l1Vw5B>-s ;~낊 fxN2kmHzN>Lk_MRIıt*5 %o6>7ˎ&>&rڜvA5w*H@x’,TEEw~UU q?I|W`Agwa~gyB_yHvػnݷْs_qܥD3ϙj@G^r'iiG9AغOU@j< o_P?]%l-Dm  Gi՝^Wr0}o91(\n$rsPDFֹS|H,xn՞S#企g+p+,XIˀ.~u;'j[UU4Bޢ۰:g@gWqA?uXWӉ~:0%Mp=;Vt˯_kF$~dtTZ&f#ⶎIz a;ri>U}@Tx- =uUk&|@>?X',(L {륮cMm`',k?#CLΙ:[7~N,T_NCp'hЄyO)֌/%nm' OZ. PBkt$>MKY?$xR>ێ=>?Xi,@oR, _* P,$< vbS&/;Uj U QXz;ͯnw 1>kB*0a(;L'2>:cHxj/Os9'gL+Bᢀpa_S'B~T΀INCMÞQ5[G:wȡ lkq8Wz^9*Pu!CQQչHB(6SF` RJOE6:0ο5tܸڔ/Z0>@Z^,jIˢCܡސ% Pb PplÉp;{{;qZc+4߫8KC㜑ãkA>O.;yjk-ich3Z4 nJ+>ܬ7mJ؄ K1T8>|'kgJ~Alyu .4 qktXD51۪h^"֝&9D8j@^̽} 2}JȠێoʊ1' v!^rG"6 5ɈGV7-_ JE01C?7~Tf̎)H("=3~/mIo>U'`l9\bGuAxw;oą}UUH]A_E)F\"n"`'Ԍ@o>!GWF[> ]"W-jpb~?tUYy~{0$\r@Gɢ%[o@d>G* KKn\=%uZސےI$/255DJÈmȥbJI ՞$L]o=.ƪqVsou)`cWT U܇eUHA`]w ݻzcnV &dNtka LRj\|&=4!%k:p8N5uǦx,,θlO!mB 3sAy=}FVgmx(/p6’ { .Ɉ k]co`jSض4iorMT빑rK.O НF"k"rWGN U/\&z);lZTBa%dP?>r_=e]yhgbx!am< wR.O~Em)Ay}%Cg.Age 柌/f6-1x0xeBt1riX M 1+:N{# Hss鴫E53 ޡTA>| ]xI@O8K X<;`zvɵ}YYQ]7*2/joЧ6iv^D&×اG'S#~k`F7ߌuUh4FiIM~5pkot^1qpt ˲iύP.:tj4Q &^6!^?S;cٺzV=?qfˣ80uF9R֚䇐(w9|зXn)ުGc=j*孻 Cr'ئJV] bd_!+\CKm'^:6H ! 8HVbxGpO [=odǭ@얪ǵS^[.kx#8XI\y2P=!,EE?UZLY* f(}:Zs)eS1cz, r&blQh:X l| eEC^"l%lmDR*NcYX68(-<ݸ)2,Ьt-'oJ9t8" 2]?P~k `@d l]VCʾ

W2JK+ Y|Wg1+^'}HrVEWA+^&^[5mE> T؇b0KfoDb~550S` uءhވ0l62/{4° H644s`Uw@n^]9; e UN`HzE首/ BxpG֖g3eck'HdڦmnxML|E/y9Œ1G|4 hG&ON&&#NζACvu<Fg˃>?9ss>>`U$bpoj,f^Cd97W} Af%w d4*!<ΥzU`K祾Qd+CL w8{BtGN:2bVoMю\ѫ\Ml29!zЗ=* iQܟw֚i*zaͲ ZTiI SDhFEtwzb89)E1])LotUPÚzJ4jOF(v$ w4[TdaO=f$a-ip1ta AH ʂ[c9OBs&_\c؈ARV~5!SPĿ'YdB 7WKm)?$_CHvI^;ǣuֻՕݷ3z9MmPo_co抟FuB $*A̖+nZ_SX]Z_" zMs[(]xz:k70̖@N(y@h/.MCehѓsV/|6.#= `<*xTbvaz }43Io%a8rX+g ݚ1 "SM?v] x|&֎8 jᗟbq?X߲r%Rxq;-6 Hb U D\Mù]}[&zvU_q(j[Ⱥ!\2*Bs[k Ep9tņ)e]d0èp#DW-ZFGWj4oxKAҷ׼7yO*}Q/B& Dq%j6HtPӉS*/#"7ONAbbO "qmJ TU7b`2ULm\ DVo9zZ7 ssg?cf?M @=Zx:/zꇢt~ TG4NXܮsyH*&zj@Gȴft#Gۯ}Xb$R~p 8wsBI^Cc#=eH<\_WK7I/q[ڶ( $xvȭQ* ^uDA6I~HqbfU~`PQJ#ET8wݑ•UA%JR'ۍxV"AZն|+RG[1a؎ ` tY8m4e<7,S~Bܻ{ͤf!kH/#6$ YsHk<Ԩ3Eq<։EC)+G@PSS 0ԥ#X i:Gpyt]RZQ~k2 9ְi$XѕE{p^MdxM>=t_E*_sIQh{$"hq*"_p/#gu.9,Dc뒍9+KJB2iZyue )lxVS7eH~ʩm ?nF4RZM;1HO!Bf0W](%I Q4a1wC~(6<\fcLuj-_q{8^reUMgc^+M` <5Nk[j\ba̼l&N ޾KLF&aߖ$0&@ ӄpb|e˾LB:;R'Sbp"+ MnjA m&zjU .m%1T8 AG-_n6MV wN+^']fܲRPTMn {_n=DUwOD6,;r(Ni\ncda0yJŴYWsv!MuA™Y~151-Y'®rH=. OO1䠀K*%#l6J,r4n8:}!sXY]f_}ܨ8?/ B Rlھ!B^0/aiſA4;Bd}c-g2ȜG@YXg\1m_h93D $u,4 Q{.ZkosYY6 \2c*3bsrqii i^ɶG4V}{KQac>ML?8ud~8 zAUeЉ+ѝ[1ۢg?)d𥿅)w4_{~ gV\,y`{I*/eZ;kq2$M-E[wa,xY!@2b"kNvPoy(xYn37;E‡6%yIMwgB)E | ֡=zɕ>#ǿnY90<(LZYpyHD@."Aq4xcF;ZAU0gWS'\1+`zS k}7J+j~|ou]txߔ5+ETc"05ˁ_Eq!t 9q~Yx!_BUq_+%^$Yp6qΫm7OͅeM;/BFԀAV^9$Gcnc3F']PA+ĪXNM.0P\s(l]_%##k-Td?/8ȋc[j8{lK1' "4 d -Q[ p!iA Z\K3ۣpeogଖ| Sl㊒&ӛX$"_T7)?L/xqe_Z4֠97H0ӇxR*CTQz߈ zΐV 0t! x]F;IO 'H[Bk@4\ xYy1̤ҔP>)*H2!6VQ,pvS?`c*JfQj8iCt [Wt # <_4P<,rO"qSRrT*ŜΕFT^ qꉎ)C ;L }=B$ fNS?@GBWQl ]tQP ?*ӭ6":r? OKwCg_ Cp_HQ?ëḟTx^?âm*}ana/o v{}_DOw8JLV~"'`Bu9[)@V+~;wϞ.x ,ƼD7nm4., `1E(`Fo-x[{!-EXRDtz'%X^%%(J% 4V?8n1 W׭9fZ 3/~D-Eoi\4zmgw `lݢ#_){0tPb3{E.b6K6HJNhCoVt 4(. Ih8L&V2/Ńu7eumT[1Re&H9tw }q`%>K;^8zJVAu)WH >H;[5'ʹM}R;aZSqkEUWnSթl&<:4m 7u}';6ltԥJ ivj_zON+ڼ A n߿k @7dCxtP%))v҆c.:twh&y>!,NMu\-wVNTXSC;o&f ;٪MKROO#hvэiץk TmiMJA.&60U۔r2].ҧk9g51i4o@mRk㠡"n<ϵ*2cTWL Ǹ*mt["iYFUr}v,zX#\xJgLXygn {95G3;*h&R]GhzqeqbbwPmW.krw\:f)=[_|<ړF1.jr6}FKktw@Q"ȃ>E-19P\Y ~wQÆ0rTrA&8FtqC7N%Vc.iKC 89jhH[U{.(=F0;9s@~՘Qpzs@Ɩ`F8|Nדd\X:OUpJt '&$Z@ n榮w}mԝĽ\ D3=*JYS)LQdAU)Amjiwxe@edL"kvOddį=DLơ%#)lM V1>M#@%ݢUK%Znp*z?J.ǖ2 R3#ڍX KיMg_uƒ@.v{6s/V~Hk[µd5I0l=)eZ^1+Syb%pV\ P>QPx,Oo`}gRyJ8-:xcTd(-lz$v%.R¡MjK7UzkZ 3&B!w"-|f[иè"7JNs <ͽYChdƖOstܔR*DRwr'uX= D 3 {uߵ{Q\W=C&4.oS[ yB:H%No4Bf>iAm k]WC(Lko7BT+] #/ [e5䲮kfnA]ͻrQF$v, 7W|UWg1ѱD>x$TVic [TFȇ*8Lnl-+ OӇ5>ax{|ʧ/ /"0#隥!Sh[~܅U!cSW╅6QNAr?ŭa=àEUߕx $#M_X$$ rƌ·vKsJ@DC)mO;0bTnV9*cHQb-_.2ޮ1뤨( d<-Bt[,ո 5j&x~HM\"҂%M^[ta/ފQ_;|&L&*C/AQ՚l'0)nb= UvHmpFLk'pPfKk&u+SF<:TQ~+K6Ç% ÂaAQN2xFtvӀV=d .0l@(3F Ĉ}vbG#$U;)"?\o8A3H-m6,In:r.MJH Tޕd홍4ru}?n0?[xڛ7Q%zqbjG5ȷ"n2J a֡~j3mS/Cf |:B;uN'bGر!sW/|kIvf6ڃ~l-_BOK~Z@9HO!!OgC>YpZ ep))d1y1(|d3wΏ[6z9d2Rptؔ4"PG0}rii-4`KfSbA*&vہ8fx:@m$}ߢ5x; zWuĥ @i<(Mw?&}O3ŽУ5_N436t#&'r,n>z<^' HULj|:`[WUqYF{,; Es|WO;?f 6:oe#8$=tRobF1֌ Q0kh%'- )8z\]yԘ\?/.Ґ}dN% K GE3 My\o6>h`-;D Qm,enF쒊rn U _ʈxزE94 ĄY8)&RjcH6'I}-ӳ1&D/<@mi`ҭ-W 䩿ktuVfk}pp+.'*"J,lbJYF zra^59*d~vS^]e\٪:/oPm%) Uǿ] Y7'blh%XA?ZVrHNAC:-KȀ G5=%˝8# &TߠxބI#$Wrnm1>w`<WqJɋmpl`1{͂6H#(m %N=<+,T,!A6'r4y}-%e,h1wǥOw`Y$ބx19 |P ,{ qP~'m_J %x#uH_}V^U|"i8r?ӹ}=([}FqUKe*)>(x+|iz{ ,2?jBl^Ew3n@攧5SNBZEDKA i{wT,4K"@ID{U4cpM^̩@[ LGYZ( M{(X֢+@MD7Z-dV4;wWb@uObPxS݈5ȟuϛLس"3% mgƇ5]?s-)gү>U8]A$7ָoɢ2ՔE?:OSi,qݬ7 '_V&?ы_7uOU qqQt~ ,TC3r<"Cixۋ9w7fwb1=N%͔lHp$W1ziuyi~5bƊ-bF~~=@(g#>U YFOּJF]EAhoezkhIcHC^^RGgb|qKpHr`hBz%Jw;"@kOgv*-T Uz";*BAJߒ5D|냽P=G0.G"\[ 6I5(qJ@ 3 ݙoc,;@,n!p[#g} ,RA*(CLMbK&pv|+H :x* #B#lQC6rDdjw Ăve4 |h^0f`]cZm$z4\5@g(CU6>@De`Z oG24;HOONe%mdS/RQ_0,8 Hb"VŤoǣv o7Kӵ pk2g™=Z q~'Q NnoJץ^X|;:)"HhWZ'vm0Xn<RgxUba.Ks&G&qȯ`D )]99BǸoʼn!6p@\Rԁ %N4Z$UnHW$π>+|I|ϪdEe;nojl㵱&;w9ZgJp,}Hqn~x^15\5"uLw_)Ο2!)やnv\6V <=Rd@-s&_Z5b*Aǰq#4^b ?p,@ig/ܧ!\>xC.L4tcfC7@>e=t;`X~f`\uݷM0BVO-7] sqABN}(,L .Z)Jϼ$b.V}Âxyoߧ(s75k0Q%H6f[Z>sJ02VzS*4$زkF9[7VFůFeۙ4wFIS<{S"cpOT,49}BPe }/Ut{d } kj KbwV~8͌KЄ7 D(hTxW]*^\)E`7YKz6t|U&B hCړ7g;=|J P/|fN-9TR0ZII(CCE_:s5RoHO ңgA]廊m+|luK7 @'8;#kxM1t\esQٍ|8SN6.=+J^C''Sq鎅dwa*7 ;ɈDvW o(@F).p%Tj]Rq*5ԜdkH 6'?q2B/'vu$с\a?Ofp x7DSϾ|-BiIXʻh?lwoO.B 'aI۩} ZZZɻ$r?bKXw_<(7@R,YQgʲH& "0-Q3KO~#%4B`ͼ~tl`ɸ4$..5PޞcIZ}nևF1 i‰`4 3MU %ۑ٥`?!HkT8xc*p "ũ? Aؗ!Oj=P$dٻL\??@ҁ&:"?EJ#?WwI4W* MwZæ骒?6 k+VGh*d~(i}$ )oÜQAmUz ˹h2d,q 4AI}@0xq'Z@GUpdۮNV/d:cRNCzHn˂bp<S)m xlX&` "hF&7am~9æc{b t-.lcXKF݄*0nNb} NKf3iP3Olbp\r}[0(YdvhJIsϕHdZ,QBTgUT bW IƚUcOc+u4-r!8fpIP>9c(2I "QFK( @"K5.uBd 4FP kw߸|hrwQ<4So7ξ)sa i4r:EHSXI `иUROVkdBW$R877eqyHpT· RA{5A6<̅ڮp 4֘č@CŪ-}t%sicf h'r3Uʧ;c*J|Gs66Njm7&i\5Jrb] :fyͲdba-Ӝ[ݰS^Nگx11S1ʧ 30-% kl{wrK1(ay^A,]Ѳ u~#/H%6=T\$t-,;ᒣnxlO64x\\UVŇ%1 nr9T$A}/#>`.Gch|DEA'˾ m/f ݜ4QE/zܪ1r8~є*0BJv=1")-rRCkiPTyDZQSz~{"lX{2%Uy %KjZ 2!|4*r$aMq+d-Şz2Ș0j@YiV:#`2\J*3c2!l3D3/мCɗ_^xVw̳\Q߱8X.YÔׁ0Ze5axCʢ\ :ʛ\H1sI5r!_2NK%e/w|7К1qJ$_m nܮz~ 5{jssY`?o0)8ԩ/MR?>B ,4'CiPwdsx<¿1T?A~iQrpTe >hpy?8qdp 0M B3=!%U5KDuN3Oӻs>kn:O g}2wvͻЁaa}G.%GplU}]Ύ)/)6YMq6L)U3=4A= 0# (+k=D9@.yr(!8vn<줾&s:ө"Q}rai&j[by]%?}I^_kaׅ{«6/b[ ^XmWS9,V$iջ=_1LcQk1uE+f雖 EٓIj?SDba$(Jk rml\/;e0`EZGd22ߢMtrq=ا+G`ERYeV @'7?dV ) m')D z0yQT|;B6(&k >eom˞ /z>`\.*%9GVTd74}s!\M`Vtz@t2I4Ȋ ae^V@_dn"-;vRRL0j~_ZqCAܚ|fР8QAي<-PYH;Ngjq#H[M|(3wǯwZ6媾0"Ge4o7;J42,T,: Mȿ %vOy[0"}Iwn˺Ra&{Z~!Q%DjK:M']aU4 guJ?!ctUDp4gvhZt-۲Uџ491AWT(9WqL_PBm:@s[l_Jp/3Yӥ*}P\0LWfӎ*49 ;H'km?A6Pu,(A-i2l߃:=^]sa=Ue)l&vq|[1qt2:mn+y^C1J.WEIos VCt6Y5lUՀ*ݴV7朴5f3|sk{4]MYt14I(LC4++.靨q=\å[䬋,vr5C)Za U|N/ 0y>.=d瞥X]mh5p{I_.5^C~I1;OM5K3PlE)#{ q| Ê1 Ya v"0 g$%A^Ğe7Qfc`-+dD-Ko `Jzh PC,dܱ-<4UНbd'y]ꜞ(76q*wPc|_D_ ɡb4rYX L Ed4|VBloi{t}mH]Q@i3 NNG O2NwL)Ėg(lq>ϻ4ɛsu IBmoJSxS86E5`@W)xlig#'fbj2).D{^M0Ax ڭNt-;~ cBo-SExYNNj{mtK`l WX+<ܔtS ߅ŸmqMHXGLܵ@jG GVX[VɚGJT{yn}A\Ћ)d,+#*]bC$E3M|L?חx%("TcHqI {ǁ;.-|}XIe(?9MgQOiؾ_7GF^X盅`{SCͽ~h+p׀cW[6h}`1L>vބ^>c<9GjB,Q3늒_ho6$W "p]a"Rހ__􇌅_]YEt=SaN\}B:LXe]7 ]*+Ԅ,!/ZVI|Uv_X=$`tO,i+ QzeIӨ1gK !Hyo8'a ( #3 䦂tُoY2^C!5!MGE@Ai9u4\eLsS, lӱ|Q=ͤ']~Ovײ*ZΦ1I՛"mQ @@YE Cb~1/xk?k7_byY, !å\&tI7c^i&X#+-xw|hag~! =J_ȩ\ P5ݘO:oVJ [5mߥ#1G:\nK} : FIQP+p)J /[\H`(hmb E-&RNmw̯$F>{?c:࿕د9:'#T6uK _۳7-F`zLr.E,eQ3Nz"$ |'C~g+qjM6^ 04n/Mҟ,KӍ6.H_N_çᴟR(+?p6T9oQ?ë_Tx^?äx6QkpH {k ѿm_tvGInm85U#Z{z*_ȧ'/u*B"1Om0"K6&\j~z"'B#8c6ׯ'8n7 LmaiF=EZXδZV23^ɽl*cѻ%kW>bO8|n5-o3rdU}~D-Eoi\4zmgw `lݢ#_){0tPb09wQ_Es`Yhx\օQ%h3-IN%C4.JW_%(=4zRY*jk]2 'Jf@&*n,C5*t] N 3+a>^NJryAhIV֯pqtΥfA >mmw/F5uJws%A ZeU]]e7A?WHbY7!{pZN;*qR ! Ħ+hOwOa ȕ 1NO58cgnq"J dzX F=4b8R>)f^(' cLZ6xu=R4H:)r){Kt%DOPatAwSRFzz˝%97cb!&;gJ%RZŇJpP([C&[[+l09o5_fecF=М$Y"o(Zy(>l¯pB|X<^OMli| F^~8]U RYU]܉p[MpMfJf}4g^-iY)W=3n ^R>׈84a?q]t$RװI-noOGhzqeqbbwPmW.krw\:f)=[_|<ړF1.jr6}FKktw@Q"ȃ>E-19P\Y ~wQÆ0rTrA&8FtqC7N%Vc.iKC 89jhH[U{.(=F0;9s@~՘Qpzs@Ɩ`F8|Nדd\X:OUpJt '&$Z@ n榮w}mԝĽ\ D3=*JYS)LQdAU)Amjiwxe@edL"kvOddį=DLơ%#)lM V1>M#@%ݢUK%Znp*z?J.ǖ2 R3#ڍX KיMg_uƒ@.v|Lg;PSWWAnJJ|.ZN9^)ANvgZl<<ܣz%%RΎ hUcͦn'xCFn@q"'1/Ne. <(ox `4[!pjmճg B\ γ* lSJ^9O_b2ПWĝ6Nh&tK f|C_N6[AQڨ4CJu3 {uߵ{Q\W=C&j'֦,o.֮ܪل |Vd{Ï)A2u~#rBQ _ǁ4n-'rI& Oh %tt?Az JJ46g h!VO1xh*6 83ei 0pZ"fyX_is"xK#T̙uС-BJʔVBLar8va2e :UBZH(ign;NV XCneޟX֪?I$YEFI ҏQصqU l7EP.;xO : $,C!52>xCt9z h#LD¸Y]kmKkh.{\cAf Z tamNa7p4m--ꙛ%J?Fax{|ʧ/ /"0#隥!Sh[~܅U!cSW╅6QNAr?ŭa=àEUߕx $#M_X$$ rƌ·voԌDf:IjBI7:mc st5ŸV]k^0=bOa,ZH4z400>L,S'hj g ], #W &i ϳXb?tR96:tNm b~)@ZÍB9J*jǧB8 $dmkT~1rUtx۪DžU} ]Da=]jC*ԊW0`'%;6.U)!T ; E& uک2QwrLo+n$}ETGAӦC9q`zL[ͅ%[{C1B]ǚⴛPf}x4^VmcPݘ Wkbv-l,҄߉J#;H8$ rˎ:Rň,XQ#u#;SG b>D<(A лgm~8QHꑎ^@p jN%9DYm;6; 5|O u(9ڡl#\GtC|c`XM 6T@ 7oD6LשъD >7NCnF{ǎD*lv\O (*jU8|Կ1 $kܟI[S5D+;*} k(0 T1;(' RPBak y΅z 嶌9YzAy/ $UHHl.A? ʸt9Y0Rig%88٨[5 XpnL@0@/RV$uKA+ %xTɡ԰މ9P} (F|Q~"I$%5&\pq1Uo;1;d2Լu4KC0P8Ko}9GV=Cb*AL~]`A2H؝S,:9dhtJ~ۋk2L\Kb/&Cda {" mgX/~RnhB-b8{!p̶6M@&ʤQ[~V͗y ވ( Łf朠i+/O2Kb&xɠwu㩪5vnjϳ$0Or.Kw/r"U YFOּJF]EAhoezkhIcHC^^RGgb|qKpHr`hBz%Jw;"@kOgv*-T Uz";*BAJߒ5D|냽P=G0.G"\[ 6Ij])^63 N^~e3 TUk'u N>w: ÕȲ gZ@b9ENI]̵C^&wV/ $q0NBg l+ӀO<4aS]Ǎo=fE7֩DBl ʥ7JhOIJIl>}WxU7o\?R +HVΛf t zn [6rM$NyNBS &R8"-xG 4nàdz/p_3L1|:~XO4Sh8JsP[TD_Zb=E`M!! (?Gk<=f<ڝOë}&t *4@{3N%!nѮSaiu,ۄ28?>d{ŵ뿥-HE!lEXQaAcХ(#M 幁c-~ {|vZcdĺEWLl1FjJ_5 E.s. ^5=Gi| >CS2׍J/@H)έHd>󡎁^mG- h #mc I,= +JDBPe }/ups iTS Wʼoa_[Ro;ea!sVrAٌirl&G|G]3~ #~faRe<^)}'֦ VdG53}xXsܨ$D(.+-QU2dwï= wȐ aOyn3q~̀R|{SH7q[. >m+|luK7 @'8;#kxM1t\esQٍ|8SN6.=+J^C''Sq鎅dwa*7 ;ɈDvW o(@F).p%Tj]Rq*5ԜdkH 6'?q2B/'vu$с\a?Ofp x7DSϾ|-BiIXʻh?lwoO.B 'aI۩} ZZZɻ$r?bKXw_<(7@R,YQgʲH& "0-Q3KO~#%4B`ͼ~tl`ɸ4$..5PޞcIZ}nևF1 i‰`4 3MU %ۑ٥`?!HkT8xc*p "ũ? Aؗ!Oj=P$dٻL\??@ҁ&:"?EJ#?WwI4W* MwZæ骒?6 k+VGh*d~(i}$ )oÜQAmUz ˹h2d,q 4AI}@0xq'Z@GUpdۮNV/d:cRNCzHn˂bp<S)m xlX&` "hF&7am~9æc{b t-.lcXKF݄*0nNb} NKf3iP3Olbp\r}[0(YdvhJIsϕHdZ,QBTgUT bW IƚUcOc+u4-r!8fpI4 jkB $oZρ3?ۥ oʽvRM{7YۅvL :jbf..*r9C+yb|^_i]3X;ؾp04,`|ZW > QXhZki֨pڶQX)$Zr6čHL'[s~a5*$]Md:((H,a(t|^c*J|Gs66N:jD `2W0RPU8 ʞ#Ã&|!e!W!@~Ғ9Nޯ<> 2d ƃ&&ÿ_0:E%S͎ZFH&Հp,'JlzDImJ ZYw%FޙRx{cX3Dr=kcjvR:LXړr!-I>;?s֮Ge-JX7pQYT(}skEeG-V5u`ǦR5vEJ2HF;-| H  &IsvJ/ U2Xޛ~Hr@|&n}hidA8Ǘ61 7qLv\"Ijl|q1QUeϯxD[I%;ȣRLOuū >>̺dK>U#7_N%-Zk$o8sԔrmc˿ *_M&^D]oΦ:ARFQy npdzth+CmWxǦ ;)HJu/{KbD^7mCfLvB Y26 Ro-a3˷7Hk=-6Nʻ<딳[Su58\g 26E|yuSJR&p m_0V]x޾@!`Ͳ[9Db%On!@%!w=ro,=w_t#?^fc~k:?7>fqL ,4'CiPwdsx<¿1T?A~iR-J8ΜeC -8ea{js^q} b٤\eZZeu<8 J9b~ПMoۖ὎<(4T cҝUmQM _=WwMnWn*{ Y͜o L ;g<sp݇4BC.]sBQȫjIL8؀PR%^37B_BJg}ۤPg}o"%8W5̶D z._H zR r;&&_5`^q\ADEe\[pgZܒv_gOU;N"z:@J2P)8K[&T0PWeO0Z 9>19 CX¢r=3w˪22ߢMtrq=ا+G`ERYeV @'7?dV ) m')D z0yQT|;B6(&k >eom˞ /z>`\.*%9GVTd74}s!\M`Vtz@t2I4Ȋ ae^V@_dn"-;vRRL0j~_ZqCAܚ|fР8QAي<-PYH;Ngjq#H[M|(3wǯwZ6媾0"Ge4o7;J42,T,: Mȿ %vOy[0"}Iwn˺Ra&{Z~!Q%DjK:M']aU4 guJ?!ctUDp4gvhZt-۲Uџ491AWT(9WqL_PBm:@s[l_Jp/3Yӥ*}P\0LWfӎ*49 ;H'km?A6Pu,(A-i4kh'47@hΏz&K\٥ xR[f9O2Ѥ녞O#1 ?-3/y2)WRcT]XgB0شh67w'=f<&&L fBiyhYtԦ$`Fa(™֛EǝvViJRZKO>Jg2~+C^Q* Psݺ'A:\:'ٞ`WD?LYӕn6T!zS@J~4/ᮻHO6/$#EGS{#NË[MK<ͻ :(.#pוH$Rw`랉I\ٷUHPbʥ'P_4~ }> gSYO5:cs#uE@yJ /6]hm]?]AZY$8px9=.Q&r0-i@(.̜@/]y ֵ?(ǐ([8 G1B "oAdQ& `#xSɒs`y Z$L@.φˍ=<8=œQH"Wt*5([`%*Oe+>oi{t}mH]Q@i3 NNG O2NwL)Ėg(lq>ϻ4ɛsu IBmoJSxS86E5`@W)xlig#'fbj2).D{^M0Ax ڭNt-;~ cBo-SExYNNj{mtK`l WX+<ܔtS ߅ŸmqMHXGLܵ@jG GVX[VɚGJT{yn}A\Ћ)d,+#*]bC$E3M|L?חx%("TcHqI {ǁ;.-|}XIe(?9MgQOiؾ_7GF^X盅`{SCͽ~h+p׀cW[6h}`1L>vބ^>c<9GjB,Q3늒_ho6$W "p]a"Rހ__􇌅_]YEt=SaN\}͑p~05Ҡ2V߿@e,9b ;dI~G$TI:*'#b֢M0E^4Pz7xbUH3r/~f ]׏P%l t1ba _N1f q#41 0ԟpp!L>u`ۏ$~;|=4ͨu= ݩ;`*LÇUqb{ws<P GqF쌬Zۜ+euk7_byYDX;_Pqnb7|(dcZr1}$@ k很v˲AtvJ0_*\ P5ݘO: fl-F;j9 2CŒs_]WaiQ$aĤKx_[#u^m*-5yfgȰAs /YbNeѝQ)~@3wY"M#,0Y RDM dLjK4ĊC~3$=T]7D)ӻ)@@PyxO*-5=Ob?ԥQ;Vm`|#?iWOm:e?/ڋY>o v}}_Btgѩ 4~n**WZc5@zjt"?dC5]jLuR:w:i'ohyu#TgٖɨrLaoMKd3 Fj͓Oo(UET6bOJ)[ [9/G|xl~D-Eoi\4zmgw `lݢ#_){0tPo%1M$@m#;=g @JYcq!$s"c$QFY٪OXK%MMw+(? N\CMXk;= mY@ uQ|\ XZC!z4%S}Tg\M3OIm\ܟ4E}WQ"j[oRw6?f]]e7A I-#'=_[q^ `:*'v+F܄f ̰߆{$(U̽Yo#D{!!cm"LL]z,YCrR2EsyɅr #/8,^N#GZ_C@ &<& ?Y5^ xvo{ўg0Jds ,Ѷ~m;:ӷL<6~71L$`5-muBÜpO5[MqH @ f,@  0DboGhzqeqbbwPmW.krw\:f)=[_|<ړF1.jr6}FKktw@Q"ȃ>E-19P\Y ~wQÆ0rTrA&8FtqC7N%Vc.iKC 89jhH[U{.(=F0;9s@~՘Qpzs@Ɩ`F8|Nדd\X:OUpJt '&$Z@ n榮w}mԝĽ\ D3=*JYS)LQdAU)Amjiwxe@edL"kvOddį=DLơ%#)lM V1>M#@%ݢUK%Znp*z?J.ǖ2 R3#ڍX KיMg_uƒ@.v|Lg;PSWWAnJJ|.ZN9^)ANvgZl<<ܣz%%RΎ hA<=06s:6^a9"[z-`=OI)8)~*YqBAZoX)\Q2Ss7I捤Y/,}_yYER$ E@eO \l}}[>Hk ہnVF+<꠵{~I)1~Fr\,.KD@{B<:H%N[%BTCI|/:5À.&l5cVG5vՃ%4FK8/8^;P#y0EN6GS"[A39i|YvAE:H YAn{5_쏺>B"gEs,% BcR_Sƹ+aF'wIE 8cV#yhns?s(ÝL/I$@AU1),ٯ0I5Cu(fX FS>$=k,U~ }O_џ¡|Nltߓ]fmK -IPљ$зoɚ{dW}u傼xm31BGfkEsp A:Խ8Cج-4FW$Z UtJpk#`?ĒsX|t@rXiəpSyC1!{{ML3AOv%VWt蒪JV~!:uTxg@戜`[ERc89˟_F0nf\MO)WrYR~̹}][YJ)bh $&Tax{|ʧ/ /"0#隥!Sh[~܅U!cSW╅6QNAr?ŭa=àEUߕx $#M_X$$ rƌ·vF%U*.P(GC$( e/k_[DN1u( s6 !z1Jb!N%'/K3l=^4ů|-1V4Ѭ&=g&d'?HCGxδn$}ETGAӦC9q`zL[ͅ%[{C1B]ǚ$XbwiS䁌<`ЍiKmL$G1MU̝ٵ?+`Y Jrǿ:~cD5_WTD egZ;. 57 -t(Q,HmKM $+*{rYKgr'.0JC>ɉ+迓3sVHJnlBP;t=JTE{acOÉ,6]&5yy)p(e nqQZ!ޓ,'q'ٽ)T&4N gU(5{xpsTwHeXz"/>i\ ߓ1Oa!Jۈo[0 'K<SJ`TԶAVu5C6ov%aM(0 r-5(D $zsw2ו5sZk#&40"2v3DMRE{C5qȜ'p#P\9E<@Gy- nʝ`Rc[^GH]rR}|\2:'Kz'wiD$pl0ނ;.'x)7lJm҄cYYQ^"m>F{ǎD*lv\O (*jU8|Կ1fd=T`1֤{FXP,a!&ֻd>grX rxn0Q6&N2|癲fcp_kP4H#!]D,Z_ʁI,mV5}4hTp.dӫ>.X !${>“P2k5Wl쮖pc0T~؃R8@ߒ$SXHa7ы_7uOU qqQt~ ,TC3r<"Cixۋ9w7fwb1=N%͔lHp$W1ziuyi~5bƊ-bF~~=@(g#>U YFOּJF]EAhoezkhIcHC^^RGgb|qKpHr`hBz%Jw;"@kOgv*-T Uz";*BAJߒ5D|냽P=G0.G"\[ 6Ij])^6K hP19Rr}C,S'kA\N"Nu N>w/y-c}"nOSI- VsA0))?(x Rvr]D.: LU}CMA_Hְ83J[hZM Q*roqLE 8ge̾U-HIвTE|}MVĊUrLL ab DbPZlmȗ"0GY۽?9$ i"bg'F)#ck2=k/E& fS?,ey')%pD&^Voȭu_S^9_CZ/P}fi^\@*;KĈя`Fiļ.6vXr_O9-.Űz\PUq>d{ŵ뿥-HE!lE%UV-ۤnQIWXʨ_]1ݛG5a N+螱̓$=/~@6=imgO.- j:I26kՋ{v6ؖp-P;I~s!Q3V#숨Em` ]nM"&&H26^/t.Bx2`iHhrOW.Ϩ IZzʅ,IϿxeW?.@jY="ů!^,80tBMj糃 U&5=3Efo{qԊRζOϭC.CbK3fgYó90CSmv4߃j% cO?joLkQLJHJEm+|luK7 @'8;#kxM1t\esQٍ|8SN6.=+J^C''Sq鎅dwa*7 ;ɈDvW o(@F).p%Tj]Rq*5ԜdkH 6'?q2B/'vu$с\a?Ofp x7DSϾ|-BiIXʻh?lwoO.B 'aI۩} ZZZɻ$r?bKXw_<(7@R,YQgʲH& "0-Q3KO~#%4B`ͼ~tl`ɸ4$..5PޞcIZ}nևF1 i‰`4 3MU %ۑ٥`?!HkT8xc*p "ũ? Aؗ!Oj=P$dٻL\??@ҁ&:"?EJ#?WwI4W* MwZæ骒?6 k+VGh*d~(i}$ )oÜQAmUz ˹h2d,q 4AI}@0xq'Z@GUpdۮNV/d:cRNCzHn˂bp<S)m xlX&` "hF&7am~9æc{b t-.lcXKF݄*0nNb} NKf3iP3Olbp\r}[0(YdvhJIsϕHdZ,QBTgUT bW IƚUcOc+u4-r!8fpI H,;MfVdX #I(KrU:J`]ڕ|)lc /@NelOvZ]JoOD $QU12+J쵱ƚ"FP3`(cw׻k#$6bw+AziNHk "ۭi-9AD+D=ԠpE :(p09415􉃔p4AǁuTy <Oll(tԆQ;F77b<.L_|5QƮ"mQ~0#M1ioYjUP_slaOȨԷ"!Ta~R| 1B5ǥB##APVotHu'JlzDImJ ZYw%Fޘzj 6D ^EYi9b,wnhZ!)7Ć(T G~z/$zvXH]^g9m`>#G1C9ra"i>OgUǦPgR5vEJ2HF;-| H  &IsvJ/ U2Xޛ~Hr@|&FCg@&@n?R3!4G۠].(Lk6 HG5w4v̓pF=!een)嵯>2ZuG'L\4#Q麆GSR,8%P@MVE"*p] eJL\""%l!й&[R*Wj Ɇ:ggw"22ߢMtrq=ا+G`ERYeV @'7?dV ) m')D z0yQT|;B6(&k >eom˞ /z>`\.*%9GVTd74}s!\M`Vtz@t2I4Ȋ ae^V@_dn"-;vRRL0j~_ZqCAܚ|fР8QAي<-PYH;Ngjq#H[M|(3wǯwZ6媾0"Ge4o7;J42,T,: Mȿ %vOy[0"}Iwn˺Ra&{Z~!Q%DjK:M']aU4 guJ?!ctUDp4gvhZt-۲Uџ491AWT(9WqL_PBm:@s[l_Jp/3Yӥ*}P\0LWfӎ*49 ;H'km?A6Pu,(A-i4kh'47@hΏz&K\٥ xR[f9O2O9Vi4zgHzp3YR~"OA|5׷ʀ$o:S, 2#)4 怏Hǵ[6 )BOˠ@V+7;Ѧ-@M`xcR)j^~T4T2)|Hgwqk٠(Ăe(9sG_-T/qP͋.zba]81$ w6T!zS@,$L;_*~?KJT "pk덋<-cNOK߈fQ8o;uXNw@ێ3A$JlڛҞzGseG[82e-6r+B+>þjәK̯*-{ F$E))mI1sa~yy }VZ~]N#ʆL GB%#3蒌IYELՀU!HA;PQukMv^bywp"(pS(!=EQ A< a߅L@.φˍ=<8=œQH"Wt*5([`%*Oe+>oi{t}mH]Q@i3 NNG O2NwL)Ėg(lq>ϻ4ɛsu IBmoJSxS86E5`@W)xlig#'fbj2).D{^M0Ax ڭNt-;~ cBo-SExYNNj{mtK`l WX+<ܔtS ߅ŸmqMHXGLܵ@jG GVX[VɚGJT{yn}A\Ћ)d,+#*]bC$E3M|L?חx%("TcHqI {ǁ;.-|}XIe(?9MgQOiؾ_7GF^X盅`{SCͽ~h+p׀cW[6h}`1L>vބ^>c<9GjB,Q3늒_ho6$W "p]a"Rހ__􇌅_]YEt=SaN\}YDw*fFf&Ge7^#73zxHl{hVT6gW:K8g5`믘@[xˑ+^E&uyП*YOןra|Q쯏31 CE֯A 習>4RK9'W0I#k-[:ْoԆl](Jݦm3?U4ݎ؆"A>2R)üC|˝ѣevk7_byYDX;_Pqnb7|(dcZr1}lҋqip*T8(|AօiC( vZPQh1ٶmW3k #wy|/D 0 'ۗ3EC`iP ,OC]⥆b3fs$jX:&D؁Ft>vn(&Js$&%C\0C:;'J?K֑.8tsZc/}R" wZv/L$c Lqx+X>|BT?0_*> tWs*`tQƒwQ ´*||YQ}>Ak}_¨. U27FjU+zcB"5&%uˍWr#1qLhc6M1*ѨG1*ʓ9Ys*.PM"oB…qўPvcb.B_b2.9:}prVpɝP-oZ"3Jy|h@L:^U((v\I_3GdX4/ϗC3+';[;φ;` o"Ds\ǯUeRI#nt.%u&,MNw- 1j.4Q&Hcw^H|bv@VIiUӭjO< ^6dSՏx^'+10c'(=P ngswe8# ĀV o|3@G -p<@ʾ+f!'>(w? KVG DqF_T 8' uOwf7j)ig{4ܺ)v@d3x\ƅW yn=mqh_Qou(pk ߙ) ՒCyh~w跭؟mw'e~ b72rQ4(i(71oՓԱ!!UeVoH)ez@a|:"g&pZ8 pp,Eey,:C?MiԻ#A:5ZAOfV ;>ZFu/k=-7[7jQOw婏;H VԐ"{z&'{1j/'%NZ^(C-$_3 NqOhHExVqS\w5Z&:2%ΡaPq)>:~f> l >&!vw[G$bٛ;bJ$) $sˌ!W_ו&Hkvǰ>fBo ݁M¶LA kμLZ0Ir!Hj掅9@$ f{1~f,x/㵦OpmG/zA ѨH'qT,bҐ!4= =n!` ;Ϊ.Et$ߚ ޘ8Ⱥ-tjU]Fb=J( x:%{ȉ) DB%~2T: O-5һR+a%Iq6^”x[jw!LG}6>EOD{+e[!a7fĮLB)[a]f+A8P1WBZ !ij63p."'ƾ3ET؏TlT!W(Kwpb ̮#5nw:7%1;1aI]Q-4zDա#XAZNPv\T[Y Q^x,='oMR C[6nmcc.TC/sy|;#&uwCW@;`&yBŵ[OfBA (=F}KE{I展)I,*{w@ [ahZQ]E܅WŤTWp׈? ۃV-BC3Z#E40H\*qrhK;6$@D@f{xXAXhJp?%o`ȡA2Іvv6 "v }=kG(r`_sC8wMYAbHIa*A 1u,Zj}{niPkUAD^4^P)"JX^dTjR=ڿv[NNʘ?%@ 3?]~nlM7T0 Hr'Uۊ!`K qD6 \%rzVJ KJyZ' ߔ " ly:|-<͕g~wt<(g's(J<5۴x}-WC& /QFD#~wNjԎ~Ɔ[K1n?R9ə/ڬq}U| g). R}.s$\RU "Wq,J6#QHϭ}T͐"[7% M)ڭzʖ*i(U hcR$Xm{JE[k}잪EbF kx3Q& s/Yደ vTt7zi_]@xdgJΒGSa=MZVYk=%K`W3t2ZX4Zf"84i׶p01<$(aoCΉX45?8QIkK=Be|l;5;6`k~-8rSh%1"Բ?lQkD[j$+h\JʃmVlܴ'a*@ :1Ǡ7 x?>,{"hvK5SQx3& D6Wq[K1lAQ$+|=q$|HQe p07S=ʧ`v|~&/&/̬ ³}_xR@8uO{֔2 ś~BW7>7+ H_`Ғ[8y/J p?;’k2{.,KR:ҭjQeV/뤈hzM)h/̫;e!bJ<-J`wW>D 0ԝwx߽|p>x6qiQbJoB~LJ_}{BD-;&Fq1v> \*@3bHR~N"kBPtQI Q'kop¡TѨs:Y$_(nMe ,B)I}o'#Ǵ+F [5Ж\(O{wûZ)WYw#%,Zxj!ث]')=lD3]. Ky&ށe^ *PU^52`] omפ҆.=+s.6'tQnd7UXNQEƵ"wIEAQhCuPE$kX'tQnd7UXNQg>T.~P$^ ހ@WK  +6!δK/P)Eݦ/u, Blg8[e!_[X`y-``y-єg< ɥ6==$2u"lsmۅNj;NX՟E ̺*o*^ r33Y*{IotnsF,)N<>|VCZj-!^ yPP~S8;O"=Rv,+Fo\yWrǜUVEX}aUVEXfwW}}V$Q_~_:EXQ*>*3;>%$_~_:EXQ*>*3;> ?QvfU9X-#:~7϶M7ΎXY5:) ؏,5aP֬7bU>dLUqH=T[AkdaӎtE@83 ,mFZ=j:2^zSrǜ* ;Ʒ_7;*_T܆˚:E3"$%q+9\yWӯ[u|ޕJ;\ 5:E3"$%q+9\yWӯ[u|ޕJ;\ 늻:E3"$%q+9\yWӯ[u|ޕJ;\ tZګ<Ε(9@L6=}Rxʪ[N+mDqrxל ?\`@ ⪡Jle>ߺ*α+~딡^u'[\Le8d|O6'G'We7!+Bt7VCLqcRkF7oUo?Jl'${k?T{oɯQ/%f 90RQ_;TW1,"K88wL5Q:GCw3}]"ڸr؆ f_ؾ>n*]8-}R2ٞLTb*PHTMHd0lU祘<0 C_YY-KDqֶ`i蝁߰0?3IFF9\bb+Vý bkѡޅEj˰tgxV?C7UJS}i,|kĖ"X׆9ͷ;c%xcؒZK9PWݏb@jٴ4-=7sţ96?Khj? p'OQ`qS|J6^o=uUaʅyobuЭ/\ Httk1.!p1v&p ~byղ`Raݶ;o]S8gG|8?RrQ)e]\ p,3?8?]|6 <0Y*|7ĩD`%yod)Jz T\ p,3?8?]|6 <0Y*|72Kf|8?RrQ)e]\ p,3?8?]|6 <0Y*|7:[s(hLtZ+z]#<U9pCxOY- XvA~n&?Poǵ2]C)LgЃV"0$B76%tB|.le7`&7DǖEADpZ]+$JM@~Ջ!ubj,&ubj'Fc'>~]̴JcJ= G@W\a|Z_<@l!WVVa^-ۭ~cr*hJ<8;\)̾دQ ȎLem' ;L 6⁇*1^ ]a(9ʽTRׇ"^ SӍ>欑r~}sE5;PC8_AӁ-Q{rrIEQR(^ZǬ-U߆빯_-̎b  5kzTkwU8LSSxcɉ]ogYhU>G> I=Θ;!Ѽ&%MQ4TfpиhU ?nMr #(I#'뫱sQxC Fg<`8`XDk 4 :!ߛXi'aqυt𤢖JE|QϳDh.ڷ60ʁ45M7N^3@6d w s4ZIC|qoyh6KrUEH^kW#{,o׭yІG+xn ^7T3) W7 !5_}oybX9\7#pp7hl8z}ߝB.a&ѐJuOJ!}_"gՀ: `rCUt~b>Vh@W>4x? IRfE(T 6F-k!_ųUm}qlTB& H(*߈[?@*@h= vqFԞҨpZ#~XG$؝!3^,/ !m di;^ۭ>NKTȆvf0ywvq ;lLZh)iРh5BxH:'?؏D &S[ĚAP}dkxRBs1,Moimx݆1U FRadk6[1 ~"c 5}ea! F$j5?㿀BA $%z0G|߇a!a G߇a!a P01N#T&B,da̒^%al9.W]ŘatY"f2ڡ. )rrkL)|O?W^@bj$HKnǣy7't_.˨d$6i F`(@SWWxS22ƱW%aX)) dܓNDUUVaB"BOB3LLLLLiGWX^M0LSTNA P&&&&4̫10LSTNA P&&&&4̫8Z*|v0h$D9a}UgMu/Љ2˅c NjI6fTs*/^nK&[@NF(,O-i"r|6:N305l}S{Ac)x4oRS g6WNx̷9 9-lP/"5P$`Q"nS{ {+O),%ȡ"^DjHD:ܦ]W7"RS/"y#r`ev#\܊w^"VQ.C_x%dSmIVᅱ7~vJB]ȇ-FCۜYŠjFJ7xk6Dq@vPZeD@pT-p{^`'^AvS u2Ř{"bWPmIr#GسdWLYM)4.R2H,ţnGlJM ҂WJi!Q4C{Vb W5 :Yo <2i(_M#bcKW 2VԂ|L1|.o_5?0&|<zcFa^qbD=R})H:fbiX'Pۚq儤q.꭪~EV e^vL0lWu][T>@V&a/<gs,%#XAwUmS,-Xa(c~O!Ng$P{&?ku[ZΣOih(gr Z[8[XJyQ,~ ZU=MQX>X(n\Tͨӳ2m[iG${]h&s0' >< ?arFuX2 "s9PFZQMhϭ#Ka J)y ~RBҊkF}iB_K%Aȧ\0S3̒ZےDG {ʷ!>!K/FyV^C/p$y>Ω"Sa0]niѯM5ccS3!_|,vQZ3u&7">[SPЛ&R@}ԷD7K}Rҝ߿B !7/J +E .}8}#k U-n  j)l*#ҤRT)Gx*9 $qYM,C떵iQoHYa2<ʀ0k@;+QrNh.+ PKBa^ uw 8+J}#љZW[XD'BҺ@ĮD3IM,eB/7Tm`'y7ZF0+BGcLHF(j"kͫF'0 E `4P-@5G5D >2& Qj[D}SY@, {!xj-Khk?؈}ZeULW m Z JH̩ zH mG+ Jņsxhm5 N>r>)JN )*NRU*SArה`^Ƣ|5Gi,MBJ_s)U u17p~^:+x|8C[-C=$`B;?BxJ!C784csэA[{ -pb2xy4?ͣ ˜3<7,|IuiI8Gu"Z 5赹22Y=\/Swj'l+.vUMJmFM"yzz(G?Ahݬ 4WX 6]ۭW$ A040RzڟT9l6*K9b5 퉕yӀ11110[ʼʻ22*ڽ>`N|9 F<l`G]^~U|*IhVWb=΁ Zxx;Ó ̫̬9n{**de^e^b}jpzܗSQNt{)hq?6222̫ݑyyOͦk&亘ҏsG]K@wxe^e^easWW#**%쟛?3)Lơ3ǐQ\vM㩌SDH,zj9c5ƗO*T34SA$(`H>݁V}ɯe!C?d>5$Ndr?xٚHR )[=vwi%uO_O]ր{}|l~XKSwRl[TtQJ=([Jj6+>mݐ-Dzy{J&uSOۤN@j F_Jo3VaZƾu$ėظQ N7!πh$SWHK_W?dn xTstflæeQ@ #5TQ@S "1љS[Q?bQ6%^d*k,5.D j iS#cV=-dMHhAfFݶrR m $ CRo {@RJ6pchIiPN[N0SYjRhz H(&SYjRhz f|H(&SYjRhz =O[],eCWgUoOpЯžqX__7%ĺ^848nVS0#Zd΢.걨.걸Ǝ.걮2NOHKL *XaVx 1]6DSh|p0B' $#0 lP0p@0Lp{ 2̩]'L +Aߖ8)+(6zR! $%]s`@mgQoA j.s!ve>U2pFGQ>*/* `Zr {a 2!iF(z~#p $T^T-(HބnU+`eLWs.)oi-0JH=ɤWO:- G4ч$(ˬ|#P1MJnރ14 $Ӌv3۱ ʝ[g4Ti ջf~SOUFi_n9{Bbѡ8qNF6Nu\9)?UT?8g.r֪@=ұPy<*o8uo/գ,!R^c*Nxri,uIPW;B%G$&L,*LieW~sc٦q4* {#+>iIڼʻ,Y$ Za&5+w鏲gL}y@z[T(etMDQӵyyGV*Wڀ9'D^F?mc쫴^e^e}:} `=7TmF>ʻNUWGWB.aZѐ'V ?R" HVޱӥh|9ޡ=jm%? Xs 7LQsHvёDU&:cHŐOç ejQ^e^czFWWAMA +̫o/!P7&/ Ol!iYr¿d ?Ʈ6P 8XY;'Jۃ8X%$FVvg=ڵa/ji(3'TK{Ħi=Ɗ0RZs4F*L9bH '6-dmw"=ogsLV殻;JkYbg:Bc^SB_ A,|NB nB[gcFt|]?V,H+&]Yw[z{T|4,홃T3ª ϒ< ZabF/Õ;^Wz .c#[NC3gɣoE2 bC`1 ʾ/lɛJ9ex$5:u{U# [.id;fc] '} OK Cn4'ftP8E1ړ)e o,7[ߏs5@Co:[^_t9J𽹝j^^ . HTR}ydP'pQ)a&UN9xupj?&Yi;FdAn?H;?Jx0q^7v-9 5y{@q M5 Қ_[6T>^(5CV=H%iH bTPepm/@(a*>G(T{G`:կyDP=ΤjUʖJ0W6IJf1S5<9㞆fo.J5v&ebf.3~}w+%j_tyS2(&0-Qtum^Rm ?J s9+ % R|SqCg <A 1fQ@bsF:l6``?#M0*+9bEb>jX"-h(|wYG˘| V%pKZT\-d)&Н@jXYlTTS?F$L〣_*24k\pǙM~̈́ ;AEu#mY|gZ<*􏥛c@ne|2=mKFqd>;&eruZt1R?"҇YktVRmve'h*l$a0_k9UǯrQ^;ep(#&YłHL>I1({Z2zB:Ż3a\ {Y[hc,p. ƵX V[}!~ġ #'hI爿dB'K oLMhտL;Qe^݈(DL6 D pֱ_ow0kl%RJ~E3L4xb/ ( QE͌ab=k~T}gQi{\AƄ;4.__&R1Ϩ=hS)O}_ )W@?i/z*`46D_u7@o3Q#?_g=G CB7B/3}AﴺKG!C_iA|4h a4w_R_ ?•^kB=p 𨿅[}_yNW BG  ϨCƟ8W>WϨG DimJþQ/ZA;(UIO4_ ?"_oM_hzBh' )F~A]/(UH0\JʃmVlܴ'a*@ :1Ǡ7 x?>,{"hvK5SQx3& D6Wq[K1lAQ$+|=q$|HQe p07S=ʧ`v|~&/&/̬ ³}_xR@8uO{֔2 ś~BW7>7+ H_`Ғ[8y/J p?;’k2{.,KR:ҭjQeV/뤈hzM)h/̫;e!bJ<-J`wW>D 0ԝwx߽|p>x6qiQbJoB~LJ_}{BD-;&Fq1v> \*@3bHR~N"kBPtQI Q'kop¡TѨs:Y$_(nMz 6@c5 v"rBAʩ_qSw벿i~T cdY@Yt:%;YҢXx\}BKG#IVt4xDZrE ln@ BY'.xTfWWa  (pɹcJ0 39rR:AQhCuPE$ ujGDj6|aEi Ak|c;Kd7UXNQ`AϰK%qژ=K2LQdw|1iFtbͿxF4gVф 89pRT~.g< ɥ6==$2u"lsRYv'E8_ A._ܛ/;E i~,;EIotnsF,)N<>|VCZj-!^ yPP~S8;O"=Rv,+Fo\yWrǜUVEX}aUVEXfwW}}V$Q_~_:EXQ*>*3;>%$_~_:EXQ*>*3;> ?QvfU9X-#:~7϶M7ΎXY5:) ؏,5aP֬7bU>dLUqH=T[AkdaӎtE@83 ,mFZ=j:2^zSrǜ* ;Ʒ_7;*_T܆˚:E3"$%q+9\yWӯ[u|ޕJ;\ 5:E3"$%q+9\yWӯ[u|ޕJ;\ 늻:E3"$%q+9\yWӯ[u|ޕJ;\ tZګ<Ε(9@L6=}Rxʪ[N+mDqrxל ?\`@ ⪡Jle>ߺ*α+~딡^u'[\Le8d|O6'G'We7!+Bt7VCLqcRkF7oUo?Jl'${k?T$E‡ 6ur]SmsJxҠ4ң S1p'{;RwL5Q:,tZ TcRz'W-mMjOԮ$; lÕ٥7mQ印$jbw]u kMt'\HX>a9J~/Pv)kmk!Cl?U祘<0 C_YY-KDqֶ`i蝁߰0?3IFF9\bb+Vý bkѡޅEj˰tgxV?C7UJS}i,|kĖ"X׆9ͷ;c%xcؒZK9PWݏb@jٴ4-=7sţ96?Khj? p'OQ`qS|J6^o=uUaʅyobuЭ/\ Httk1.!p1v&p ~byղ`Raݶ;o]S8gG|8?RrQ)e]\ p,3?8?]|6 <0Y*|7ĩD`%yod)Jz T\ p,3?8?]|6 <0Y*|72Kf|8?RrQ)e]\ p,3?8?]|6 <0Y*|7:[s(hLtZ+z]#<U9pCxOY- XvA~n&?Po'ny?IA )(t t?*l`S ͺ#!Pj[%W8j(#RK&ҷ~6,=J6 6y$b}y7g96CQ?Fc'>~]̴JcJ= G@W\a|Zj4eX'0o;gBըM$_7Hk`f]eĄQqY欑r~}sE5;PC8_AӁ-Q{rrIEQ8߾A\ȏ6Ҹ׷gץn>i'оS=GY|uÔ8׵쑼{~Ow 4 ke~ë$.UMc$x`~1 ~jk"HP._7pNbkUԇIRM4@WF,p6TbkyzWݟm7:[~w $&͙*,i*EfpVQO &Mf܁bL‚Gw )b68aPLq@>a3ס4woi<m()v, bZ.8_"Lw7c6Z6Yų<"MRa!eC5uEpX~ 5XSHlˍ34`w+;;ٻ;ъyZUxWG4}n]HCh!-'Ui0P j\apo $"a!!)5{ $"a!!b1H $$/da̒^%al9.W]ŘatY"f2ڡ. )rrkL)|O?W^@bj$HKnǣy7't_.˨d$6i F`(@SWWxS22ƱW%aX)) dܓNDUUVaB"BOB3LLLLLiGWX^M0LSTNA P&&&&4̫10LSTNA P&&&&4̫m[褍;oYDB!,Pn,JBx;.@Z}aΎv+iqdRTTa!$PX?"KlGяcچL6ϥNcD= [ql ^7 [LADq%"$Ҳhg_8@+SK;E~QPsz  &7GBn 5ڢ0o&7Gc.M[:_,h%jd\ u12% C4  Ӣb\.iq0`P׶>A1(U-x] bndƺYTNIٴrȩ6Ȑ!-$uT]? I9rf{1hWS_:@f cgǬse>~vJB]ȇ-FCۜYŠjFJ7xk6Dq@vPZeD@pT-p{^`'^AvS u2Ř{"bWPmIr#GسdWLYM)4.R2H,ţnGlJM ءZ_A ~-|e΋=v) :k@B:k,>2-nIR\l͎@}$3(ovy@Kb+\L E@L-i3֛s4Ў+ ۍ-5.hH=`U#SWJ? [7\ן։LIr)1.꭪~EV e^vL0lJ; H][T>@V&a/<C,3fύ~EV e^vL0l`AϠ[jMbDA kpbR}:魈B#HF84MP'H),tޮ\nmnٚQEa萗.1wa hM+0^j6묋=XU$9"S{=N@BQ}0hޣikwQV.[5s -(g֑%庱@-(g֑%{] wU<0ZǐK%Aȧ\0S3̒ZےDG {ʷ!>!K/FyV^C/p$y>Ω"Sa0]niѯM5ccS3!_|,vQZ3u&7">[SPЛ&R@}ԷD7K}Rҝ߿B !7/J +E .}8}#k U-n  j)l*#ҤRT)Gx*9 $qYM,C떵iQoHYa2<ʀ0k@;+QrNh.+ PKBa^ uw 8+J}#љZW[XD'BҺ@ĮD3IM,eB/7Tm`'y7ZF0+BGcLHF(j"kͫF'0 E `4P-@5G5D >2& Qj[D}SY@, {!xj-Khk?؈}ZeULW m Z JH̩ zH mG+ Jņsxhm5 N>r>)JN )*NRU*SArה`^Ƣ|5GֺM\%o8ۢ㐎Cb+dzN +ysKw`qrf"_u"ROA1ԓary]fI/IPqfh~{FY(ړ*.>LPHC3R+<v4,9NYO0[ p @cq$쳾EZ<, Jb BsSSX;ND&SYgpY GW\iH k9)4(Q>?BxJ!C784csэA[{ -pb2xy4?ͣ ˜3<7,|IuiI8Gu"Z 5赹22Y=\/Swj'l+.vUMJmFM"yzz(G?Ahݬ 4WX 6]ۭW$ A040RzڟT9l6*K9b5 퉕yӀ11110[ʼʻ22*ڽ>`N|9 F<l`G]^~U|*IhVWb=΁ Zxx;Ó ̫̬9n{**de^e^b}jpzܗSQNt{)hq?6222̫ݑyyOͦk&亘ҏsG]K@wxe^e^easWW#**%쟛?3)Lơ3ǐQ\vM㩌SDH,zj9c5ƗO*T34SA$(`H>݁V}ɯe!C?d>5$Ndr?xٚHR )[=vwi%uO_O]ր{}|l~XKSwRl[TtQJ=([Jj6+>mݐ-Dzy{J&uSl֡ZG]X0< AI. 9K: @H2@`ALf<VVI }.$ 5V%(뫄qͫT G؇PTCX}eNSYjRhz =O[],eCWgUoOpЯžqX__7%ĺ^848nVS0#Zd΢.걨.걸Ǝ.걮2NOHKL *XaVx 1]6DSh|p0B' $#0 lP0p@0Lp{ 2̩]'M;ֈUu[v/uU06Y^E[}80{xES5լ%X $#4^}dv_!ժyZ † # la ]ڍ # la 6#x TDGHބnU+`g Ws.$XqI( A6U玟GPXw|C!Ec`P6 ?*jneM 4eN3LS.m$ئa"BWղ?lSuWi_n9{Bbѡ8qNF6Nu\9)?UT?8g.r֪@=ұPy<*o8up :-3pv[uih)% pE-~Jz wFSb5$mY5k `B6i`ϛн|ht.Ţ+2bbaRv2nUPZ#u@F?mc쫴^e^s #ǡʿ>m:>eoKNF_HVޱ\J,ۢ?,%i:C m0H&{xX~㌜Dm\'\+OK z,anR#h{1clnbW1M Bo/ƁetPdKlBQ]WPFݻy[OlP\& KI+D*@wfyT ꔊ/x它Fպ"RRay"?{gIQP>+|僴ߵvOO/v_ji(3'TK{Ħi=Ɗ0RZs4F*L9bH '6-dmw"=ogsLV殾'U%9. Km< /%,R?A.-9>H3} ؁{!9'!fzjŴiә` c!K=|4ziiWF>RiG)gabF/Õ;^Wz .c#[NC3gɣoE2 bC`1 ʾ/lɛJ9ex$5:u{U# [.id;fc] '} OK Cn4'ftP8E1ړ)e o,7[ߏs5@Co:[^_t9J𽹝j^^ . HTR}ydP'pQ)a&UN9xupj?&Yr&IaVa4? aei2䐬fpP[d&K16r Jړ#B٦aХ[oҲf{S'݈*Ji!Pepm/@(a(3_5T{G`:կyDP=ΤjUʖJ0W6IJf1S5<9㞆fo.J5v&ebf.3~}w+%j_tyS2(&0-Qtum^Rm ?J s9+ %jX"-h(|wYG˘| V%pKZT\-d)&Н@jXYlTTS?F$L〣_*24k\pǙM~̈́ ;AEu#mY|gZ<*􏥛c@ne|2=mKFqd>;&eruZt1R?"҇ZLRFK`*K3r.; +Ъv9UǯrQ^;ep(#&Y=<->I1({Z2zB:Ż3a\]'ry 1ƵX V[zydlf_*?爿dB'K oLMhտL;Qe^݈(DL6K} l{7ɀfR\];LKhg]hsF.5m(`@3͋@9_+2Rk~T}głgɱBt2W>Jj~ ͉5oQٝ`Z?h+_iZB(G@?i/x`?wpIW<u7@o3Q?#?_W -O a4wOP__ ?•^gB=p ?c}_yN„&p' ?/CƾW#DSm+џ3-;(WIO4_ ?_o~O}SL>P(UC7 T鹩pmK!CUUvȠOW Td+鹩oOzǒ?HWBA+C5D];ɡɆ%'=ǚM~}}a-Y i SNPє}) ZLdxO8=_]E@6ndaw{#x*Ȓ؛ŏ?<(evBE]*66BbҗřIKpQMs$3Z)#7 Eb: x8 Kl/U=" dSv[¨'3ғmjZh`5D'0qd^JϸMf+m.PN=dG|97wҾgko/a BI {.N 1}*0prPmp~ ![_7~zߺ~wЋ; ^յ,o|7~rYc_!ߞTBЁd+~o[_oo I ;^'0h9 Ӫ5ݶAFW6O\ab`Y.J!ivk!0U"#Cj‚gzmH;y @fzr=$fxE! idefv-Is}x,C<Yo$C߹V>WuĿg14Kd=Eow_U=nlmxk0Pp73M:_ 1!:L2G~+im\[W$G8KSAGhN=rU'p Dǯn܆ti؀5#=7`Xן;s M(Z/%MFz C顐 8K{BO0.P^x;גޯ 18<=eze PeQfħʕy }s~>J}9 v r KXgNBLJ\RᓐGuP xd+;j1nocyBA.ή\D3 <+ }`4BqE >1Rd,jlbt"d,jlU{s2V5 o51aMy98#D Ky>\JʃmVlܴ'a*@ :1Ǡ7 x?>,{"hvK5SQx3& D6Wq[K1lAQ$+|=q$|HQe p07S=ʧ`v|~&/&/̬ ³}_xR@8uO{֔2 ś~BW7>7+ H_`Ғ[8y/J p?;’k2{.,KR:ҭjQeV/뤈hzM)h/̫;e!bJ<-J`wW>D 0ԝwx߽|p>x6qiQbJoB~LJ_}{BD-;&Fq1v> \*@3bHR~N"kBPtQI Q'kop¡TѨs:Y$_(nMz 6@c5 v"rBAʩ_qSw벿i~T c鏏kzEtI*kKG2۠Ѹfp:-t *PU^5˪dVx yBR}yQP> wI*ULy[oAQhCuPE$,".H o\ |aEi AgCH+mH3 -Hn$?`AϰK%qژ́HtjOdXs|:a"sBQ&rRsF,q'vb.Q Y[ôRPW' ?"f}"%_SJp B2kÖ sGĝA|Z=ΠaP!5*$7oav7IotnsF,)N<>|VCZj-!^ yPP~S8;O"=Rv,+Fo\yWrǜUVEX}aUVEXfwW}}V$Q_~_:EXQ*>*3;>%$_~_:EXQ*>*3;> ?QvfU9X-#:~7϶M7ΎXY5:) ؏,5aP֬7bU>dLUqH=T[AkdaӎtE@83 ,mFZ=j:2^zSrǜ* ;Ʒ_7;*_T܆˚:E3"$%q+9\yWӯ[u|ޕJ;\ 5:E3"$%q+9\yWӯ[u|ޕJ;\ 늻:E3"$%q+9\yWӯ[u|ޕJ;\ tZګ<Ε(9@L6=}Rxʪ[N+mDqrxל ?\`@ ⪡Jle>ߺ*α+~딡^u'[\Le8d|O6'G'We7!+Bt7VCLqcRkF7oUo?Jl'${k?T$FTbeYrQ\mV2tq~?RrtwL5Q:,tZ TZsq$5Ձp fdmi3E@@_ZP"yv]b]ۍgί[\Il{ lHBI=p$q)]BPi5'/U祘<0 C_YY-KDqֶ`i蝁߰0?3IFF9\bb+Vý bkѡޅEj˰tgxV?C7UJS}i,|kĖ"X׆9ͷ;c%xcؒZK9PWݏb@jٴ4-=7sţ96?Khj? p'OQ`qS|J6^o=uUaʅyobuЭ/\ Httk1.!p1v&p ~byղ`Raݶ;o]S8gG|8?RrQ)e]\ p,3?8?]|6 <0Y*|7ĩD`%yod)Jz T\ p,3?8?]|6 <0Y*|72Kf|8?RrQ)e]\ p,3?8?]|6 <0Y*|7:[s(hLtZ+z]#<U9pCxOY- XvA~n&?Po'ny?IA )R\QYBǭry5-=MF^FmS> xWǷ״TEӋ1W?8n v4QsVa|6TΘ-1O@poa!E&8UD0|=`X?b&BX"mq1_`,x[WD;FCf/ dv+$ A_Y.Wm' ;L 6⁇*1^ ]a(9ʽTRׇ"^ SӍ>欑r~}sE5;PC8_AӁ-Q{rrIEQ8߾A\ȏ7#`G~|?O{ U P_׶bdm~wKW Bw7!\ Pd,piz?Sxcɉ~޼V6W NGn x0|%"VcKyTEFfnKid/PN$Х' ,"_=A$ rHkD HC$Gg뫱sQxC Fg<`8`XDk 4 :!ߛXi'aqҖDj mWi)x {VfB>8׵쑼{~Ow E+GHP6syDvyL8nq1jc"}͐;qo[ln~&$TV~G9/P,_7w"fؕcR)٥;ޘ ;<7_ގ?yLFD,i*E`!S[ivfn@K&ZaA Wd_i<AYyZ/%MF_/"Lw7)ٱȢKanSH_KFYw3e^ 9=Dj '^$F?<]W7"R_ JP{e/8t M02nE;_f@DN|5@+Sc.M[:_,{57z(\GG.]tɑم l8b@^*PDŽN\{̣Jbr֍ xr hZ--ʻa2͓/#7Ak"0Q{1hWS_:@f cgǬse>~vJB]ȇ-FCۜYŠjFJ7xk6Dq@vPZeD@pT-p{^`'^AvS u2Ř{"bWPmIr#GسdWLYM)4.R2H,ţnGlJM ءZ_A ~-|e΋=v) :k@B:k,>2-nJ-UslƑƥ]|6t-JW͏g]jE$xdJ4Ў+ ۍ-6HdR'S;)MdU "ٺ3o$ܷ͟T>@V&a/<nxa({ jgՈjם %G>`(!i.ȴύ~EV e^vL0l`AϠ[jM "s #^F(6T?.>-9 $DҊwI+4j] &1 }O @m>e_DlO mRqEpf^j6묋=XUm^ʐF٭Ru௩` $%A#@9bZ0O~ (>vG*d&^/aD`0%$֌!K/FyV^C/p$y>Ω"Sa0]niѯM5ccS3!_|,vQZ3u&7">[SPЛ&R@}ԷD7K}Rҝ߿B !7/J +E .}8}#k U-n  j)l*#ҤRT)Gx*9 $qYM,C떵iQoHYa2<ʀ0k@;+QrNh.+ PKBa^ uw 8+J}#љZW[XD'BҺ@ĮD3IM,eB/7Tm`'y7ZF0+BGcLHF(j"kͫF'0 E `4P-@5G5D >2& Qj[D}SY@, {!xj-Khk?؈}ZeULW m Z JH̩ zH mG+ Jņsxhm5 N>r>)JN )*NRU*SArה`^Ƣ|5GֺN.6˘_qt]nYٜ}w`qrf"_u"RP<mBN@ r9s]Ahen?BxJ!C784csэA[{ -pb2xy4?ͣ ˜3<7,|IuiI8Gu"Z 5赹22Y=\/Swj'l+.vUMJmFM"yzz(G?Ahݬ 4WX 6]ۭW$ A040RzڟT9l6*K9b5 퉕yӀ11110[ʼʻ22*ڽ>`N|9 F<l`G]^~U|*IhVWb=΁ Zxx;Ó ̫̬9n{**de^e^b}jpzܗSQNt{)hq?6222̫ݑyyOͦk&亘ҏsG]K@wxe^e^easWW#**%쟛?3)Lơ3ǐQ\vM㩌SDH,zj9c5ƗO*T34SA$(`H>݁V}ɯe!C?d>5$Ndr?xٚHR )[=vwi%uO_O]ր{}|l~XKSwRl[TtQJ=([Jj6+>mݐ-Dzy{J&uS>ނ=Q aA:Mfժ JC'=O[],eCWgUoOpЯžqX__7%ĺ^848nVS0#Zd΢.걨.걸Ǝ.걮2NOHKL *XaVx 1]6DSh|p0B' $#0 lP0p@0Lp{ 2̩]'M;ֈUu[0/[0np0{xE ]00$щ& ċt&] GA $!?GAj $%m%ܸ>|/HބnU+`g Ws.)ZqVLTL1`#^T< o5K=/G{i`;Pa ۶g;w*unٟVZ| )бi_n9{Bbѡ8qNF6Nu\9)?UT?8g.r֪@=ұPy<*o8up :-3pv[uih)% pE-~Jz wFSc,D쇽؈F0Y`m8­*tPR#LLL*NU$>ʻݽRqR7_es}1U0?tFYo@enw /R <́0l;WW'Ȩ:`/v22ӵyyWiLAjrA~l `Gڼʼ䩓`G)?}ԓӿ?`HVޱ\J,ۢ?,%i:]a?}A3N]t'x*_U%ܯ-ObumT_'%D١Gb[ n6QɚנMˈ EBNL pzg:a!~&`pݻy[ӏh-y(7o& KIX!x9ꔊ/x它FB,_C'FԘd;CHߐЯ-8|僴ߵ Jl+#K ji(3'TK{Ħi=Ɗ0RZs4F*L9bH '6-dmw"=ogsLV殾'U%9. Km< 6jX"-h(|wYG˘| V%pKZT\-d)&Н@jXYlTTS?F$L〣_*24k\pǙM~̈́ ;AEu#mY|gZ<*􏥛c@ne|2=mKFqd>;&eruZt1R?"҇ZLRF%5Dk&PEQ6% 9UǯrQ^;e!c']m!ۡ>Do>I1({Z2zB:Ż3a\]'ţ*suOPƵX V[z$9zLYfTDlwd'o͋@9+.zk~T}głgɱBtA7$n y6,y[QW`Z(6~=UV5?kW`@__},+_׉7y (~Ktߵ?'@'oΟ=3i=O8_?>+? :ש7x=9V?B/J5M5_sc5]T?k0~?ڭ@_.?h+yO~MDSp,X? dɄ2N[pF<k #ݗ֡VgzuIn ,`['mj2+ZG ۆcQL603$F]PFgvRᇐOT 6$ł*֐JGq6(bM>48! ~HF_ gTīw <' RAaEup48bW.Wh4Yշ<;Ւs@ Αÿo:7V ^$ 'R P  I-i;T($-<}[pA<;PFlA !(NffN Ê7$2?^V'򞢘>!APQ$/O}}L!m^mLp4Qޯ0xM]5ǜp.m{|ґ8;`c9_CȚa`&2G2xBJoǢ/fVfL7B $^+oO(#_l'${k?Tǣhgc&E 7gGɅ:oO(#_Ud5mo HUH2<wFSSlZW%я(6ŪtJHȃ 3ʝl~PJ{&3e"_TJP{ԩWf[AA8H|zA{h(J(0@Mx8/.K GoX {0H*\B `CxsQ3 `wc{qRvJ=Wb.5ֶQ1{-.Vt8RGEւI2vk9+UO>(v*{y{yUnzaH$/F澮꣪Y,/۶ > suT.N;t7<4"Ah.!O$ HhLm$|zS,h_b/ DKl:E@ ZN^:#Tct@L(D+g@U E/xLe?PG1! ?\4{AK0fT3H~^|-Rq2ۑ׺G؟djg{n(Ye|@>1:nk| F}9@1s+NpC |(T9OpExәܣ 2W.vd!?]t- ȥrʈ (u6$'zV_- x&z]a瑡clRX#6lw_& Agl4gYh{fx?mk)zλWC՞o ~}lcS/Y3.S,F%;ZnQ ŏ = 5 ]a!6Tc6HPE,OKoGgs ^|$ĨʷRFo ,6u08w=`|@bdߧ;Жs` GCY1cxgK[ԉ4>ݗ8m4pVN+Z2R;3,yeznAmYO'jpK nj[ ^'bj>)=-#Cs78q|ڦ8dӺi`{- !Ђpti8/ -е D+; o 8@ N^̔ U$ST.r,$t̩ f]ݻzk{?ݻzk{?xq鲨\U?hA j~kCRgI+}0םW͵ $7r&V5xr%"?#}{Q-uIX{S;&cu_N'AR/Pp:ғ-^>DZL@H$qPSBQq|h=0[KWjZ0ׯC$}3ttC:؄9dZvw[p&u$mjnU*W-`ͼ8lƧG:; #[۪{')WЙdyw Z7kavz !oi#.mvS.?{E`0ǧ#j9OOqFl"Cmkmc*)X/jwYMp%Xa(H`gāE½]PU|b9[D -$ oRfj%ഌ2%il91j2 `cJL2y%'G')Ԕ~/̀ R(҇ۦvV?ЍL$ruHz* %I lI[hTc"gTT0& .hM,wZ^/+CT0jYVQtTA qFlipper_disk_background jEiCCPsRGB IEC61966-2.1(u+Q?hbLq!Xjٍ2iԒfp}'ɭr(qʵRDJkzm%{Ny>{tsJ+ l^ }NZp(:>;}=`1݀Y)4)UwەT$&|.ܯM=Z7%1Y '*JVqӓI*/qijsŻ LJi&^= 0̠.ϐ\Efu4VH"OR=.1!z\Fu'FK>1^@a0 pgVsG0)vE9&\\W\nAǓ"E&nM$ v K9}І| @w.{\g), pHYs%%IR$yIDATxjX@9CyXuk=5!rFaSk|@֘i:&8οG"8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N ⾎3Xu4ML Dq@@' DqسUcUc N "8 N  *1ƪk2A' Dq@@'Ysv2A' Dq@@'Ys֮_{p,Dq@@' Dq@5p1ֈ֮_{=Dq@@' Dq@5p#Vs^| "8 N "8 Κ{xFvי "8 N ⬹pkWٯ "8 N "8 Κ{Nm*@ "8 N "8 Κ{N*{؞ "8 N "8 Κ{g=@@' Dq@@g=DX߂Up^&"8 N "8kF^["*{&Dq@@' Dq@5p1ցg`=܏ "8 N "8 Κ{`= "8 N ⬹a N "8 N  *{ "8 N "8 Κ{x "8 N "8 Κ{x "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N :lG7Mѷ@ "8 N "8[ȚVf{p4O@@' Dq@-fܞm@}?>`+&"8 N "8 N "8 N "8 1Ƣߟi;*-$ 1rTgE3 =&"8G8x&^L Dq ycAsʵK_gk.u53 f N s nn醩O;)[>G9Ꙝk՘ 1[z SWqr'h 1 sҝk齜^p/&"8G`kϧ6aaΙ{;# d^;>s=]y}VL Dq% L Dqs|LL Dq@Hcg/s|V>O&Dq@#f8^3i&"8 N l1Qks}t-]Wy{/|qL Dqo;qGp {~>g`_&"8GvVOza N s >6-f@ "8 3c6g=|vOm:O->g@@7;m_O p5؊ "8 N "8 N "8 N ⾎4Mc{3A' Dq@@gYKŶ2f N "8 3AԘ "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "8 N "^i IENDB`flipperdevices-qFlipper-bfce851/installer-assets/macos/dmgbuild-config.py000066400000000000000000000007211452337521700270110ustar00rootroot00000000000000import os.path application = defines.get('app', False) appname = os.path.basename(application) format = 'UDZO' files = [application] symlinks = {'Applications': '/Applications'} hide_extension = [application] icon = '../installer-assets/macos/VolumeIcon.icns' background = '../installer-assets/macos/background/qFlipper_disk_background.png' icon_locations = { appname: (125, 150), 'Applications': (485, 150) } window_rect = ((200, 120), (600, 400)) flipperdevices-qFlipper-bfce851/installer-assets/udev/000077500000000000000000000000001452337521700232465ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/installer-assets/udev/42-flipperzero.rules000066400000000000000000000012321452337521700271040ustar00rootroot00000000000000#Flipper Zero serial port SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ATTRS{manufacturer}=="Flipper Devices Inc.", TAG+="uaccess", GROUP="dialout" #Flipper Zero DFU SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", ATTRS{manufacturer}=="STMicroelectronics", TAG+="uaccess", GROUP="dialout" #Flipper ESP32s2 BlackMagic SUBSYSTEMS=="usb", ATTRS{idVendor}=="303a", ATTRS{idProduct}=="40??", ATTRS{manufacturer}=="Flipper Devices Inc.", TAG+="uaccess", GROUP="dialout" #Flipper U2F SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5741", ATTRS{manufacturer}=="Flipper Devices Inc.", ENV{ID_SECURITY_TOKEN}="1" flipperdevices-qFlipper-bfce851/installer_windows.nsi000066400000000000000000000351121452337521700232720ustar00rootroot00000000000000; qFlipper Windows Installer Build Script ; requires NullSoft Installer 3.08 or later ; Reference http://kkmalar.org/WebApplication/qz-print-2.0.0-RC1/ant/windows/windows-packager.nsi.in ;-------------------------------- ;Include Modern UI !include "MUI2.nsh" ;-------------------------------- ;General Unicode true ;Compression algorithm used to compress files/data in the installer SetCompressor /solid /final lzma !define /ifndef NAME "qFlipper" !define /ifndef COMPANY "Flipper Devices Inc." !define /ifndef ARCH_BITS 64 !define UNINSTALL_EXE "$INSTDIR\uninstall.exe" !define VCREDIST2019_EXE "$INSTDIR\vcredist_msvc2019_x${ARCH_BITS}.exe" !define VCREDIST2010_EXE "$INSTDIR\vcredist_x${ARCH_BITS}.exe" !define UNINSTALL_REG_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" !define STM32_DRIVER_PATH "$INSTDIR\STM32 Driver" ; Include File Functions Header !include "FileFunc.nsh" ; Include macros to handle installations on x64 machines !include "x64.nsh" ; Logic operators lib for calculating DPI !include 'LogicLib.nsh' ; Detect Windows Version lib !include 'WinVer.nsh' Name ${NAME} OutFile "build\${NAME}Setup-${ARCH_BITS}bit.exe" ; Get version tag from git. Will be used in titles !tempfile StdOut !echo "${StdOut}" !system '"git" describe --tags --abbrev=0 --exclude "*-rc*" > "${StdOut}"' !define /file VERSION "${StdOut}" !delfile "${StdOut}" !undef StdOut ; Default installation Dir. On Windows it will be C:\Program Files\qFlipper InstallDir "$PROGRAMFILES64\${NAME}" ; Installer/Uninstaller Icon !define MUI_ICON "installer-assets\icons\${NAME}-installer.ico" !define MUI_UNICON "installer-assets\icons\${NAME}-uninstaller.ico" ; Enable scaling for high DPI screen ManifestDPIAware true ; Sign the Uninstaller.exe file !uninstfinalize 'flipper_code_sign.bat "%1" wow64shit' ; Version Information displayer in Properties -> Details tab ; Required for antivirus databases VIProductVersion "${VERSION}.0" ; Only exact 4 numbers allowed x.x.x.x VIAddVersionKey "FileDescription" "qFlipper Windows Installer" VIAddVersionKey "FileVersion" "${VERSION}.0" VIAddVersionKey "ProductName" "qFlipper" VIAddVersionKey "ProductVersion" "${VERSION}.0" VIAddVersionKey "CompanyName" "Flipper Devices Inc." VIAddVersionKey "LegalCopyright" "(C) Flipper Devices Inc." ;-------------------------------- ;Installer wizard pages ; Global window title Caption "qFlipper ${VERSION} Setup" !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP "installer-assets\backgrounds\windows_installer\windows_installer_header216.bmp" !define MUI_HEADERIMAGE_UNBITMAP "installer-assets\backgrounds\windows_installer\windows_installer_header216.bmp" ; Welcome and Finish page settings !define MUI_WELCOMEPAGE_TITLE "Welcome to qFlipper ${VERSION} Setup" !define MUI_WELCOMEPAGE_TEXT "qFlipper is a desktop application for updating Flipper Zero firmware and databases, manage files on SD card, and repair corrupted device.$\r$\n$\r$\n$\r$\n$\r$\n$\r$\n$\r$\n$\r$\n$\r$\nCredits$\r$\nCode: Georgii Surkov$\r$\nDesign: Valerie Aquamine, Dmitry Pavlov$\n$\r$\nOpen Source and Distributed under GPL v3 License$\r$\nCopyright (C) 2022 Flipper Devices Inc." !define MUI_WELCOMEFINISHPAGE_BITMAP "installer-assets\backgrounds\windows_installer\windows_installer_welcome216.bmp" !define MUI_UNWELCOMEFINISHPAGE_BITMAP "installer-assets\backgrounds\windows_uninstaller\windows_uninstaller_welcome216.bmp" !define MUI_PAGE_CUSTOMFUNCTION_SHOW showHiDpi ; HiDpi replace image hack for welcome page !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_COMPONENTS ;!define MUI_FINISHPAGE_NOAUTOCLOSE ; Debug !insertmacro MUI_PAGE_INSTFILES !define MUI_FINISHPAGE_TITLE "qFlipper ${VERSION} Setup Complete" ; !define MUI_FINISHPAGE_RUN "$INSTDIR\${NAME}.exe" ; !define MUI_FINISHPAGE_RUN_TEXT "Run qFlipper now" !define MUI_FINISHPAGE_LINK "More Info --> Flipper Zero Documentation" !define MUI_FINISHPAGE_LINK_LOCATION "https://docs.flipperzero.one" !define MUI_PAGE_CUSTOMFUNCTION_SHOW showHiDpi ; HiDpi replace image hack for finish page !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_COMPONENTS !define MUI_UNFINISHPAGE_NOAUTOCLOSE ; do not close uninstall log !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_FINISH ;-------------------------------- ; Languages !insertmacro MUI_LANGUAGE "English" ;-------------------------------- ;Installer Sections Section "-Main Application" RMDir /r $INSTDIR ; Use 64bit registry keys, not WOW6432Node SetRegView 64 ; Sets the context of shell folders to "All Users" SetShellVarContext all ; Kills running qFlipper.exe processes DetailPrint "Looking for running qFlipper.exe..." nsExec::ExecToLog "wmic.exe PROCESS where $\"Name like 'qFlipper.exe'$\" CALL terminate" nsExec::ExecToLog "wmic.exe PROCESS where $\"Name like 'qFlipper.exe'$\" CALL terminate" ;Twice to avoid long time exiting SetShellVarContext current SetOutPath $INSTDIR ; Extract files SetOverwrite on File /r "build\${NAME}\*" ; Check if VC2010 installed and install it if not ReadRegStr $0 HKLM "SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x64" "Version" ${If} $0 == "" DetailPrint "Microsoft Visual C++ 2010 libs not found. Installing..." ExecWait "${VCREDIST2010_EXE} /q /norestart" ${Else} DetailPrint "Found Microsoft Visual C++ 2010 Version: $0" ${EndIf} ; Check if VC2019 installed and install it if not ReadRegStr $0 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" "Version" ${If} $0 == "" DetailPrint "Microsoft Visual C++ 2019 libs not found. Installing..." ExecWait "${VCREDIST2019_EXE} /install /quiet /norestart" ${Else} DetailPrint "Found Microsoft Visual C++ 2015-2019 Version: $0" ${EndIf} WriteUninstaller "${UNINSTALL_EXE}" WriteRegStr HKLM "Software\${NAME}" "" $INSTDIR ; Save real install path for next update WriteRegStr HKLM "${UNINSTALL_REG_PATH}" "DisplayName" "${NAME} ${VERSION}" WriteRegStr HKLM "${UNINSTALL_REG_PATH}" "Publisher" "${COMPANY}" WriteRegStr HKLM "${UNINSTALL_REG_PATH}" "UninstallString" "$\"${UNINSTALL_EXE}$\"" WriteRegStr HKLM "${UNINSTALL_REG_PATH}" "QuietUninstallString" "$\"${UNINSTALL_EXE}$\" /S" WriteRegStr HKLM "${UNINSTALL_REG_PATH}" "DisplayIcon" "$\"$INSTDIR\${NAME}.exe$\"" WriteRegStr HKLM "${UNINSTALL_REG_PATH}" "DisplayVersion" "${VERSION}" WriteRegDWORD HKLM "${UNINSTALL_REG_PATH}" "NoModify" 1 WriteRegDWORD HKLM "${UNINSTALL_REG_PATH}" "NoRepair" 1 SectionEnd Section "USB DFU Driver" UsbDriverSection DetailPrint "Installing STM32 DFU Driver..." ${DisableX64FSRedirection} nsExec::ExecToLog '"$SYSDIR\pnputil.exe" /add-driver "${STM32_DRIVER_PATH}\STM32Bootloader.inf" /install' SectionEnd Section "Start menu entry" StartMenuSection CreateShortCut "$SMPROGRAMS\${NAME}.lnk" "$INSTDIR\${NAME}.exe" SectionEnd Section "Desktop shortcut" DesktopShortcutSection CreateShortCut "$DESKTOP\${NAME}.lnk" "$INSTDIR\${NAME}.exe" SectionEnd Section "-Cleanup" ; Use 64bit registry keys, not WOW6432Node SetRegView 64 Delete ${VCREDIST2019_EXE} Delete ${VCREDIST2010_EXE} ;RMDir /r "${STM32_DRIVER_PATH}" ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 IntFmt $0 "0x%08X" $0 WriteRegDWORD HKLM "${UNINSTALL_REG_PATH}" "EstimatedSize" "$0" SectionEnd ; Section to remove all Flipper Drivers, unchecked by default Section /o "un.Remove Drivers" RemoveDriversSection DetailPrint "Removing drivers. This may take a while..." nsExec::ExecToLog '$SYSDIR\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File "${STM32_DRIVER_PATH}\delete_all_dfu_drivers.ps1"' SectionEnd ;-------------------------------- ;Uninstaller Section Section "un.Uninstall qFlipper" UninstallqFlipperSection ; Use 64bit registry keys, not WOW6432Node SetRegView 64 ; Kills running qFlipper.exe processes DetailPrint "Looking for running qFlipper.exe..." nsExec::ExecToLog "wmic.exe PROCESS where $\"Name like 'qFlipper.exe'$\" CALL terminate" nsExec::ExecToLog "wmic.exe PROCESS where $\"Name like 'qFlipper.exe'$\" CALL terminate" ;Twice to avoid long time exiting Delete "$DESKTOP\${NAME}.lnk" Delete "$SMPROGRAMS\${NAME}.lnk" Delete "$INSTDIR\uninstall.exe" DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" DeleteRegKey HKLM "Software\${NAME}" RMDir /r $INSTDIR SectionEnd ;-------------------------------- ; Descriptions ; A text hovers over a component on choosing components to install on MUI_PAGE_COMPONENTS ;Language strings LangString DESC_UsbDriverSection ${LANG_ENGLISH} "STM32 Bootloader Driver for Flipper DFU mode" LangString DESC_StartMenuSection ${LANG_ENGLISH} "Add qFlipper to Windows Start menu" LangString DESC_DesktopShortcutSection ${LANG_ENGLISH} "Create qFlipper shortcut on Desktop" LangString DESC_RemoveDriversSection ${LANG_ENGLISH} "Remove all STM32 USB drivers from the system" LangString DESC_UninstallqFlipperSection ${LANG_ENGLISH} "Remove all STM32 USB drivers from the system" ;Assign language strings to install sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${UsbDriverSection} $(DESC_UsbDriverSection) !insertmacro MUI_DESCRIPTION_TEXT ${StartMenuSection} $(DESC_StartMenuSection) !insertmacro MUI_DESCRIPTION_TEXT ${DesktopShortcutSection} $(DESC_DesktopShortcutSection) !insertmacro MUI_FUNCTION_DESCRIPTION_END ;Assign language strings to UNinstall sections !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${RemoveDriversSection} $(DESC_RemoveDriversSection) !insertmacro MUI_UNFUNCTION_DESCRIPTION_END ;------------------------------- ; Function runs on every installer exe start Function .onInit ; Abort if not Windows 10 and newer ${IfNot} ${AtLeastWin10} MessageBox MB_OK|MB_ICONSTOP "Can not install qFlipper. Windows 10 and newer required" Abort ${EndIf} ${If} ${RunningX64} ${DisableX64FSRedirection} ; Disable using SysWOW64 for 32-bit files SetRegView 64 ; Use 64bit registry keys, not WOW6432Node ${Else} MessageBox MB_OK|MB_ICONSTOP "Error: Can't install qFlipper on 32-bit Windows. Use 64-bit version of Windows" Abort ; Exit installer if 32 bit windows ${EndIf} ; Get install dir from Registry ReadRegStr $R0 HKLM "Software\${NAME}" "" ; Set $INSTDIR only if registry value not empty ${If} $R0 != "" StrCpy $INSTDIR $R0 ${EndIf} ; Enable install log, need NSIS special build https://nsis.sourceforge.io/Special_Builds ;LogSet on ; Debug ;------------------------------- ; Initialize images files for HiDpi hack on every installer start ; Refers to https://gist.github.com/sredna/c294cdf9014e03d8cd6f8bd4a39437ec ; http://forums.winamp.com/showthread.php?t=443754 InitPluginsDir ; Installer Welcome images File /oname=$PLUGINSDIR\windows_installer_welcome96.bmp installer-assets\backgrounds\windows_installer\windows_installer_welcome96.bmp File /oname=$PLUGINSDIR\windows_installer_welcome120.bmp installer-assets\backgrounds\windows_installer\windows_installer_welcome120.bmp File /oname=$PLUGINSDIR\windows_installer_welcome144.bmp installer-assets\backgrounds\windows_installer\windows_installer_welcome144.bmp File /oname=$PLUGINSDIR\windows_installer_welcome168.bmp installer-assets\backgrounds\windows_installer\windows_installer_welcome168.bmp File /oname=$PLUGINSDIR\windows_installer_welcome192.bmp installer-assets\backgrounds\windows_installer\windows_installer_welcome192.bmp File /oname=$PLUGINSDIR\windows_installer_welcome216.bmp installer-assets\backgrounds\windows_installer\windows_installer_welcome216.bmp ; Installer Finish images File /oname=$PLUGINSDIR\windows_installer_finish96.bmp installer-assets\backgrounds\windows_installer\windows_installer_finish96.bmp File /oname=$PLUGINSDIR\windows_installer_finish120.bmp installer-assets\backgrounds\windows_installer\windows_installer_finish120.bmp File /oname=$PLUGINSDIR\windows_installer_finish144.bmp installer-assets\backgrounds\windows_installer\windows_installer_finish144.bmp File /oname=$PLUGINSDIR\windows_installer_finish168.bmp installer-assets\backgrounds\windows_installer\windows_installer_finish168.bmp File /oname=$PLUGINSDIR\windows_installer_finish192.bmp installer-assets\backgrounds\windows_installer\windows_installer_finish192.bmp File /oname=$PLUGINSDIR\windows_installer_finish216.bmp installer-assets\backgrounds\windows_installer\windows_installer_finish216.bmp ; Installer/Uninstaller header File /oname=$PLUGINSDIR\windows_installer_header96.bmp installer-assets\backgrounds\windows_installer\windows_installer_header96.bmp File /oname=$PLUGINSDIR\windows_installer_header120.bmp installer-assets\backgrounds\windows_installer\windows_installer_header120.bmp File /oname=$PLUGINSDIR\windows_installer_header144.bmp installer-assets\backgrounds\windows_installer\windows_installer_header144.bmp File /oname=$PLUGINSDIR\windows_installer_header168.bmp installer-assets\backgrounds\windows_installer\windows_installer_header168.bmp File /oname=$PLUGINSDIR\windows_installer_header192.bmp installer-assets\backgrounds\windows_installer\windows_installer_header192.bmp File /oname=$PLUGINSDIR\windows_installer_header216.bmp installer-assets\backgrounds\windows_installer\windows_installer_header216.bmp FunctionEnd ;------------------------------- ; Function runs on every UNinstaller exe start Function un.onInit ${If} ${RunningX64} ${DisableX64FSRedirection} ; Disable using SysWOW64 for 32-bit files SetRegView 64 ; Use 64bit registry keys, not WOW6432Node ${EndIf} FunctionEnd ;------------------------------- ; Function for dirty hijack image depends on DPI Function showHiDpi System::Call USER32::GetDpiForSystem()i.r0 ${If} $0 U<= 0 System::Call USER32::GetDC(i0)i.r1 System::Call GDI32::GetDeviceCaps(ir1,i88)i.r0 System::Call USER32::ReleaseDC(i0,ir1) ${EndIf} ; If DPI greater than 216, do nothing and use default image and scaling ${If} $0 <= 216 ${NSD_SetImage} $mui.WelcomePage.Image $PLUGINSDIR\windows_installer_welcome$0.bmp $mui.WelcomePage.Image.Bitmap ${NSD_SetImage} $mui.FinishPage.Image $PLUGINSDIR\windows_installer_finish$0.bmp $mui.FinishPage.Image.Bitmap SetBrandingImage /IMGID=1046 "$PLUGINSDIR\windows_installer_header$0.bmp" ${EndIf} FunctionEnd flipperdevices-qFlipper-bfce851/plugins/000077500000000000000000000000001452337521700204675ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/plugins/flipperproto0/000077500000000000000000000000001452337521700232745ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/plugins/flipperproto0/flipperproto0.pro000066400000000000000000000033521452337521700266260ustar00rootroot00000000000000QT -= gui include(../../qflipper_common.pri) win32: TARGET = flipperproto else: TARGET = flipperproto0 DESTDIR = $$OUT_PWD/.. TEMPLATE = lib CONFIG += plugin c++11 VERSION = 0.0.0 INCLUDEPATH += $$PWD/../protobufinterface \ $$PWD/../../3rdparty/nanopb HEADERS += \ guirequest.h \ guiresponse.h \ mainrequest.h \ mainresponse.h \ messages/application.pb.h \ messages/flipper.pb.h \ messages/gui.pb.h \ messages/property.pb.h \ messages/status.pb.h \ messages/storage.pb.h \ messages/system.pb.h \ messagewrapper.h \ propertyrequest.h \ propertyresponse.h \ protobufplugin.h \ regiondata.h \ statusrequest.h \ statusresponse.h \ storagerequest.h \ storageresponse.h \ systemrequest.h \ systemresponse.h SOURCES += \ guirequest.cpp \ guiresponse.cpp \ mainrequest.cpp \ mainresponse.cpp \ messages/application.pb.c \ messages/flipper.pb.c \ messages/gpio.pb.c \ messages/gui.pb.c \ messages/property.pb.c \ messages/status.pb.c \ messages/storage.pb.c \ messages/system.pb.c \ messagewrapper.cpp \ propertyrequest.cpp \ propertyresponse.cpp \ protobufplugin.cpp \ regiondata.cpp \ statusrequest.cpp \ statusresponse.cpp \ storagerequest.cpp \ storageresponse.cpp \ systemrequest.cpp \ systemresponse.cpp unix|win32 { LIBS += -L$$OUT_PWD/../../3rdparty/ -l3rdparty } DEFINES += PB_ENABLE_MALLOC !contains(CONFIG, static) { unix:!macx { target.path = $$PREFIX/lib/$$NAME/plugins } else:macx { target.path = $$DESTDIR/../$${NAME}.app/Contents/PlugIns } else:win32 { target.path = $$DESTDIR/../$$NAME/plugins } INSTALLS += target } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/guirequest.cpp000066400000000000000000000040611452337521700261760ustar00rootroot00000000000000#include "guirequest.h" #include "pb_encode.h" GuiStartScreenStreamRequest::GuiStartScreenStreamRequest(uint32_t id): MainRequest(id, PB_Main_gui_start_screen_stream_request_tag) {} GuiStopScreenStreamRequest::GuiStopScreenStreamRequest(uint32_t id): MainRequest(id, PB_Main_gui_stop_screen_stream_request_tag) {} GuiScreenFrameRequest::GuiScreenFrameRequest(uint32_t id, const QByteArray &screenData): MainRequest(id, PB_Main_gui_screen_frame_tag) { auto &content = m_message.content.gui_screen_frame; content.data = (pb_bytes_array_t*)malloc(PB_BYTES_ARRAY_T_ALLOCSIZE(screenData.size())); content.data->size = screenData.size(); memcpy(content.data->bytes, screenData.data(), screenData.size()); } GuiScreenFrameRequest::~GuiScreenFrameRequest() { auto &content = m_message.content.gui_screen_frame; free(content.data); } GuiSendInputRequest::GuiSendInputRequest(uint32_t id, PB_Gui_InputKey key, PB_Gui_InputType type): MainRequest(id, PB_Main_gui_send_input_event_request_tag) { auto &content = m_message.content.gui_send_input_event_request; content.key = key; content.type = type; } GuiStartVirtualDisplayRequest::GuiStartVirtualDisplayRequest(uint32_t id, const QByteArray &screenData): MainRequest(id, PB_Main_gui_start_virtual_display_request_tag) { if(screenData.isEmpty()) { return; } auto &content = m_message.content.gui_start_virtual_display_request; content.first_frame.data = (pb_bytes_array_t*)malloc(PB_BYTES_ARRAY_T_ALLOCSIZE(screenData.size())); content.first_frame.data->size = screenData.size(); content.has_first_frame = true; memcpy(content.first_frame.data->bytes, screenData.data(), screenData.size()); } GuiStartVirtualDisplayRequest::~GuiStartVirtualDisplayRequest() { auto &content = m_message.content.gui_start_virtual_display_request; if(content.has_first_frame) { free(content.first_frame.data); } } GuiStopVirtualDisplayRequest::GuiStopVirtualDisplayRequest(uint32_t id): MainRequest(id, PB_Main_gui_stop_virtual_display_request_tag) {} flipperdevices-qFlipper-bfce851/plugins/flipperproto0/guirequest.h000066400000000000000000000015731452337521700256500ustar00rootroot00000000000000#pragma once #include "mainrequest.h" class GuiStartScreenStreamRequest: public MainRequest { public: GuiStartScreenStreamRequest(uint32_t id); }; class GuiStopScreenStreamRequest : public MainRequest { public: GuiStopScreenStreamRequest(uint32_t id); }; class GuiScreenFrameRequest : public MainRequest { public: GuiScreenFrameRequest(uint32_t id, const QByteArray &screenData); ~GuiScreenFrameRequest(); }; class GuiSendInputRequest : public MainRequest { public: GuiSendInputRequest(uint32_t id, PB_Gui_InputKey key, PB_Gui_InputType type); }; class GuiStartVirtualDisplayRequest : public MainRequest { public: GuiStartVirtualDisplayRequest(uint32_t id, const QByteArray &screenData = QByteArray()); ~GuiStartVirtualDisplayRequest(); }; class GuiStopVirtualDisplayRequest : public MainRequest { public: GuiStopVirtualDisplayRequest(uint32_t id); }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/guiresponse.cpp000066400000000000000000000015341452337521700263460ustar00rootroot00000000000000#include "guiresponse.h" GuiScreenFrameResponse::GuiScreenFrameResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} const QByteArray GuiScreenFrameResponse::screenFrame() const { const auto *f = message().content.gui_screen_frame.data; return QByteArray((const char*)f->bytes, f->size); } Qt::ScreenOrientation GuiScreenFrameResponse::screenOrientation() const { switch(message().content.gui_screen_frame.orientation) { case PB_Gui_ScreenOrientation_HORIZONTAL_FLIP: return Qt::InvertedLandscapeOrientation; case PB_Gui_ScreenOrientation_VERTICAL: return Qt::PortraitOrientation; case PB_Gui_ScreenOrientation_VERTICAL_FLIP: return Qt::InvertedPortraitOrientation; case PB_Gui_ScreenOrientation_HORIZONTAL: default: return Qt::LandscapeOrientation; } } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/guiresponse.h000066400000000000000000000006641452337521700260160ustar00rootroot00000000000000#pragma once #include "mainresponse.h" #include "guiresponseinterface.h" class GuiScreenFrameResponse : public MainResponse, public GuiScreenFrameResponseInterface { Q_OBJECT Q_INTERFACES(GuiScreenFrameResponseInterface) public: GuiScreenFrameResponse(MessageWrapper &wrapper, QObject *parent = nullptr); const QByteArray screenFrame() const override; Qt::ScreenOrientation screenOrientation() const override; }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/mainrequest.cpp000066400000000000000000000011561452337521700263400ustar00rootroot00000000000000#include "mainrequest.h" #include "pb_encode.h" MainRequest::MainRequest(uint32_t id, pb_size_t tag, bool hasNext): m_message({id, PB_CommandStatus_OK, hasNext, {}, tag, {}}) {} const QByteArray MainRequest::encode() const { QByteArray ret; pb_ostream_t s = PB_OSTREAM_SIZING; if(!pb_encode_ex(&s, &PB_Main_msg, &m_message, PB_ENCODE_DELIMITED)) { return ret; } ret.resize((int)s.bytes_written); s = pb_ostream_from_buffer((pb_byte_t*)ret.data(), ret.size()); if(!pb_encode_ex(&s, &PB_Main_msg, &m_message, PB_ENCODE_DELIMITED)) { ret.clear(); } return ret; } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/mainrequest.h000066400000000000000000000004211452337521700257770ustar00rootroot00000000000000#pragma once #include #include "messages/flipper.pb.h" class MainRequest { public: MainRequest(uint32_t id, pb_size_t tag, bool hasNext = false); virtual ~MainRequest() {} const QByteArray encode() const; protected: PB_Main m_message; }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/mainresponse.cpp000066400000000000000000000133701452337521700265070ustar00rootroot00000000000000#include "mainresponse.h" #include #include "guiresponse.h" #include "statusresponse.h" #include "systemresponse.h" #include "storageresponse.h" #include "propertyresponse.h" MainResponse::MainResponse(MessageWrapper &wrapper, QObject *parent): QObject(parent), m_wrapper(std::move(wrapper)) {} MainResponse::~MainResponse() {} uint32_t MainResponse::id() const { return m_wrapper.message().command_id; } bool MainResponse::hasNext() const { return m_wrapper.message().has_next; } bool MainResponse::isError() const { // Only severe errors are considered as such. // Other errors are handled inside the respective operations. const auto status = m_wrapper.message().command_status; switch (status) { case PB_CommandStatus_ERROR: case PB_CommandStatus_ERROR_DECODE: case PB_CommandStatus_ERROR_NOT_IMPLEMENTED: case PB_CommandStatus_ERROR_BUSY: case PB_CommandStatus_ERROR_CONTINUOUS_COMMAND_INTERRUPTED: return true; default: return false; } } const QString MainResponse::errorString() const { static const QHash statusStrings = { {PB_CommandStatus_OK, QStringLiteral("No error")}, // Common errors {PB_CommandStatus_ERROR, QStringLiteral("Unknown")}, {PB_CommandStatus_ERROR_DECODE, QStringLiteral("Decode failure")}, {PB_CommandStatus_ERROR_NOT_IMPLEMENTED, QStringLiteral("Commant not implemented")}, {PB_CommandStatus_ERROR_BUSY, QStringLiteral("Device is busy")}, {PB_CommandStatus_ERROR_CONTINUOUS_COMMAND_INTERRUPTED, QStringLiteral("Continuous command interrupted")}, {PB_CommandStatus_ERROR_INVALID_PARAMETERS, QStringLiteral("Invalid parameters")}, // Storage errors {PB_CommandStatus_ERROR_STORAGE_NOT_READY, QStringLiteral("Storage not ready")}, {PB_CommandStatus_ERROR_STORAGE_EXIST, QStringLiteral("File/directory already exists")}, {PB_CommandStatus_ERROR_STORAGE_NOT_EXIST, QStringLiteral("File/directory does not exist")}, {PB_CommandStatus_ERROR_STORAGE_INVALID_PARAMETER, QStringLiteral("Invalid storage API parameter")}, {PB_CommandStatus_ERROR_STORAGE_DENIED, QStringLiteral("Access denied")}, {PB_CommandStatus_ERROR_STORAGE_INVALID_NAME, QStringLiteral("Invalid name/path")}, {PB_CommandStatus_ERROR_STORAGE_INTERNAL, QStringLiteral("Internal error")}, {PB_CommandStatus_ERROR_STORAGE_NOT_IMPLEMENTED, QStringLiteral("Storage command not implemented")}, {PB_CommandStatus_ERROR_STORAGE_ALREADY_OPEN, QStringLiteral("File/directory is already open")}, {PB_CommandStatus_ERROR_STORAGE_DIR_NOT_EMPTY, QStringLiteral("Directory is not empty")}, // Application errors {PB_CommandStatus_ERROR_APP_CANT_START, QStringLiteral("Cannot start the application")}, {PB_CommandStatus_ERROR_APP_SYSTEM_LOCKED, QStringLiteral("Another application is already running")}, // Virtual display errors {PB_CommandStatus_ERROR_VIRTUAL_DISPLAY_ALREADY_STARTED, QStringLiteral("Virtual display session has already been started")}, {PB_CommandStatus_ERROR_VIRTUAL_DISPLAY_NOT_STARTED, QStringLiteral("No virtual display session running")} }; return statusStrings[m_wrapper.message().command_status]; } QObject *MainResponse::create(MessageWrapper &wrapper, QObject *parent) { if(!wrapper.isComplete()) { return nullptr; } const auto type = tagToResponseType(wrapper.message().which_content); switch(type) { case Empty: return new EmptyResponse(wrapper, parent); case StatusPing: return new StatusPingResponse(wrapper, parent); case SystemDeviceInfo: return new SystemDeviceInfoResponse(wrapper, parent); case SystemGetDateTime: return new SystemGetDateTimeResponse(wrapper, parent); case SystemUpdate: return new SystemUpdateResponse(wrapper, parent); case SystemProtobufVersion: return new SystemProtobufVersionResponse(wrapper, parent); case StorageInfo: return new StorageInfoResponse(wrapper, parent); case StorageStat: return new StorageStatResponse(wrapper, parent); case StorageList: return new StorageListResponse(wrapper, parent); case StorageRead: return new StorageReadResponse(wrapper, parent); case StorageMd5Sum: return new StorageMd5SumResponse(wrapper, parent); case GuiScreenFrame: return new GuiScreenFrameResponse(wrapper, parent); case PropertyGet: return new PropertyGetResponse(wrapper, parent); case Unknown: default: return nullptr; } } const PB_Main &MainResponse::message() const { return m_wrapper.message(); } MainResponseInterface::ResponseType MainResponse::tagToResponseType(pb_size_t tag) { switch(tag) { case PB_Main_empty_tag: return Empty; case PB_Main_system_ping_response_tag: return StatusPing; case PB_Main_system_device_info_response_tag: return SystemDeviceInfo; case PB_Main_system_get_datetime_response_tag: return SystemGetDateTime; case PB_Main_system_update_response_tag: return SystemUpdate; case PB_Main_system_protobuf_version_response_tag: return SystemProtobufVersion; case PB_Main_storage_list_response_tag: return StorageList; case PB_Main_storage_read_response_tag: return StorageRead; case PB_Main_storage_md5sum_response_tag: return StorageMd5Sum; case PB_Main_storage_stat_response_tag: return StorageStat; case PB_Main_storage_info_response_tag: return StorageInfo; case PB_Main_gui_screen_frame_tag: return GuiScreenFrame; case PB_Main_property_get_response_tag: return PropertyGet; default: return Unknown; } } MainResponseInterface::ResponseType MainResponse::type() const { return tagToResponseType(m_wrapper.message().which_content); } size_t MainResponse::encodedSize() const { return m_wrapper.encodedSize(); } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/mainresponse.h000066400000000000000000000014761452337521700261600ustar00rootroot00000000000000#pragma once #include #include "messagewrapper.h" #include "mainresponseinterface.h" class MainResponse : public QObject, public MainResponseInterface { Q_OBJECT Q_INTERFACES(MainResponseInterface) public: MainResponse(MessageWrapper &wrapper, QObject *parent = nullptr); virtual ~MainResponse(); uint32_t id() const override; ResponseType type() const override; size_t encodedSize() const override; bool hasNext() const override; bool isError() const override; const QString errorString() const override; static QObject *create(MessageWrapper &wrapper, QObject *parent = nullptr); protected: const PB_Main &message() const; private: static ResponseType tagToResponseType(pb_size_t tag); MessageWrapper m_wrapper; }; using EmptyResponse = MainResponse; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/000077500000000000000000000000001452337521700251035ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/application.pb.c000066400000000000000000000017331452337521700301560ustar00rootroot00000000000000/* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.4.6-dev */ #include "application.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif PB_BIND(PB_App_StartRequest, PB_App_StartRequest, AUTO) PB_BIND(PB_App_LockStatusRequest, PB_App_LockStatusRequest, AUTO) PB_BIND(PB_App_LockStatusResponse, PB_App_LockStatusResponse, AUTO) PB_BIND(PB_App_AppExitRequest, PB_App_AppExitRequest, AUTO) PB_BIND(PB_App_AppLoadFileRequest, PB_App_AppLoadFileRequest, 2) PB_BIND(PB_App_AppButtonPressRequest, PB_App_AppButtonPressRequest, 2) PB_BIND(PB_App_AppButtonReleaseRequest, PB_App_AppButtonReleaseRequest, AUTO) PB_BIND(PB_App_AppStateResponse, PB_App_AppStateResponse, AUTO) PB_BIND(PB_App_GetErrorRequest, PB_App_GetErrorRequest, AUTO) PB_BIND(PB_App_GetErrorResponse, PB_App_GetErrorResponse, AUTO) PB_BIND(PB_App_DataExchangeRequest, PB_App_DataExchangeRequest, AUTO) flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/application.pb.h000066400000000000000000000175061452337521700301700ustar00rootroot00000000000000/* Automatically generated nanopb header */ /* Generated by nanopb-0.4.6-dev */ #ifndef PB_PB_APP_APPLICATION_PB_H_INCLUDED #define PB_PB_APP_APPLICATION_PB_H_INCLUDED #include #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif /* Enum definitions */ typedef enum _PB_App_AppState { PB_App_AppState_APP_CLOSED = 0, PB_App_AppState_APP_STARTED = 1 } PB_App_AppState; /* Struct definitions */ typedef struct _PB_App_AppButtonReleaseRequest { char dummy_field; } PB_App_AppButtonReleaseRequest; typedef struct _PB_App_AppExitRequest { char dummy_field; } PB_App_AppExitRequest; typedef struct _PB_App_DataExchangeRequest { pb_bytes_array_t *data; } PB_App_DataExchangeRequest; typedef struct _PB_App_GetErrorRequest { char dummy_field; } PB_App_GetErrorRequest; typedef struct _PB_App_LockStatusRequest { char dummy_field; } PB_App_LockStatusRequest; typedef struct _PB_App_StartRequest { char *name; char *args; } PB_App_StartRequest; typedef struct _PB_App_AppButtonPressRequest { char args[513]; } PB_App_AppButtonPressRequest; typedef struct _PB_App_AppLoadFileRequest { char path[513]; } PB_App_AppLoadFileRequest; typedef struct _PB_App_AppStateResponse { PB_App_AppState state; } PB_App_AppStateResponse; typedef struct _PB_App_GetErrorResponse { uint32_t code; char *text; } PB_App_GetErrorResponse; typedef struct _PB_App_LockStatusResponse { bool locked; } PB_App_LockStatusResponse; /* Helper constants for enums */ #define _PB_App_AppState_MIN PB_App_AppState_APP_CLOSED #define _PB_App_AppState_MAX PB_App_AppState_APP_STARTED #define _PB_App_AppState_ARRAYSIZE ((PB_App_AppState)(PB_App_AppState_APP_STARTED+1)) #ifdef __cplusplus extern "C" { #endif /* Initializer values for message structs */ #define PB_App_StartRequest_init_default {NULL, NULL} #define PB_App_LockStatusRequest_init_default {0} #define PB_App_LockStatusResponse_init_default {0} #define PB_App_AppExitRequest_init_default {0} #define PB_App_AppLoadFileRequest_init_default {""} #define PB_App_AppButtonPressRequest_init_default {""} #define PB_App_AppButtonReleaseRequest_init_default {0} #define PB_App_AppStateResponse_init_default {_PB_App_AppState_MIN} #define PB_App_GetErrorRequest_init_default {0} #define PB_App_GetErrorResponse_init_default {0, NULL} #define PB_App_DataExchangeRequest_init_default {NULL} #define PB_App_StartRequest_init_zero {NULL, NULL} #define PB_App_LockStatusRequest_init_zero {0} #define PB_App_LockStatusResponse_init_zero {0} #define PB_App_AppExitRequest_init_zero {0} #define PB_App_AppLoadFileRequest_init_zero {""} #define PB_App_AppButtonPressRequest_init_zero {""} #define PB_App_AppButtonReleaseRequest_init_zero {0} #define PB_App_AppStateResponse_init_zero {_PB_App_AppState_MIN} #define PB_App_GetErrorRequest_init_zero {0} #define PB_App_GetErrorResponse_init_zero {0, NULL} #define PB_App_DataExchangeRequest_init_zero {NULL} /* Field tags (for use in manual encoding/decoding) */ #define PB_App_DataExchangeRequest_data_tag 1 #define PB_App_StartRequest_name_tag 1 #define PB_App_StartRequest_args_tag 2 #define PB_App_AppButtonPressRequest_args_tag 1 #define PB_App_AppLoadFileRequest_path_tag 1 #define PB_App_AppStateResponse_state_tag 1 #define PB_App_GetErrorResponse_code_tag 1 #define PB_App_GetErrorResponse_text_tag 2 #define PB_App_LockStatusResponse_locked_tag 1 /* Struct field encoding specification for nanopb */ #define PB_App_StartRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, name, 1) \ X(a, POINTER, SINGULAR, STRING, args, 2) #define PB_App_StartRequest_CALLBACK NULL #define PB_App_StartRequest_DEFAULT NULL #define PB_App_LockStatusRequest_FIELDLIST(X, a) \ #define PB_App_LockStatusRequest_CALLBACK NULL #define PB_App_LockStatusRequest_DEFAULT NULL #define PB_App_LockStatusResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, BOOL, locked, 1) #define PB_App_LockStatusResponse_CALLBACK NULL #define PB_App_LockStatusResponse_DEFAULT NULL #define PB_App_AppExitRequest_FIELDLIST(X, a) \ #define PB_App_AppExitRequest_CALLBACK NULL #define PB_App_AppExitRequest_DEFAULT NULL #define PB_App_AppLoadFileRequest_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, STRING, path, 1) #define PB_App_AppLoadFileRequest_CALLBACK NULL #define PB_App_AppLoadFileRequest_DEFAULT NULL #define PB_App_AppButtonPressRequest_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, STRING, args, 1) #define PB_App_AppButtonPressRequest_CALLBACK NULL #define PB_App_AppButtonPressRequest_DEFAULT NULL #define PB_App_AppButtonReleaseRequest_FIELDLIST(X, a) \ #define PB_App_AppButtonReleaseRequest_CALLBACK NULL #define PB_App_AppButtonReleaseRequest_DEFAULT NULL #define PB_App_AppStateResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, state, 1) #define PB_App_AppStateResponse_CALLBACK NULL #define PB_App_AppStateResponse_DEFAULT NULL #define PB_App_GetErrorRequest_FIELDLIST(X, a) \ #define PB_App_GetErrorRequest_CALLBACK NULL #define PB_App_GetErrorRequest_DEFAULT NULL #define PB_App_GetErrorResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, code, 1) \ X(a, POINTER, SINGULAR, STRING, text, 2) #define PB_App_GetErrorResponse_CALLBACK NULL #define PB_App_GetErrorResponse_DEFAULT NULL #define PB_App_DataExchangeRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, BYTES, data, 1) #define PB_App_DataExchangeRequest_CALLBACK NULL #define PB_App_DataExchangeRequest_DEFAULT NULL extern const pb_msgdesc_t PB_App_StartRequest_msg; extern const pb_msgdesc_t PB_App_LockStatusRequest_msg; extern const pb_msgdesc_t PB_App_LockStatusResponse_msg; extern const pb_msgdesc_t PB_App_AppExitRequest_msg; extern const pb_msgdesc_t PB_App_AppLoadFileRequest_msg; extern const pb_msgdesc_t PB_App_AppButtonPressRequest_msg; extern const pb_msgdesc_t PB_App_AppButtonReleaseRequest_msg; extern const pb_msgdesc_t PB_App_AppStateResponse_msg; extern const pb_msgdesc_t PB_App_GetErrorRequest_msg; extern const pb_msgdesc_t PB_App_GetErrorResponse_msg; extern const pb_msgdesc_t PB_App_DataExchangeRequest_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define PB_App_StartRequest_fields &PB_App_StartRequest_msg #define PB_App_LockStatusRequest_fields &PB_App_LockStatusRequest_msg #define PB_App_LockStatusResponse_fields &PB_App_LockStatusResponse_msg #define PB_App_AppExitRequest_fields &PB_App_AppExitRequest_msg #define PB_App_AppLoadFileRequest_fields &PB_App_AppLoadFileRequest_msg #define PB_App_AppButtonPressRequest_fields &PB_App_AppButtonPressRequest_msg #define PB_App_AppButtonReleaseRequest_fields &PB_App_AppButtonReleaseRequest_msg #define PB_App_AppStateResponse_fields &PB_App_AppStateResponse_msg #define PB_App_GetErrorRequest_fields &PB_App_GetErrorRequest_msg #define PB_App_GetErrorResponse_fields &PB_App_GetErrorResponse_msg #define PB_App_DataExchangeRequest_fields &PB_App_DataExchangeRequest_msg /* Maximum encoded size of messages (where known) */ /* PB_App_StartRequest_size depends on runtime parameters */ /* PB_App_GetErrorResponse_size depends on runtime parameters */ /* PB_App_DataExchangeRequest_size depends on runtime parameters */ #define PB_App_AppButtonPressRequest_size 515 #define PB_App_AppButtonReleaseRequest_size 0 #define PB_App_AppExitRequest_size 0 #define PB_App_AppLoadFileRequest_size 515 #define PB_App_AppStateResponse_size 2 #define PB_App_GetErrorRequest_size 0 #define PB_App_LockStatusRequest_size 0 #define PB_App_LockStatusResponse_size 2 #ifdef __cplusplus } /* extern "C" */ #endif #endif flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/flipper.pb.c000066400000000000000000000006661452337521700273200ustar00rootroot00000000000000/* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.4.6-dev */ #include "flipper.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif PB_BIND(PB_Empty, PB_Empty, AUTO) PB_BIND(PB_StopSession, PB_StopSession, AUTO) PB_BIND(PB_Main, PB_Main, 2) PB_BIND(PB_Region, PB_Region, AUTO) PB_BIND(PB_Region_Band, PB_Region_Band, AUTO) flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/flipper.pb.h000066400000000000000000000717151452337521700273300ustar00rootroot00000000000000/* Automatically generated nanopb header */ /* Generated by nanopb-0.4.6-dev */ #ifndef PB_PB_FLIPPER_PB_H_INCLUDED #define PB_PB_FLIPPER_PB_H_INCLUDED #include #include "storage.pb.h" #include "system.pb.h" #include "application.pb.h" #include "gui.pb.h" #include "gpio.pb.h" #include "property.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif /* Enum definitions */ typedef enum _PB_CommandStatus { PB_CommandStatus_OK = 0, /* *< Common Errors */ PB_CommandStatus_ERROR = 1, /* *< Unknown error */ PB_CommandStatus_ERROR_DECODE = 2, /* *< Command can't be decoded successfully - command_id in response may be wrong! */ PB_CommandStatus_ERROR_NOT_IMPLEMENTED = 3, /* *< Command succesfully decoded, but not implemented (deprecated or not yet implemented) */ PB_CommandStatus_ERROR_BUSY = 4, /* *< Somebody took global lock, so not all commands are available */ PB_CommandStatus_ERROR_CONTINUOUS_COMMAND_INTERRUPTED = 14, /* *< Not received has_next == 0 */ PB_CommandStatus_ERROR_INVALID_PARAMETERS = 15, /* *< not provided (or provided invalid) crucial parameters to perform rpc */ /* *< Storage Errors */ PB_CommandStatus_ERROR_STORAGE_NOT_READY = 5, /* *< FS not ready */ PB_CommandStatus_ERROR_STORAGE_EXIST = 6, /* *< File/Dir alrady exist */ PB_CommandStatus_ERROR_STORAGE_NOT_EXIST = 7, /* *< File/Dir does not exist */ PB_CommandStatus_ERROR_STORAGE_INVALID_PARAMETER = 8, /* *< Invalid API parameter */ PB_CommandStatus_ERROR_STORAGE_DENIED = 9, /* *< Access denied */ PB_CommandStatus_ERROR_STORAGE_INVALID_NAME = 10, /* *< Invalid name/path */ PB_CommandStatus_ERROR_STORAGE_INTERNAL = 11, /* *< Internal error */ PB_CommandStatus_ERROR_STORAGE_NOT_IMPLEMENTED = 12, /* *< Functon not implemented */ PB_CommandStatus_ERROR_STORAGE_ALREADY_OPEN = 13, /* *< File/Dir already opened */ PB_CommandStatus_ERROR_STORAGE_DIR_NOT_EMPTY = 18, /* *< Directory, you're going to remove is not empty */ /* *< Application Errors */ PB_CommandStatus_ERROR_APP_CANT_START = 16, /* *< Can't start app - internal error */ PB_CommandStatus_ERROR_APP_SYSTEM_LOCKED = 17, /* *< Another app is running */ PB_CommandStatus_ERROR_APP_NOT_RUNNING = 21, /* *< App is not running or doesn't support RPC commands */ PB_CommandStatus_ERROR_APP_CMD_ERROR = 22, /* *< Command execution error */ /* *< Virtual Display Errors */ PB_CommandStatus_ERROR_VIRTUAL_DISPLAY_ALREADY_STARTED = 19, /* *< Virtual Display session can't be started twice */ PB_CommandStatus_ERROR_VIRTUAL_DISPLAY_NOT_STARTED = 20, /* *< Virtual Display session can't be stopped when it's not started */ /* *< GPIO Errors */ PB_CommandStatus_ERROR_GPIO_MODE_INCORRECT = 58, PB_CommandStatus_ERROR_GPIO_UNKNOWN_PIN_MODE = 59 } PB_CommandStatus; /* Struct definitions */ /* There are Server commands (e.g. Storage_write), which have no body message in response. But 'oneof' obligate to have at least 1 encoded message in scope. For this needs Empty message is implemented. */ typedef struct _PB_Empty { char dummy_field; } PB_Empty; typedef struct _PB_Region { pb_bytes_array_t *country_code; pb_callback_t bands; } PB_Region; typedef struct _PB_StopSession { char dummy_field; } PB_StopSession; typedef struct _PB_Main { uint32_t command_id; PB_CommandStatus command_status; bool has_next; pb_callback_t cb_content; pb_size_t which_content; union { PB_Empty empty; PB_System_PingRequest system_ping_request; PB_System_PingResponse system_ping_response; PB_Storage_ListRequest storage_list_request; PB_Storage_ListResponse storage_list_response; PB_Storage_ReadRequest storage_read_request; PB_Storage_ReadResponse storage_read_response; PB_Storage_WriteRequest storage_write_request; PB_Storage_DeleteRequest storage_delete_request; PB_Storage_MkdirRequest storage_mkdir_request; PB_Storage_Md5sumRequest storage_md5sum_request; PB_Storage_Md5sumResponse storage_md5sum_response; PB_App_StartRequest app_start_request; PB_App_LockStatusRequest app_lock_status_request; PB_App_LockStatusResponse app_lock_status_response; PB_StopSession stop_session; PB_Gui_StartScreenStreamRequest gui_start_screen_stream_request; PB_Gui_StopScreenStreamRequest gui_stop_screen_stream_request; PB_Gui_ScreenFrame gui_screen_frame; PB_Gui_SendInputEventRequest gui_send_input_event_request; PB_Storage_StatRequest storage_stat_request; PB_Storage_StatResponse storage_stat_response; PB_Gui_StartVirtualDisplayRequest gui_start_virtual_display_request; PB_Gui_StopVirtualDisplayRequest gui_stop_virtual_display_request; PB_Storage_InfoRequest storage_info_request; PB_Storage_InfoResponse storage_info_response; PB_Storage_RenameRequest storage_rename_request; PB_System_RebootRequest system_reboot_request; PB_System_DeviceInfoRequest system_device_info_request; PB_System_DeviceInfoResponse system_device_info_response; PB_System_FactoryResetRequest system_factory_reset_request; PB_System_GetDateTimeRequest system_get_datetime_request; PB_System_GetDateTimeResponse system_get_datetime_response; PB_System_SetDateTimeRequest system_set_datetime_request; PB_System_PlayAudiovisualAlertRequest system_play_audiovisual_alert_request; PB_System_ProtobufVersionRequest system_protobuf_version_request; PB_System_ProtobufVersionResponse system_protobuf_version_response; PB_System_UpdateRequest system_update_request; PB_Storage_BackupCreateRequest storage_backup_create_request; PB_Storage_BackupRestoreRequest storage_backup_restore_request; PB_System_PowerInfoRequest system_power_info_request; PB_System_PowerInfoResponse system_power_info_response; PB_System_UpdateResponse system_update_response; PB_App_AppExitRequest app_exit_request; PB_App_AppLoadFileRequest app_load_file_request; PB_App_AppButtonPressRequest app_button_press_request; PB_App_AppButtonReleaseRequest app_button_release_request; PB_Gpio_SetPinMode gpio_set_pin_mode; PB_Gpio_SetInputPull gpio_set_input_pull; PB_Gpio_GetPinMode gpio_get_pin_mode; PB_Gpio_GetPinModeResponse gpio_get_pin_mode_response; PB_Gpio_ReadPin gpio_read_pin; PB_Gpio_ReadPinResponse gpio_read_pin_response; PB_Gpio_WritePin gpio_write_pin; PB_App_AppStateResponse app_state_response; PB_Storage_TimestampRequest storage_timestamp_request; PB_Storage_TimestampResponse storage_timestamp_response; PB_Property_GetRequest property_get_request; PB_Property_GetResponse property_get_response; PB_App_GetErrorRequest app_get_error_request; PB_App_GetErrorResponse app_get_error_response; PB_App_DataExchangeRequest app_data_exchange_request; } content; } PB_Main; typedef struct _PB_Region_Band { uint32_t start; uint32_t end; int8_t power_limit; uint8_t duty_cycle; } PB_Region_Band; /* Helper constants for enums */ #define _PB_CommandStatus_MIN PB_CommandStatus_OK #define _PB_CommandStatus_MAX PB_CommandStatus_ERROR_GPIO_UNKNOWN_PIN_MODE #define _PB_CommandStatus_ARRAYSIZE ((PB_CommandStatus)(PB_CommandStatus_ERROR_GPIO_UNKNOWN_PIN_MODE+1)) #ifdef __cplusplus extern "C" { #endif /* Initializer values for message structs */ #define PB_Empty_init_default {0} #define PB_StopSession_init_default {0} #define PB_Main_init_default {0, _PB_CommandStatus_MIN, 0, {{NULL}, NULL}, 0, {PB_Empty_init_default}} #define PB_Region_init_default {NULL, {{NULL}, NULL}} #define PB_Region_Band_init_default {0, 0, 0, 0} #define PB_Empty_init_zero {0} #define PB_StopSession_init_zero {0} #define PB_Main_init_zero {0, _PB_CommandStatus_MIN, 0, {{NULL}, NULL}, 0, {PB_Empty_init_zero}} #define PB_Region_init_zero {NULL, {{NULL}, NULL}} #define PB_Region_Band_init_zero {0, 0, 0, 0} /* Field tags (for use in manual encoding/decoding) */ #define PB_Region_country_code_tag 1 #define PB_Region_bands_tag 2 #define PB_Main_command_id_tag 1 #define PB_Main_command_status_tag 2 #define PB_Main_has_next_tag 3 #define PB_Main_empty_tag 4 #define PB_Main_system_ping_request_tag 5 #define PB_Main_system_ping_response_tag 6 #define PB_Main_storage_list_request_tag 7 #define PB_Main_storage_list_response_tag 8 #define PB_Main_storage_read_request_tag 9 #define PB_Main_storage_read_response_tag 10 #define PB_Main_storage_write_request_tag 11 #define PB_Main_storage_delete_request_tag 12 #define PB_Main_storage_mkdir_request_tag 13 #define PB_Main_storage_md5sum_request_tag 14 #define PB_Main_storage_md5sum_response_tag 15 #define PB_Main_app_start_request_tag 16 #define PB_Main_app_lock_status_request_tag 17 #define PB_Main_app_lock_status_response_tag 18 #define PB_Main_stop_session_tag 19 #define PB_Main_gui_start_screen_stream_request_tag 20 #define PB_Main_gui_stop_screen_stream_request_tag 21 #define PB_Main_gui_screen_frame_tag 22 #define PB_Main_gui_send_input_event_request_tag 23 #define PB_Main_storage_stat_request_tag 24 #define PB_Main_storage_stat_response_tag 25 #define PB_Main_gui_start_virtual_display_request_tag 26 #define PB_Main_gui_stop_virtual_display_request_tag 27 #define PB_Main_storage_info_request_tag 28 #define PB_Main_storage_info_response_tag 29 #define PB_Main_storage_rename_request_tag 30 #define PB_Main_system_reboot_request_tag 31 #define PB_Main_system_device_info_request_tag 32 #define PB_Main_system_device_info_response_tag 33 #define PB_Main_system_factory_reset_request_tag 34 #define PB_Main_system_get_datetime_request_tag 35 #define PB_Main_system_get_datetime_response_tag 36 #define PB_Main_system_set_datetime_request_tag 37 #define PB_Main_system_play_audiovisual_alert_request_tag 38 #define PB_Main_system_protobuf_version_request_tag 39 #define PB_Main_system_protobuf_version_response_tag 40 #define PB_Main_system_update_request_tag 41 #define PB_Main_storage_backup_create_request_tag 42 #define PB_Main_storage_backup_restore_request_tag 43 #define PB_Main_system_power_info_request_tag 44 #define PB_Main_system_power_info_response_tag 45 #define PB_Main_system_update_response_tag 46 #define PB_Main_app_exit_request_tag 47 #define PB_Main_app_load_file_request_tag 48 #define PB_Main_app_button_press_request_tag 49 #define PB_Main_app_button_release_request_tag 50 #define PB_Main_gpio_set_pin_mode_tag 51 #define PB_Main_gpio_set_input_pull_tag 52 #define PB_Main_gpio_get_pin_mode_tag 53 #define PB_Main_gpio_get_pin_mode_response_tag 54 #define PB_Main_gpio_read_pin_tag 55 #define PB_Main_gpio_read_pin_response_tag 56 #define PB_Main_gpio_write_pin_tag 57 #define PB_Main_app_state_response_tag 58 #define PB_Main_storage_timestamp_request_tag 59 #define PB_Main_storage_timestamp_response_tag 60 #define PB_Main_property_get_request_tag 61 #define PB_Main_property_get_response_tag 62 #define PB_Main_app_get_error_request_tag 63 #define PB_Main_app_get_error_response_tag 64 #define PB_Main_app_data_exchange_request_tag 65 #define PB_Region_Band_start_tag 1 #define PB_Region_Band_end_tag 2 #define PB_Region_Band_power_limit_tag 3 #define PB_Region_Band_duty_cycle_tag 4 /* Struct field encoding specification for nanopb */ #define PB_Empty_FIELDLIST(X, a) \ #define PB_Empty_CALLBACK NULL #define PB_Empty_DEFAULT NULL #define PB_StopSession_FIELDLIST(X, a) \ #define PB_StopSession_CALLBACK NULL #define PB_StopSession_DEFAULT NULL #define PB_Main_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, command_id, 1) \ X(a, STATIC, SINGULAR, UENUM, command_status, 2) \ X(a, STATIC, SINGULAR, BOOL, has_next, 3) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,empty,content.empty), 4) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_ping_request,content.system_ping_request), 5) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_ping_response,content.system_ping_response), 6) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_list_request,content.storage_list_request), 7) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_list_response,content.storage_list_response), 8) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_read_request,content.storage_read_request), 9) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_read_response,content.storage_read_response), 10) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_write_request,content.storage_write_request), 11) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_delete_request,content.storage_delete_request), 12) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_mkdir_request,content.storage_mkdir_request), 13) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_md5sum_request,content.storage_md5sum_request), 14) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_md5sum_response,content.storage_md5sum_response), 15) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_start_request,content.app_start_request), 16) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_lock_status_request,content.app_lock_status_request), 17) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_lock_status_response,content.app_lock_status_response), 18) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,stop_session,content.stop_session), 19) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_start_screen_stream_request,content.gui_start_screen_stream_request), 20) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_stop_screen_stream_request,content.gui_stop_screen_stream_request), 21) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_screen_frame,content.gui_screen_frame), 22) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_send_input_event_request,content.gui_send_input_event_request), 23) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_stat_request,content.storage_stat_request), 24) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_stat_response,content.storage_stat_response), 25) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_start_virtual_display_request,content.gui_start_virtual_display_request), 26) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gui_stop_virtual_display_request,content.gui_stop_virtual_display_request), 27) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_info_request,content.storage_info_request), 28) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_info_response,content.storage_info_response), 29) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_rename_request,content.storage_rename_request), 30) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_reboot_request,content.system_reboot_request), 31) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_device_info_request,content.system_device_info_request), 32) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_device_info_response,content.system_device_info_response), 33) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_factory_reset_request,content.system_factory_reset_request), 34) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_get_datetime_request,content.system_get_datetime_request), 35) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_get_datetime_response,content.system_get_datetime_response), 36) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_set_datetime_request,content.system_set_datetime_request), 37) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_play_audiovisual_alert_request,content.system_play_audiovisual_alert_request), 38) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_protobuf_version_request,content.system_protobuf_version_request), 39) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_protobuf_version_response,content.system_protobuf_version_response), 40) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_update_request,content.system_update_request), 41) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_backup_create_request,content.storage_backup_create_request), 42) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_backup_restore_request,content.storage_backup_restore_request), 43) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_power_info_request,content.system_power_info_request), 44) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_power_info_response,content.system_power_info_response), 45) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,system_update_response,content.system_update_response), 46) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_exit_request,content.app_exit_request), 47) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_load_file_request,content.app_load_file_request), 48) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_button_press_request,content.app_button_press_request), 49) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_button_release_request,content.app_button_release_request), 50) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gpio_set_pin_mode,content.gpio_set_pin_mode), 51) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gpio_set_input_pull,content.gpio_set_input_pull), 52) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gpio_get_pin_mode,content.gpio_get_pin_mode), 53) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gpio_get_pin_mode_response,content.gpio_get_pin_mode_response), 54) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gpio_read_pin,content.gpio_read_pin), 55) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gpio_read_pin_response,content.gpio_read_pin_response), 56) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,gpio_write_pin,content.gpio_write_pin), 57) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_state_response,content.app_state_response), 58) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_timestamp_request,content.storage_timestamp_request), 59) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,storage_timestamp_response,content.storage_timestamp_response), 60) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,property_get_request,content.property_get_request), 61) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,property_get_response,content.property_get_response), 62) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_get_error_request,content.app_get_error_request), 63) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_get_error_response,content.app_get_error_response), 64) \ X(a, STATIC, ONEOF, MSG_W_CB, (content,app_data_exchange_request,content.app_data_exchange_request), 65) #define PB_Main_CALLBACK NULL #define PB_Main_DEFAULT NULL #define PB_Main_content_empty_MSGTYPE PB_Empty #define PB_Main_content_system_ping_request_MSGTYPE PB_System_PingRequest #define PB_Main_content_system_ping_response_MSGTYPE PB_System_PingResponse #define PB_Main_content_storage_list_request_MSGTYPE PB_Storage_ListRequest #define PB_Main_content_storage_list_response_MSGTYPE PB_Storage_ListResponse #define PB_Main_content_storage_read_request_MSGTYPE PB_Storage_ReadRequest #define PB_Main_content_storage_read_response_MSGTYPE PB_Storage_ReadResponse #define PB_Main_content_storage_write_request_MSGTYPE PB_Storage_WriteRequest #define PB_Main_content_storage_delete_request_MSGTYPE PB_Storage_DeleteRequest #define PB_Main_content_storage_mkdir_request_MSGTYPE PB_Storage_MkdirRequest #define PB_Main_content_storage_md5sum_request_MSGTYPE PB_Storage_Md5sumRequest #define PB_Main_content_storage_md5sum_response_MSGTYPE PB_Storage_Md5sumResponse #define PB_Main_content_app_start_request_MSGTYPE PB_App_StartRequest #define PB_Main_content_app_lock_status_request_MSGTYPE PB_App_LockStatusRequest #define PB_Main_content_app_lock_status_response_MSGTYPE PB_App_LockStatusResponse #define PB_Main_content_stop_session_MSGTYPE PB_StopSession #define PB_Main_content_gui_start_screen_stream_request_MSGTYPE PB_Gui_StartScreenStreamRequest #define PB_Main_content_gui_stop_screen_stream_request_MSGTYPE PB_Gui_StopScreenStreamRequest #define PB_Main_content_gui_screen_frame_MSGTYPE PB_Gui_ScreenFrame #define PB_Main_content_gui_send_input_event_request_MSGTYPE PB_Gui_SendInputEventRequest #define PB_Main_content_storage_stat_request_MSGTYPE PB_Storage_StatRequest #define PB_Main_content_storage_stat_response_MSGTYPE PB_Storage_StatResponse #define PB_Main_content_gui_start_virtual_display_request_MSGTYPE PB_Gui_StartVirtualDisplayRequest #define PB_Main_content_gui_stop_virtual_display_request_MSGTYPE PB_Gui_StopVirtualDisplayRequest #define PB_Main_content_storage_info_request_MSGTYPE PB_Storage_InfoRequest #define PB_Main_content_storage_info_response_MSGTYPE PB_Storage_InfoResponse #define PB_Main_content_storage_rename_request_MSGTYPE PB_Storage_RenameRequest #define PB_Main_content_system_reboot_request_MSGTYPE PB_System_RebootRequest #define PB_Main_content_system_device_info_request_MSGTYPE PB_System_DeviceInfoRequest #define PB_Main_content_system_device_info_response_MSGTYPE PB_System_DeviceInfoResponse #define PB_Main_content_system_factory_reset_request_MSGTYPE PB_System_FactoryResetRequest #define PB_Main_content_system_get_datetime_request_MSGTYPE PB_System_GetDateTimeRequest #define PB_Main_content_system_get_datetime_response_MSGTYPE PB_System_GetDateTimeResponse #define PB_Main_content_system_set_datetime_request_MSGTYPE PB_System_SetDateTimeRequest #define PB_Main_content_system_play_audiovisual_alert_request_MSGTYPE PB_System_PlayAudiovisualAlertRequest #define PB_Main_content_system_protobuf_version_request_MSGTYPE PB_System_ProtobufVersionRequest #define PB_Main_content_system_protobuf_version_response_MSGTYPE PB_System_ProtobufVersionResponse #define PB_Main_content_system_update_request_MSGTYPE PB_System_UpdateRequest #define PB_Main_content_storage_backup_create_request_MSGTYPE PB_Storage_BackupCreateRequest #define PB_Main_content_storage_backup_restore_request_MSGTYPE PB_Storage_BackupRestoreRequest #define PB_Main_content_system_power_info_request_MSGTYPE PB_System_PowerInfoRequest #define PB_Main_content_system_power_info_response_MSGTYPE PB_System_PowerInfoResponse #define PB_Main_content_system_update_response_MSGTYPE PB_System_UpdateResponse #define PB_Main_content_app_exit_request_MSGTYPE PB_App_AppExitRequest #define PB_Main_content_app_load_file_request_MSGTYPE PB_App_AppLoadFileRequest #define PB_Main_content_app_button_press_request_MSGTYPE PB_App_AppButtonPressRequest #define PB_Main_content_app_button_release_request_MSGTYPE PB_App_AppButtonReleaseRequest #define PB_Main_content_gpio_set_pin_mode_MSGTYPE PB_Gpio_SetPinMode #define PB_Main_content_gpio_set_input_pull_MSGTYPE PB_Gpio_SetInputPull #define PB_Main_content_gpio_get_pin_mode_MSGTYPE PB_Gpio_GetPinMode #define PB_Main_content_gpio_get_pin_mode_response_MSGTYPE PB_Gpio_GetPinModeResponse #define PB_Main_content_gpio_read_pin_MSGTYPE PB_Gpio_ReadPin #define PB_Main_content_gpio_read_pin_response_MSGTYPE PB_Gpio_ReadPinResponse #define PB_Main_content_gpio_write_pin_MSGTYPE PB_Gpio_WritePin #define PB_Main_content_app_state_response_MSGTYPE PB_App_AppStateResponse #define PB_Main_content_storage_timestamp_request_MSGTYPE PB_Storage_TimestampRequest #define PB_Main_content_storage_timestamp_response_MSGTYPE PB_Storage_TimestampResponse #define PB_Main_content_property_get_request_MSGTYPE PB_Property_GetRequest #define PB_Main_content_property_get_response_MSGTYPE PB_Property_GetResponse #define PB_Main_content_app_get_error_request_MSGTYPE PB_App_GetErrorRequest #define PB_Main_content_app_get_error_response_MSGTYPE PB_App_GetErrorResponse #define PB_Main_content_app_data_exchange_request_MSGTYPE PB_App_DataExchangeRequest #define PB_Region_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, BYTES, country_code, 1) \ X(a, CALLBACK, REPEATED, MESSAGE, bands, 2) #define PB_Region_CALLBACK pb_default_field_callback #define PB_Region_DEFAULT NULL #define PB_Region_bands_MSGTYPE PB_Region_Band #define PB_Region_Band_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, start, 1) \ X(a, STATIC, SINGULAR, UINT32, end, 2) \ X(a, STATIC, SINGULAR, INT32, power_limit, 3) \ X(a, STATIC, SINGULAR, UINT32, duty_cycle, 4) #define PB_Region_Band_CALLBACK NULL #define PB_Region_Band_DEFAULT NULL extern const pb_msgdesc_t PB_Empty_msg; extern const pb_msgdesc_t PB_StopSession_msg; extern const pb_msgdesc_t PB_Main_msg; extern const pb_msgdesc_t PB_Region_msg; extern const pb_msgdesc_t PB_Region_Band_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define PB_Empty_fields &PB_Empty_msg #define PB_StopSession_fields &PB_StopSession_msg #define PB_Main_fields &PB_Main_msg #define PB_Region_fields &PB_Region_msg #define PB_Region_Band_fields &PB_Region_Band_msg /* Maximum encoded size of messages (where known) */ #if defined(PB_System_PingRequest_size) && defined(PB_System_PingResponse_size) && defined(PB_Storage_ListRequest_size) && defined(PB_Storage_ListResponse_size) && defined(PB_Storage_ReadRequest_size) && defined(PB_Storage_ReadResponse_size) && defined(PB_Storage_WriteRequest_size) && defined(PB_Storage_DeleteRequest_size) && defined(PB_Storage_MkdirRequest_size) && defined(PB_Storage_Md5sumRequest_size) && defined(PB_App_StartRequest_size) && defined(PB_Gui_ScreenFrame_size) && defined(PB_Storage_StatRequest_size) && defined(PB_Storage_StatResponse_size) && defined(PB_Gui_StartVirtualDisplayRequest_size) && defined(PB_Storage_InfoRequest_size) && defined(PB_Storage_RenameRequest_size) && defined(PB_System_DeviceInfoResponse_size) && defined(PB_System_UpdateRequest_size) && defined(PB_Storage_BackupCreateRequest_size) && defined(PB_Storage_BackupRestoreRequest_size) && defined(PB_System_PowerInfoResponse_size) && defined(PB_Storage_TimestampRequest_size) && defined(PB_Property_GetRequest_size) && defined(PB_Property_GetResponse_size) && defined(PB_App_GetErrorResponse_size) && defined(PB_App_DataExchangeRequest_size) union PB_Main_content_size_union {char f5[(6 + PB_System_PingRequest_size)]; char f6[(6 + PB_System_PingResponse_size)]; char f7[(6 + PB_Storage_ListRequest_size)]; char f8[(6 + PB_Storage_ListResponse_size)]; char f9[(6 + PB_Storage_ReadRequest_size)]; char f10[(6 + PB_Storage_ReadResponse_size)]; char f11[(6 + PB_Storage_WriteRequest_size)]; char f12[(6 + PB_Storage_DeleteRequest_size)]; char f13[(6 + PB_Storage_MkdirRequest_size)]; char f14[(6 + PB_Storage_Md5sumRequest_size)]; char f16[(7 + PB_App_StartRequest_size)]; char f22[(7 + PB_Gui_ScreenFrame_size)]; char f24[(7 + PB_Storage_StatRequest_size)]; char f25[(7 + PB_Storage_StatResponse_size)]; char f26[(7 + PB_Gui_StartVirtualDisplayRequest_size)]; char f28[(7 + PB_Storage_InfoRequest_size)]; char f30[(7 + PB_Storage_RenameRequest_size)]; char f33[(7 + PB_System_DeviceInfoResponse_size)]; char f41[(7 + PB_System_UpdateRequest_size)]; char f42[(7 + PB_Storage_BackupCreateRequest_size)]; char f43[(7 + PB_Storage_BackupRestoreRequest_size)]; char f45[(7 + PB_System_PowerInfoResponse_size)]; char f59[(7 + PB_Storage_TimestampRequest_size)]; char f61[(7 + PB_Property_GetRequest_size)]; char f62[(7 + PB_Property_GetResponse_size)]; char f64[(7 + PB_App_GetErrorResponse_size)]; char f65[(7 + PB_App_DataExchangeRequest_size)]; char f0[519];}; #endif /* PB_Region_size depends on runtime parameters */ #define PB_Empty_size 0 #define PB_Region_Band_size 26 #define PB_StopSession_size 0 #if defined(PB_System_PingRequest_size) && defined(PB_System_PingResponse_size) && defined(PB_Storage_ListRequest_size) && defined(PB_Storage_ListResponse_size) && defined(PB_Storage_ReadRequest_size) && defined(PB_Storage_ReadResponse_size) && defined(PB_Storage_WriteRequest_size) && defined(PB_Storage_DeleteRequest_size) && defined(PB_Storage_MkdirRequest_size) && defined(PB_Storage_Md5sumRequest_size) && defined(PB_App_StartRequest_size) && defined(PB_Gui_ScreenFrame_size) && defined(PB_Storage_StatRequest_size) && defined(PB_Storage_StatResponse_size) && defined(PB_Gui_StartVirtualDisplayRequest_size) && defined(PB_Storage_InfoRequest_size) && defined(PB_Storage_RenameRequest_size) && defined(PB_System_DeviceInfoResponse_size) && defined(PB_System_UpdateRequest_size) && defined(PB_Storage_BackupCreateRequest_size) && defined(PB_Storage_BackupRestoreRequest_size) && defined(PB_System_PowerInfoResponse_size) && defined(PB_Storage_TimestampRequest_size) && defined(PB_Property_GetRequest_size) && defined(PB_Property_GetResponse_size) && defined(PB_App_GetErrorResponse_size) && defined(PB_App_DataExchangeRequest_size) #define PB_Main_size (10 + sizeof(union PB_Main_content_size_union)) #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/gpio.pb.c000066400000000000000000000012101452337521700265770ustar00rootroot00000000000000/* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.4.6-dev */ #include "gpio.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif PB_BIND(PB_Gpio_SetPinMode, PB_Gpio_SetPinMode, AUTO) PB_BIND(PB_Gpio_SetInputPull, PB_Gpio_SetInputPull, AUTO) PB_BIND(PB_Gpio_GetPinMode, PB_Gpio_GetPinMode, AUTO) PB_BIND(PB_Gpio_GetPinModeResponse, PB_Gpio_GetPinModeResponse, AUTO) PB_BIND(PB_Gpio_ReadPin, PB_Gpio_ReadPin, AUTO) PB_BIND(PB_Gpio_ReadPinResponse, PB_Gpio_ReadPinResponse, AUTO) PB_BIND(PB_Gpio_WritePin, PB_Gpio_WritePin, AUTO) flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/gpio.pb.h000066400000000000000000000154111452337521700266140ustar00rootroot00000000000000/* Automatically generated nanopb header */ /* Generated by nanopb-0.4.6-dev */ #ifndef PB_PB_GPIO_GPIO_PB_H_INCLUDED #define PB_PB_GPIO_GPIO_PB_H_INCLUDED #include #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif /* Enum definitions */ typedef enum _PB_Gpio_GpioPin { PB_Gpio_GpioPin_PC0 = 0, PB_Gpio_GpioPin_PC1 = 1, PB_Gpio_GpioPin_PC3 = 2, PB_Gpio_GpioPin_PB2 = 3, PB_Gpio_GpioPin_PB3 = 4, PB_Gpio_GpioPin_PA4 = 5, PB_Gpio_GpioPin_PA6 = 6, PB_Gpio_GpioPin_PA7 = 7 } PB_Gpio_GpioPin; typedef enum _PB_Gpio_GpioPinMode { PB_Gpio_GpioPinMode_OUTPUT = 0, PB_Gpio_GpioPinMode_INPUT = 1 } PB_Gpio_GpioPinMode; typedef enum _PB_Gpio_GpioInputPull { PB_Gpio_GpioInputPull_NO = 0, PB_Gpio_GpioInputPull_UP = 1, PB_Gpio_GpioInputPull_DOWN = 2 } PB_Gpio_GpioInputPull; /* Struct definitions */ typedef struct _PB_Gpio_GetPinMode { PB_Gpio_GpioPin pin; } PB_Gpio_GetPinMode; typedef struct _PB_Gpio_GetPinModeResponse { PB_Gpio_GpioPinMode mode; } PB_Gpio_GetPinModeResponse; typedef struct _PB_Gpio_ReadPin { PB_Gpio_GpioPin pin; } PB_Gpio_ReadPin; typedef struct _PB_Gpio_ReadPinResponse { uint32_t value; } PB_Gpio_ReadPinResponse; typedef struct _PB_Gpio_SetInputPull { PB_Gpio_GpioPin pin; PB_Gpio_GpioInputPull pull_mode; } PB_Gpio_SetInputPull; typedef struct _PB_Gpio_SetPinMode { PB_Gpio_GpioPin pin; PB_Gpio_GpioPinMode mode; } PB_Gpio_SetPinMode; typedef struct _PB_Gpio_WritePin { PB_Gpio_GpioPin pin; uint32_t value; } PB_Gpio_WritePin; /* Helper constants for enums */ #define _PB_Gpio_GpioPin_MIN PB_Gpio_GpioPin_PC0 #define _PB_Gpio_GpioPin_MAX PB_Gpio_GpioPin_PA7 #define _PB_Gpio_GpioPin_ARRAYSIZE ((PB_Gpio_GpioPin)(PB_Gpio_GpioPin_PA7+1)) #define _PB_Gpio_GpioPinMode_MIN PB_Gpio_GpioPinMode_OUTPUT #define _PB_Gpio_GpioPinMode_MAX PB_Gpio_GpioPinMode_INPUT #define _PB_Gpio_GpioPinMode_ARRAYSIZE ((PB_Gpio_GpioPinMode)(PB_Gpio_GpioPinMode_INPUT+1)) #define _PB_Gpio_GpioInputPull_MIN PB_Gpio_GpioInputPull_NO #define _PB_Gpio_GpioInputPull_MAX PB_Gpio_GpioInputPull_DOWN #define _PB_Gpio_GpioInputPull_ARRAYSIZE ((PB_Gpio_GpioInputPull)(PB_Gpio_GpioInputPull_DOWN+1)) #ifdef __cplusplus extern "C" { #endif /* Initializer values for message structs */ #define PB_Gpio_SetPinMode_init_default {_PB_Gpio_GpioPin_MIN, _PB_Gpio_GpioPinMode_MIN} #define PB_Gpio_SetInputPull_init_default {_PB_Gpio_GpioPin_MIN, _PB_Gpio_GpioInputPull_MIN} #define PB_Gpio_GetPinMode_init_default {_PB_Gpio_GpioPin_MIN} #define PB_Gpio_GetPinModeResponse_init_default {_PB_Gpio_GpioPinMode_MIN} #define PB_Gpio_ReadPin_init_default {_PB_Gpio_GpioPin_MIN} #define PB_Gpio_ReadPinResponse_init_default {0} #define PB_Gpio_WritePin_init_default {_PB_Gpio_GpioPin_MIN, 0} #define PB_Gpio_SetPinMode_init_zero {_PB_Gpio_GpioPin_MIN, _PB_Gpio_GpioPinMode_MIN} #define PB_Gpio_SetInputPull_init_zero {_PB_Gpio_GpioPin_MIN, _PB_Gpio_GpioInputPull_MIN} #define PB_Gpio_GetPinMode_init_zero {_PB_Gpio_GpioPin_MIN} #define PB_Gpio_GetPinModeResponse_init_zero {_PB_Gpio_GpioPinMode_MIN} #define PB_Gpio_ReadPin_init_zero {_PB_Gpio_GpioPin_MIN} #define PB_Gpio_ReadPinResponse_init_zero {0} #define PB_Gpio_WritePin_init_zero {_PB_Gpio_GpioPin_MIN, 0} /* Field tags (for use in manual encoding/decoding) */ #define PB_Gpio_GetPinMode_pin_tag 1 #define PB_Gpio_GetPinModeResponse_mode_tag 1 #define PB_Gpio_ReadPin_pin_tag 1 #define PB_Gpio_ReadPinResponse_value_tag 2 #define PB_Gpio_SetInputPull_pin_tag 1 #define PB_Gpio_SetInputPull_pull_mode_tag 2 #define PB_Gpio_SetPinMode_pin_tag 1 #define PB_Gpio_SetPinMode_mode_tag 2 #define PB_Gpio_WritePin_pin_tag 1 #define PB_Gpio_WritePin_value_tag 2 /* Struct field encoding specification for nanopb */ #define PB_Gpio_SetPinMode_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, pin, 1) \ X(a, STATIC, SINGULAR, UENUM, mode, 2) #define PB_Gpio_SetPinMode_CALLBACK NULL #define PB_Gpio_SetPinMode_DEFAULT NULL #define PB_Gpio_SetInputPull_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, pin, 1) \ X(a, STATIC, SINGULAR, UENUM, pull_mode, 2) #define PB_Gpio_SetInputPull_CALLBACK NULL #define PB_Gpio_SetInputPull_DEFAULT NULL #define PB_Gpio_GetPinMode_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, pin, 1) #define PB_Gpio_GetPinMode_CALLBACK NULL #define PB_Gpio_GetPinMode_DEFAULT NULL #define PB_Gpio_GetPinModeResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, mode, 1) #define PB_Gpio_GetPinModeResponse_CALLBACK NULL #define PB_Gpio_GetPinModeResponse_DEFAULT NULL #define PB_Gpio_ReadPin_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, pin, 1) #define PB_Gpio_ReadPin_CALLBACK NULL #define PB_Gpio_ReadPin_DEFAULT NULL #define PB_Gpio_ReadPinResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, value, 2) #define PB_Gpio_ReadPinResponse_CALLBACK NULL #define PB_Gpio_ReadPinResponse_DEFAULT NULL #define PB_Gpio_WritePin_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, pin, 1) \ X(a, STATIC, SINGULAR, UINT32, value, 2) #define PB_Gpio_WritePin_CALLBACK NULL #define PB_Gpio_WritePin_DEFAULT NULL extern const pb_msgdesc_t PB_Gpio_SetPinMode_msg; extern const pb_msgdesc_t PB_Gpio_SetInputPull_msg; extern const pb_msgdesc_t PB_Gpio_GetPinMode_msg; extern const pb_msgdesc_t PB_Gpio_GetPinModeResponse_msg; extern const pb_msgdesc_t PB_Gpio_ReadPin_msg; extern const pb_msgdesc_t PB_Gpio_ReadPinResponse_msg; extern const pb_msgdesc_t PB_Gpio_WritePin_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define PB_Gpio_SetPinMode_fields &PB_Gpio_SetPinMode_msg #define PB_Gpio_SetInputPull_fields &PB_Gpio_SetInputPull_msg #define PB_Gpio_GetPinMode_fields &PB_Gpio_GetPinMode_msg #define PB_Gpio_GetPinModeResponse_fields &PB_Gpio_GetPinModeResponse_msg #define PB_Gpio_ReadPin_fields &PB_Gpio_ReadPin_msg #define PB_Gpio_ReadPinResponse_fields &PB_Gpio_ReadPinResponse_msg #define PB_Gpio_WritePin_fields &PB_Gpio_WritePin_msg /* Maximum encoded size of messages (where known) */ #define PB_Gpio_GetPinModeResponse_size 2 #define PB_Gpio_GetPinMode_size 2 #define PB_Gpio_ReadPinResponse_size 6 #define PB_Gpio_ReadPin_size 2 #define PB_Gpio_SetInputPull_size 4 #define PB_Gpio_SetPinMode_size 4 #define PB_Gpio_WritePin_size 8 #ifdef __cplusplus } /* extern "C" */ #endif #endif flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/gui.pb.c000066400000000000000000000012731452337521700264360ustar00rootroot00000000000000/* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.4.6-dev */ #include "gui.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif PB_BIND(PB_Gui_ScreenFrame, PB_Gui_ScreenFrame, AUTO) PB_BIND(PB_Gui_StartScreenStreamRequest, PB_Gui_StartScreenStreamRequest, AUTO) PB_BIND(PB_Gui_StopScreenStreamRequest, PB_Gui_StopScreenStreamRequest, AUTO) PB_BIND(PB_Gui_SendInputEventRequest, PB_Gui_SendInputEventRequest, AUTO) PB_BIND(PB_Gui_StartVirtualDisplayRequest, PB_Gui_StartVirtualDisplayRequest, AUTO) PB_BIND(PB_Gui_StopVirtualDisplayRequest, PB_Gui_StopVirtualDisplayRequest, AUTO) flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/gui.pb.h000066400000000000000000000155121452337521700264440ustar00rootroot00000000000000/* Automatically generated nanopb header */ /* Generated by nanopb-0.4.6-dev */ #ifndef PB_PB_GUI_GUI_PB_H_INCLUDED #define PB_PB_GUI_GUI_PB_H_INCLUDED #include #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif /* Enum definitions */ typedef enum _PB_Gui_InputKey { PB_Gui_InputKey_UP = 0, PB_Gui_InputKey_DOWN = 1, PB_Gui_InputKey_RIGHT = 2, PB_Gui_InputKey_LEFT = 3, PB_Gui_InputKey_OK = 4, PB_Gui_InputKey_BACK = 5 } PB_Gui_InputKey; typedef enum _PB_Gui_InputType { PB_Gui_InputType_PRESS = 0, /* *< Press event, emitted after debounce */ PB_Gui_InputType_RELEASE = 1, /* *< Release event, emitted after debounce */ PB_Gui_InputType_SHORT = 2, /* *< Short event, emitted after InputTypeRelease done withing INPUT_LONG_PRESS interval */ PB_Gui_InputType_LONG = 3, /* *< Long event, emmited after INPUT_LONG_PRESS interval, asynchronouse to InputTypeRelease */ PB_Gui_InputType_REPEAT = 4 /* *< Repeat event, emmited with INPUT_REPEATE_PRESS period after InputTypeLong event */ } PB_Gui_InputType; typedef enum _PB_Gui_ScreenOrientation { PB_Gui_ScreenOrientation_HORIZONTAL = 0, /* *< Horizontal */ PB_Gui_ScreenOrientation_HORIZONTAL_FLIP = 1, /* *< Horizontal flipped (180) */ PB_Gui_ScreenOrientation_VERTICAL = 2, /* *< Vertical (90) */ PB_Gui_ScreenOrientation_VERTICAL_FLIP = 3 /* *< Vertical flipped */ } PB_Gui_ScreenOrientation; /* Struct definitions */ typedef struct _PB_Gui_StartScreenStreamRequest { char dummy_field; } PB_Gui_StartScreenStreamRequest; typedef struct _PB_Gui_StopScreenStreamRequest { char dummy_field; } PB_Gui_StopScreenStreamRequest; typedef struct _PB_Gui_StopVirtualDisplayRequest { char dummy_field; } PB_Gui_StopVirtualDisplayRequest; typedef struct _PB_Gui_ScreenFrame { pb_bytes_array_t *data; PB_Gui_ScreenOrientation orientation; } PB_Gui_ScreenFrame; typedef struct _PB_Gui_SendInputEventRequest { PB_Gui_InputKey key; PB_Gui_InputType type; } PB_Gui_SendInputEventRequest; typedef struct _PB_Gui_StartVirtualDisplayRequest { bool has_first_frame; PB_Gui_ScreenFrame first_frame; /* optional */ } PB_Gui_StartVirtualDisplayRequest; /* Helper constants for enums */ #define _PB_Gui_InputKey_MIN PB_Gui_InputKey_UP #define _PB_Gui_InputKey_MAX PB_Gui_InputKey_BACK #define _PB_Gui_InputKey_ARRAYSIZE ((PB_Gui_InputKey)(PB_Gui_InputKey_BACK+1)) #define _PB_Gui_InputType_MIN PB_Gui_InputType_PRESS #define _PB_Gui_InputType_MAX PB_Gui_InputType_REPEAT #define _PB_Gui_InputType_ARRAYSIZE ((PB_Gui_InputType)(PB_Gui_InputType_REPEAT+1)) #define _PB_Gui_ScreenOrientation_MIN PB_Gui_ScreenOrientation_HORIZONTAL #define _PB_Gui_ScreenOrientation_MAX PB_Gui_ScreenOrientation_VERTICAL_FLIP #define _PB_Gui_ScreenOrientation_ARRAYSIZE ((PB_Gui_ScreenOrientation)(PB_Gui_ScreenOrientation_VERTICAL_FLIP+1)) #ifdef __cplusplus extern "C" { #endif /* Initializer values for message structs */ #define PB_Gui_ScreenFrame_init_default {NULL, _PB_Gui_ScreenOrientation_MIN} #define PB_Gui_StartScreenStreamRequest_init_default {0} #define PB_Gui_StopScreenStreamRequest_init_default {0} #define PB_Gui_SendInputEventRequest_init_default {_PB_Gui_InputKey_MIN, _PB_Gui_InputType_MIN} #define PB_Gui_StartVirtualDisplayRequest_init_default {false, PB_Gui_ScreenFrame_init_default} #define PB_Gui_StopVirtualDisplayRequest_init_default {0} #define PB_Gui_ScreenFrame_init_zero {NULL, _PB_Gui_ScreenOrientation_MIN} #define PB_Gui_StartScreenStreamRequest_init_zero {0} #define PB_Gui_StopScreenStreamRequest_init_zero {0} #define PB_Gui_SendInputEventRequest_init_zero {_PB_Gui_InputKey_MIN, _PB_Gui_InputType_MIN} #define PB_Gui_StartVirtualDisplayRequest_init_zero {false, PB_Gui_ScreenFrame_init_zero} #define PB_Gui_StopVirtualDisplayRequest_init_zero {0} /* Field tags (for use in manual encoding/decoding) */ #define PB_Gui_ScreenFrame_data_tag 1 #define PB_Gui_ScreenFrame_orientation_tag 2 #define PB_Gui_SendInputEventRequest_key_tag 1 #define PB_Gui_SendInputEventRequest_type_tag 2 #define PB_Gui_StartVirtualDisplayRequest_first_frame_tag 1 /* Struct field encoding specification for nanopb */ #define PB_Gui_ScreenFrame_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, BYTES, data, 1) \ X(a, STATIC, SINGULAR, UENUM, orientation, 2) #define PB_Gui_ScreenFrame_CALLBACK NULL #define PB_Gui_ScreenFrame_DEFAULT NULL #define PB_Gui_StartScreenStreamRequest_FIELDLIST(X, a) \ #define PB_Gui_StartScreenStreamRequest_CALLBACK NULL #define PB_Gui_StartScreenStreamRequest_DEFAULT NULL #define PB_Gui_StopScreenStreamRequest_FIELDLIST(X, a) \ #define PB_Gui_StopScreenStreamRequest_CALLBACK NULL #define PB_Gui_StopScreenStreamRequest_DEFAULT NULL #define PB_Gui_SendInputEventRequest_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, key, 1) \ X(a, STATIC, SINGULAR, UENUM, type, 2) #define PB_Gui_SendInputEventRequest_CALLBACK NULL #define PB_Gui_SendInputEventRequest_DEFAULT NULL #define PB_Gui_StartVirtualDisplayRequest_FIELDLIST(X, a) \ X(a, STATIC, OPTIONAL, MESSAGE, first_frame, 1) #define PB_Gui_StartVirtualDisplayRequest_CALLBACK NULL #define PB_Gui_StartVirtualDisplayRequest_DEFAULT NULL #define PB_Gui_StartVirtualDisplayRequest_first_frame_MSGTYPE PB_Gui_ScreenFrame #define PB_Gui_StopVirtualDisplayRequest_FIELDLIST(X, a) \ #define PB_Gui_StopVirtualDisplayRequest_CALLBACK NULL #define PB_Gui_StopVirtualDisplayRequest_DEFAULT NULL extern const pb_msgdesc_t PB_Gui_ScreenFrame_msg; extern const pb_msgdesc_t PB_Gui_StartScreenStreamRequest_msg; extern const pb_msgdesc_t PB_Gui_StopScreenStreamRequest_msg; extern const pb_msgdesc_t PB_Gui_SendInputEventRequest_msg; extern const pb_msgdesc_t PB_Gui_StartVirtualDisplayRequest_msg; extern const pb_msgdesc_t PB_Gui_StopVirtualDisplayRequest_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define PB_Gui_ScreenFrame_fields &PB_Gui_ScreenFrame_msg #define PB_Gui_StartScreenStreamRequest_fields &PB_Gui_StartScreenStreamRequest_msg #define PB_Gui_StopScreenStreamRequest_fields &PB_Gui_StopScreenStreamRequest_msg #define PB_Gui_SendInputEventRequest_fields &PB_Gui_SendInputEventRequest_msg #define PB_Gui_StartVirtualDisplayRequest_fields &PB_Gui_StartVirtualDisplayRequest_msg #define PB_Gui_StopVirtualDisplayRequest_fields &PB_Gui_StopVirtualDisplayRequest_msg /* Maximum encoded size of messages (where known) */ /* PB_Gui_ScreenFrame_size depends on runtime parameters */ /* PB_Gui_StartVirtualDisplayRequest_size depends on runtime parameters */ #define PB_Gui_SendInputEventRequest_size 4 #define PB_Gui_StartScreenStreamRequest_size 0 #define PB_Gui_StopScreenStreamRequest_size 0 #define PB_Gui_StopVirtualDisplayRequest_size 0 #ifdef __cplusplus } /* extern "C" */ #endif #endif flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/property.pb.c000066400000000000000000000005571452337521700275420ustar00rootroot00000000000000/* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.4.6-dev */ #include "property.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif PB_BIND(PB_Property_GetRequest, PB_Property_GetRequest, AUTO) PB_BIND(PB_Property_GetResponse, PB_Property_GetResponse, AUTO) flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/property.pb.h000066400000000000000000000041111452337521700275350ustar00rootroot00000000000000/* Automatically generated nanopb header */ /* Generated by nanopb-0.4.6-dev */ #ifndef PB_PB_PROPERTY_PROPERTY_PB_H_INCLUDED #define PB_PB_PROPERTY_PROPERTY_PB_H_INCLUDED #include #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif /* Struct definitions */ typedef struct _PB_Property_GetRequest { char *key; } PB_Property_GetRequest; typedef struct _PB_Property_GetResponse { char *key; char *value; } PB_Property_GetResponse; #ifdef __cplusplus extern "C" { #endif /* Initializer values for message structs */ #define PB_Property_GetRequest_init_default {NULL} #define PB_Property_GetResponse_init_default {NULL, NULL} #define PB_Property_GetRequest_init_zero {NULL} #define PB_Property_GetResponse_init_zero {NULL, NULL} /* Field tags (for use in manual encoding/decoding) */ #define PB_Property_GetRequest_key_tag 1 #define PB_Property_GetResponse_key_tag 1 #define PB_Property_GetResponse_value_tag 2 /* Struct field encoding specification for nanopb */ #define PB_Property_GetRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, key, 1) #define PB_Property_GetRequest_CALLBACK NULL #define PB_Property_GetRequest_DEFAULT NULL #define PB_Property_GetResponse_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, key, 1) \ X(a, POINTER, SINGULAR, STRING, value, 2) #define PB_Property_GetResponse_CALLBACK NULL #define PB_Property_GetResponse_DEFAULT NULL extern const pb_msgdesc_t PB_Property_GetRequest_msg; extern const pb_msgdesc_t PB_Property_GetResponse_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define PB_Property_GetRequest_fields &PB_Property_GetRequest_msg #define PB_Property_GetResponse_fields &PB_Property_GetResponse_msg /* Maximum encoded size of messages (where known) */ /* PB_Property_GetRequest_size depends on runtime parameters */ /* PB_Property_GetResponse_size depends on runtime parameters */ #ifdef __cplusplus } /* extern "C" */ #endif #endif flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/status.pb.c000066400000000000000000000005511452337521700271730ustar00rootroot00000000000000/* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.4.6-dev */ #include "status.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif PB_BIND(PB_Status_PingRequest, PB_Status_PingRequest, AUTO) PB_BIND(PB_Status_PingResponse, PB_Status_PingResponse, AUTO) flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/status.pb.h000066400000000000000000000036751452337521700272120ustar00rootroot00000000000000/* Automatically generated nanopb header */ /* Generated by nanopb-0.4.6-dev */ #ifndef PB_PB_STATUS_STATUS_PB_H_INCLUDED #define PB_PB_STATUS_STATUS_PB_H_INCLUDED #include #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif /* Struct definitions */ typedef struct _PB_Status_PingRequest { pb_bytes_array_t *data; } PB_Status_PingRequest; typedef struct _PB_Status_PingResponse { pb_bytes_array_t *data; } PB_Status_PingResponse; #ifdef __cplusplus extern "C" { #endif /* Initializer values for message structs */ #define PB_Status_PingRequest_init_default {NULL} #define PB_Status_PingResponse_init_default {NULL} #define PB_Status_PingRequest_init_zero {NULL} #define PB_Status_PingResponse_init_zero {NULL} /* Field tags (for use in manual encoding/decoding) */ #define PB_Status_PingRequest_data_tag 1 #define PB_Status_PingResponse_data_tag 1 /* Struct field encoding specification for nanopb */ #define PB_Status_PingRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, BYTES, data, 1) #define PB_Status_PingRequest_CALLBACK NULL #define PB_Status_PingRequest_DEFAULT NULL #define PB_Status_PingResponse_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, BYTES, data, 1) #define PB_Status_PingResponse_CALLBACK NULL #define PB_Status_PingResponse_DEFAULT NULL extern const pb_msgdesc_t PB_Status_PingRequest_msg; extern const pb_msgdesc_t PB_Status_PingResponse_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define PB_Status_PingRequest_fields &PB_Status_PingRequest_msg #define PB_Status_PingResponse_fields &PB_Status_PingResponse_msg /* Maximum encoded size of messages (where known) */ /* PB_Status_PingRequest_size depends on runtime parameters */ /* PB_Status_PingResponse_size depends on runtime parameters */ #ifdef __cplusplus } /* extern "C" */ #endif #endif flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/storage.pb.c000066400000000000000000000027651452337521700273250ustar00rootroot00000000000000/* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.4.6-dev */ #include "storage.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif PB_BIND(PB_Storage_File, PB_Storage_File, AUTO) PB_BIND(PB_Storage_InfoRequest, PB_Storage_InfoRequest, AUTO) PB_BIND(PB_Storage_InfoResponse, PB_Storage_InfoResponse, AUTO) PB_BIND(PB_Storage_TimestampRequest, PB_Storage_TimestampRequest, AUTO) PB_BIND(PB_Storage_TimestampResponse, PB_Storage_TimestampResponse, AUTO) PB_BIND(PB_Storage_StatRequest, PB_Storage_StatRequest, AUTO) PB_BIND(PB_Storage_StatResponse, PB_Storage_StatResponse, AUTO) PB_BIND(PB_Storage_ListRequest, PB_Storage_ListRequest, AUTO) PB_BIND(PB_Storage_ListResponse, PB_Storage_ListResponse, AUTO) PB_BIND(PB_Storage_ReadRequest, PB_Storage_ReadRequest, AUTO) PB_BIND(PB_Storage_ReadResponse, PB_Storage_ReadResponse, AUTO) PB_BIND(PB_Storage_WriteRequest, PB_Storage_WriteRequest, AUTO) PB_BIND(PB_Storage_DeleteRequest, PB_Storage_DeleteRequest, AUTO) PB_BIND(PB_Storage_MkdirRequest, PB_Storage_MkdirRequest, AUTO) PB_BIND(PB_Storage_Md5sumRequest, PB_Storage_Md5sumRequest, AUTO) PB_BIND(PB_Storage_Md5sumResponse, PB_Storage_Md5sumResponse, AUTO) PB_BIND(PB_Storage_RenameRequest, PB_Storage_RenameRequest, AUTO) PB_BIND(PB_Storage_BackupCreateRequest, PB_Storage_BackupCreateRequest, AUTO) PB_BIND(PB_Storage_BackupRestoreRequest, PB_Storage_BackupRestoreRequest, AUTO) flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/storage.pb.h000066400000000000000000000362111452337521700273230ustar00rootroot00000000000000/* Automatically generated nanopb header */ /* Generated by nanopb-0.4.6-dev */ #ifndef PB_PB_STORAGE_STORAGE_PB_H_INCLUDED #define PB_PB_STORAGE_STORAGE_PB_H_INCLUDED #include #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif /* Enum definitions */ typedef enum _PB_Storage_File_FileType { PB_Storage_File_FileType_FILE = 0, PB_Storage_File_FileType_DIR = 1 } PB_Storage_File_FileType; /* Struct definitions */ typedef struct _PB_Storage_BackupCreateRequest { char *archive_path; } PB_Storage_BackupCreateRequest; typedef struct _PB_Storage_BackupRestoreRequest { char *archive_path; } PB_Storage_BackupRestoreRequest; typedef struct _PB_Storage_InfoRequest { char *path; } PB_Storage_InfoRequest; typedef struct _PB_Storage_ListRequest { char *path; } PB_Storage_ListRequest; typedef struct _PB_Storage_Md5sumRequest { char *path; } PB_Storage_Md5sumRequest; typedef struct _PB_Storage_MkdirRequest { char *path; } PB_Storage_MkdirRequest; typedef struct _PB_Storage_ReadRequest { char *path; } PB_Storage_ReadRequest; typedef struct _PB_Storage_RenameRequest { char *old_path; char *new_path; } PB_Storage_RenameRequest; typedef struct _PB_Storage_StatRequest { char *path; } PB_Storage_StatRequest; typedef struct _PB_Storage_TimestampRequest { char *path; } PB_Storage_TimestampRequest; typedef struct _PB_Storage_DeleteRequest { char *path; bool recursive; } PB_Storage_DeleteRequest; typedef struct _PB_Storage_File { PB_Storage_File_FileType type; char *name; uint32_t size; pb_bytes_array_t *data; } PB_Storage_File; typedef struct _PB_Storage_InfoResponse { uint64_t total_space; uint64_t free_space; } PB_Storage_InfoResponse; typedef struct _PB_Storage_Md5sumResponse { char md5sum[33]; } PB_Storage_Md5sumResponse; typedef struct _PB_Storage_TimestampResponse { uint32_t timestamp; } PB_Storage_TimestampResponse; typedef struct _PB_Storage_ListResponse { pb_size_t file_count; PB_Storage_File file[8]; } PB_Storage_ListResponse; typedef struct _PB_Storage_ReadResponse { bool has_file; PB_Storage_File file; } PB_Storage_ReadResponse; typedef struct _PB_Storage_StatResponse { bool has_file; PB_Storage_File file; } PB_Storage_StatResponse; typedef struct _PB_Storage_WriteRequest { char *path; bool has_file; PB_Storage_File file; } PB_Storage_WriteRequest; /* Helper constants for enums */ #define _PB_Storage_File_FileType_MIN PB_Storage_File_FileType_FILE #define _PB_Storage_File_FileType_MAX PB_Storage_File_FileType_DIR #define _PB_Storage_File_FileType_ARRAYSIZE ((PB_Storage_File_FileType)(PB_Storage_File_FileType_DIR+1)) #ifdef __cplusplus extern "C" { #endif /* Initializer values for message structs */ #define PB_Storage_File_init_default {_PB_Storage_File_FileType_MIN, NULL, 0, NULL} #define PB_Storage_InfoRequest_init_default {NULL} #define PB_Storage_InfoResponse_init_default {0, 0} #define PB_Storage_TimestampRequest_init_default {NULL} #define PB_Storage_TimestampResponse_init_default {0} #define PB_Storage_StatRequest_init_default {NULL} #define PB_Storage_StatResponse_init_default {false, PB_Storage_File_init_default} #define PB_Storage_ListRequest_init_default {NULL} #define PB_Storage_ListResponse_init_default {0, {PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default, PB_Storage_File_init_default}} #define PB_Storage_ReadRequest_init_default {NULL} #define PB_Storage_ReadResponse_init_default {false, PB_Storage_File_init_default} #define PB_Storage_WriteRequest_init_default {NULL, false, PB_Storage_File_init_default} #define PB_Storage_DeleteRequest_init_default {NULL, 0} #define PB_Storage_MkdirRequest_init_default {NULL} #define PB_Storage_Md5sumRequest_init_default {NULL} #define PB_Storage_Md5sumResponse_init_default {""} #define PB_Storage_RenameRequest_init_default {NULL, NULL} #define PB_Storage_BackupCreateRequest_init_default {NULL} #define PB_Storage_BackupRestoreRequest_init_default {NULL} #define PB_Storage_File_init_zero {_PB_Storage_File_FileType_MIN, NULL, 0, NULL} #define PB_Storage_InfoRequest_init_zero {NULL} #define PB_Storage_InfoResponse_init_zero {0, 0} #define PB_Storage_TimestampRequest_init_zero {NULL} #define PB_Storage_TimestampResponse_init_zero {0} #define PB_Storage_StatRequest_init_zero {NULL} #define PB_Storage_StatResponse_init_zero {false, PB_Storage_File_init_zero} #define PB_Storage_ListRequest_init_zero {NULL} #define PB_Storage_ListResponse_init_zero {0, {PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero, PB_Storage_File_init_zero}} #define PB_Storage_ReadRequest_init_zero {NULL} #define PB_Storage_ReadResponse_init_zero {false, PB_Storage_File_init_zero} #define PB_Storage_WriteRequest_init_zero {NULL, false, PB_Storage_File_init_zero} #define PB_Storage_DeleteRequest_init_zero {NULL, 0} #define PB_Storage_MkdirRequest_init_zero {NULL} #define PB_Storage_Md5sumRequest_init_zero {NULL} #define PB_Storage_Md5sumResponse_init_zero {""} #define PB_Storage_RenameRequest_init_zero {NULL, NULL} #define PB_Storage_BackupCreateRequest_init_zero {NULL} #define PB_Storage_BackupRestoreRequest_init_zero {NULL} /* Field tags (for use in manual encoding/decoding) */ #define PB_Storage_BackupCreateRequest_archive_path_tag 1 #define PB_Storage_BackupRestoreRequest_archive_path_tag 1 #define PB_Storage_InfoRequest_path_tag 1 #define PB_Storage_ListRequest_path_tag 1 #define PB_Storage_Md5sumRequest_path_tag 1 #define PB_Storage_MkdirRequest_path_tag 1 #define PB_Storage_ReadRequest_path_tag 1 #define PB_Storage_RenameRequest_old_path_tag 1 #define PB_Storage_RenameRequest_new_path_tag 2 #define PB_Storage_StatRequest_path_tag 1 #define PB_Storage_TimestampRequest_path_tag 1 #define PB_Storage_DeleteRequest_path_tag 1 #define PB_Storage_DeleteRequest_recursive_tag 2 #define PB_Storage_File_type_tag 1 #define PB_Storage_File_name_tag 2 #define PB_Storage_File_size_tag 3 #define PB_Storage_File_data_tag 4 #define PB_Storage_InfoResponse_total_space_tag 1 #define PB_Storage_InfoResponse_free_space_tag 2 #define PB_Storage_Md5sumResponse_md5sum_tag 1 #define PB_Storage_TimestampResponse_timestamp_tag 1 #define PB_Storage_ListResponse_file_tag 1 #define PB_Storage_ReadResponse_file_tag 1 #define PB_Storage_StatResponse_file_tag 1 #define PB_Storage_WriteRequest_path_tag 1 #define PB_Storage_WriteRequest_file_tag 2 /* Struct field encoding specification for nanopb */ #define PB_Storage_File_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, type, 1) \ X(a, POINTER, SINGULAR, STRING, name, 2) \ X(a, STATIC, SINGULAR, UINT32, size, 3) \ X(a, POINTER, SINGULAR, BYTES, data, 4) #define PB_Storage_File_CALLBACK NULL #define PB_Storage_File_DEFAULT NULL #define PB_Storage_InfoRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, path, 1) #define PB_Storage_InfoRequest_CALLBACK NULL #define PB_Storage_InfoRequest_DEFAULT NULL #define PB_Storage_InfoResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT64, total_space, 1) \ X(a, STATIC, SINGULAR, UINT64, free_space, 2) #define PB_Storage_InfoResponse_CALLBACK NULL #define PB_Storage_InfoResponse_DEFAULT NULL #define PB_Storage_TimestampRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, path, 1) #define PB_Storage_TimestampRequest_CALLBACK NULL #define PB_Storage_TimestampRequest_DEFAULT NULL #define PB_Storage_TimestampResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, timestamp, 1) #define PB_Storage_TimestampResponse_CALLBACK NULL #define PB_Storage_TimestampResponse_DEFAULT NULL #define PB_Storage_StatRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, path, 1) #define PB_Storage_StatRequest_CALLBACK NULL #define PB_Storage_StatRequest_DEFAULT NULL #define PB_Storage_StatResponse_FIELDLIST(X, a) \ X(a, STATIC, OPTIONAL, MESSAGE, file, 1) #define PB_Storage_StatResponse_CALLBACK NULL #define PB_Storage_StatResponse_DEFAULT NULL #define PB_Storage_StatResponse_file_MSGTYPE PB_Storage_File #define PB_Storage_ListRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, path, 1) #define PB_Storage_ListRequest_CALLBACK NULL #define PB_Storage_ListRequest_DEFAULT NULL #define PB_Storage_ListResponse_FIELDLIST(X, a) \ X(a, STATIC, REPEATED, MESSAGE, file, 1) #define PB_Storage_ListResponse_CALLBACK NULL #define PB_Storage_ListResponse_DEFAULT NULL #define PB_Storage_ListResponse_file_MSGTYPE PB_Storage_File #define PB_Storage_ReadRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, path, 1) #define PB_Storage_ReadRequest_CALLBACK NULL #define PB_Storage_ReadRequest_DEFAULT NULL #define PB_Storage_ReadResponse_FIELDLIST(X, a) \ X(a, STATIC, OPTIONAL, MESSAGE, file, 1) #define PB_Storage_ReadResponse_CALLBACK NULL #define PB_Storage_ReadResponse_DEFAULT NULL #define PB_Storage_ReadResponse_file_MSGTYPE PB_Storage_File #define PB_Storage_WriteRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, path, 1) \ X(a, STATIC, OPTIONAL, MESSAGE, file, 2) #define PB_Storage_WriteRequest_CALLBACK NULL #define PB_Storage_WriteRequest_DEFAULT NULL #define PB_Storage_WriteRequest_file_MSGTYPE PB_Storage_File #define PB_Storage_DeleteRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, path, 1) \ X(a, STATIC, SINGULAR, BOOL, recursive, 2) #define PB_Storage_DeleteRequest_CALLBACK NULL #define PB_Storage_DeleteRequest_DEFAULT NULL #define PB_Storage_MkdirRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, path, 1) #define PB_Storage_MkdirRequest_CALLBACK NULL #define PB_Storage_MkdirRequest_DEFAULT NULL #define PB_Storage_Md5sumRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, path, 1) #define PB_Storage_Md5sumRequest_CALLBACK NULL #define PB_Storage_Md5sumRequest_DEFAULT NULL #define PB_Storage_Md5sumResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, STRING, md5sum, 1) #define PB_Storage_Md5sumResponse_CALLBACK NULL #define PB_Storage_Md5sumResponse_DEFAULT NULL #define PB_Storage_RenameRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, old_path, 1) \ X(a, POINTER, SINGULAR, STRING, new_path, 2) #define PB_Storage_RenameRequest_CALLBACK NULL #define PB_Storage_RenameRequest_DEFAULT NULL #define PB_Storage_BackupCreateRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, archive_path, 1) #define PB_Storage_BackupCreateRequest_CALLBACK NULL #define PB_Storage_BackupCreateRequest_DEFAULT NULL #define PB_Storage_BackupRestoreRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, archive_path, 1) #define PB_Storage_BackupRestoreRequest_CALLBACK NULL #define PB_Storage_BackupRestoreRequest_DEFAULT NULL extern const pb_msgdesc_t PB_Storage_File_msg; extern const pb_msgdesc_t PB_Storage_InfoRequest_msg; extern const pb_msgdesc_t PB_Storage_InfoResponse_msg; extern const pb_msgdesc_t PB_Storage_TimestampRequest_msg; extern const pb_msgdesc_t PB_Storage_TimestampResponse_msg; extern const pb_msgdesc_t PB_Storage_StatRequest_msg; extern const pb_msgdesc_t PB_Storage_StatResponse_msg; extern const pb_msgdesc_t PB_Storage_ListRequest_msg; extern const pb_msgdesc_t PB_Storage_ListResponse_msg; extern const pb_msgdesc_t PB_Storage_ReadRequest_msg; extern const pb_msgdesc_t PB_Storage_ReadResponse_msg; extern const pb_msgdesc_t PB_Storage_WriteRequest_msg; extern const pb_msgdesc_t PB_Storage_DeleteRequest_msg; extern const pb_msgdesc_t PB_Storage_MkdirRequest_msg; extern const pb_msgdesc_t PB_Storage_Md5sumRequest_msg; extern const pb_msgdesc_t PB_Storage_Md5sumResponse_msg; extern const pb_msgdesc_t PB_Storage_RenameRequest_msg; extern const pb_msgdesc_t PB_Storage_BackupCreateRequest_msg; extern const pb_msgdesc_t PB_Storage_BackupRestoreRequest_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define PB_Storage_File_fields &PB_Storage_File_msg #define PB_Storage_InfoRequest_fields &PB_Storage_InfoRequest_msg #define PB_Storage_InfoResponse_fields &PB_Storage_InfoResponse_msg #define PB_Storage_TimestampRequest_fields &PB_Storage_TimestampRequest_msg #define PB_Storage_TimestampResponse_fields &PB_Storage_TimestampResponse_msg #define PB_Storage_StatRequest_fields &PB_Storage_StatRequest_msg #define PB_Storage_StatResponse_fields &PB_Storage_StatResponse_msg #define PB_Storage_ListRequest_fields &PB_Storage_ListRequest_msg #define PB_Storage_ListResponse_fields &PB_Storage_ListResponse_msg #define PB_Storage_ReadRequest_fields &PB_Storage_ReadRequest_msg #define PB_Storage_ReadResponse_fields &PB_Storage_ReadResponse_msg #define PB_Storage_WriteRequest_fields &PB_Storage_WriteRequest_msg #define PB_Storage_DeleteRequest_fields &PB_Storage_DeleteRequest_msg #define PB_Storage_MkdirRequest_fields &PB_Storage_MkdirRequest_msg #define PB_Storage_Md5sumRequest_fields &PB_Storage_Md5sumRequest_msg #define PB_Storage_Md5sumResponse_fields &PB_Storage_Md5sumResponse_msg #define PB_Storage_RenameRequest_fields &PB_Storage_RenameRequest_msg #define PB_Storage_BackupCreateRequest_fields &PB_Storage_BackupCreateRequest_msg #define PB_Storage_BackupRestoreRequest_fields &PB_Storage_BackupRestoreRequest_msg /* Maximum encoded size of messages (where known) */ /* PB_Storage_File_size depends on runtime parameters */ /* PB_Storage_InfoRequest_size depends on runtime parameters */ /* PB_Storage_TimestampRequest_size depends on runtime parameters */ /* PB_Storage_StatRequest_size depends on runtime parameters */ /* PB_Storage_StatResponse_size depends on runtime parameters */ /* PB_Storage_ListRequest_size depends on runtime parameters */ /* PB_Storage_ListResponse_size depends on runtime parameters */ /* PB_Storage_ReadRequest_size depends on runtime parameters */ /* PB_Storage_ReadResponse_size depends on runtime parameters */ /* PB_Storage_WriteRequest_size depends on runtime parameters */ /* PB_Storage_DeleteRequest_size depends on runtime parameters */ /* PB_Storage_MkdirRequest_size depends on runtime parameters */ /* PB_Storage_Md5sumRequest_size depends on runtime parameters */ /* PB_Storage_RenameRequest_size depends on runtime parameters */ /* PB_Storage_BackupCreateRequest_size depends on runtime parameters */ /* PB_Storage_BackupRestoreRequest_size depends on runtime parameters */ #define PB_Storage_InfoResponse_size 22 #define PB_Storage_Md5sumResponse_size 34 #define PB_Storage_TimestampResponse_size 6 #ifdef __cplusplus } /* extern "C" */ #endif #endif flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/system.pb.c000066400000000000000000000027171452337521700272020ustar00rootroot00000000000000/* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.4.6-dev */ #include "system.pb.h" #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif PB_BIND(PB_System_PingRequest, PB_System_PingRequest, AUTO) PB_BIND(PB_System_PingResponse, PB_System_PingResponse, AUTO) PB_BIND(PB_System_RebootRequest, PB_System_RebootRequest, AUTO) PB_BIND(PB_System_DeviceInfoRequest, PB_System_DeviceInfoRequest, AUTO) PB_BIND(PB_System_DeviceInfoResponse, PB_System_DeviceInfoResponse, AUTO) PB_BIND(PB_System_FactoryResetRequest, PB_System_FactoryResetRequest, AUTO) PB_BIND(PB_System_GetDateTimeRequest, PB_System_GetDateTimeRequest, AUTO) PB_BIND(PB_System_GetDateTimeResponse, PB_System_GetDateTimeResponse, AUTO) PB_BIND(PB_System_SetDateTimeRequest, PB_System_SetDateTimeRequest, AUTO) PB_BIND(PB_System_DateTime, PB_System_DateTime, AUTO) PB_BIND(PB_System_PlayAudiovisualAlertRequest, PB_System_PlayAudiovisualAlertRequest, AUTO) PB_BIND(PB_System_ProtobufVersionRequest, PB_System_ProtobufVersionRequest, AUTO) PB_BIND(PB_System_ProtobufVersionResponse, PB_System_ProtobufVersionResponse, AUTO) PB_BIND(PB_System_UpdateRequest, PB_System_UpdateRequest, AUTO) PB_BIND(PB_System_UpdateResponse, PB_System_UpdateResponse, AUTO) PB_BIND(PB_System_PowerInfoRequest, PB_System_PowerInfoRequest, AUTO) PB_BIND(PB_System_PowerInfoResponse, PB_System_PowerInfoResponse, AUTO) flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messages/system.pb.h000066400000000000000000000355701452337521700272120ustar00rootroot00000000000000/* Automatically generated nanopb header */ /* Generated by nanopb-0.4.6-dev */ #ifndef PB_PB_SYSTEM_SYSTEM_PB_H_INCLUDED #define PB_PB_SYSTEM_SYSTEM_PB_H_INCLUDED #include #if PB_PROTO_HEADER_VERSION != 40 #error Regenerate this file with the current version of nanopb generator. #endif /* Enum definitions */ typedef enum _PB_System_RebootRequest_RebootMode { PB_System_RebootRequest_RebootMode_OS = 0, PB_System_RebootRequest_RebootMode_DFU = 1, PB_System_RebootRequest_RebootMode_UPDATE = 2 } PB_System_RebootRequest_RebootMode; typedef enum _PB_System_UpdateResponse_UpdateResultCode { PB_System_UpdateResponse_UpdateResultCode_OK = 0, PB_System_UpdateResponse_UpdateResultCode_ManifestPathInvalid = 1, PB_System_UpdateResponse_UpdateResultCode_ManifestFolderNotFound = 2, PB_System_UpdateResponse_UpdateResultCode_ManifestInvalid = 3, PB_System_UpdateResponse_UpdateResultCode_StageMissing = 4, PB_System_UpdateResponse_UpdateResultCode_StageIntegrityError = 5, PB_System_UpdateResponse_UpdateResultCode_ManifestPointerError = 6, PB_System_UpdateResponse_UpdateResultCode_TargetMismatch = 7, PB_System_UpdateResponse_UpdateResultCode_OutdatedManifestVersion = 8, PB_System_UpdateResponse_UpdateResultCode_IntFull = 9, PB_System_UpdateResponse_UpdateResultCode_UnspecifiedError = 10 } PB_System_UpdateResponse_UpdateResultCode; /* Struct definitions */ typedef struct _PB_System_DeviceInfoRequest { char dummy_field; } PB_System_DeviceInfoRequest; typedef struct _PB_System_DeviceInfoResponse { char *key; char *value; } PB_System_DeviceInfoResponse; typedef struct _PB_System_FactoryResetRequest { char dummy_field; } PB_System_FactoryResetRequest; typedef struct _PB_System_GetDateTimeRequest { char dummy_field; } PB_System_GetDateTimeRequest; typedef struct _PB_System_PingRequest { pb_bytes_array_t *data; } PB_System_PingRequest; typedef struct _PB_System_PingResponse { pb_bytes_array_t *data; } PB_System_PingResponse; typedef struct _PB_System_PlayAudiovisualAlertRequest { char dummy_field; } PB_System_PlayAudiovisualAlertRequest; typedef struct _PB_System_PowerInfoRequest { char dummy_field; } PB_System_PowerInfoRequest; typedef struct _PB_System_PowerInfoResponse { char *key; char *value; } PB_System_PowerInfoResponse; typedef struct _PB_System_ProtobufVersionRequest { char dummy_field; } PB_System_ProtobufVersionRequest; typedef struct _PB_System_UpdateRequest { char *update_manifest; } PB_System_UpdateRequest; typedef struct _PB_System_DateTime { /* Time */ uint8_t hour; /* *< Hour in 24H format: 0-23 */ uint8_t minute; /* *< Minute: 0-59 */ uint8_t second; /* *< Second: 0-59 */ /* Date */ uint8_t day; /* *< Current day: 1-31 */ uint8_t month; /* *< Current month: 1-12 */ uint16_t year; /* *< Current year: 2000-2099 */ uint8_t weekday; /* *< Current weekday: 1-7 */ } PB_System_DateTime; typedef struct _PB_System_ProtobufVersionResponse { uint32_t major; uint32_t minor; } PB_System_ProtobufVersionResponse; typedef struct _PB_System_RebootRequest { PB_System_RebootRequest_RebootMode mode; } PB_System_RebootRequest; typedef struct _PB_System_UpdateResponse { PB_System_UpdateResponse_UpdateResultCode code; } PB_System_UpdateResponse; typedef struct _PB_System_GetDateTimeResponse { bool has_datetime; PB_System_DateTime datetime; } PB_System_GetDateTimeResponse; typedef struct _PB_System_SetDateTimeRequest { bool has_datetime; PB_System_DateTime datetime; } PB_System_SetDateTimeRequest; /* Helper constants for enums */ #define _PB_System_RebootRequest_RebootMode_MIN PB_System_RebootRequest_RebootMode_OS #define _PB_System_RebootRequest_RebootMode_MAX PB_System_RebootRequest_RebootMode_UPDATE #define _PB_System_RebootRequest_RebootMode_ARRAYSIZE ((PB_System_RebootRequest_RebootMode)(PB_System_RebootRequest_RebootMode_UPDATE+1)) #define _PB_System_UpdateResponse_UpdateResultCode_MIN PB_System_UpdateResponse_UpdateResultCode_OK #define _PB_System_UpdateResponse_UpdateResultCode_MAX PB_System_UpdateResponse_UpdateResultCode_UnspecifiedError #define _PB_System_UpdateResponse_UpdateResultCode_ARRAYSIZE ((PB_System_UpdateResponse_UpdateResultCode)(PB_System_UpdateResponse_UpdateResultCode_UnspecifiedError+1)) #ifdef __cplusplus extern "C" { #endif /* Initializer values for message structs */ #define PB_System_PingRequest_init_default {NULL} #define PB_System_PingResponse_init_default {NULL} #define PB_System_RebootRequest_init_default {_PB_System_RebootRequest_RebootMode_MIN} #define PB_System_DeviceInfoRequest_init_default {0} #define PB_System_DeviceInfoResponse_init_default {NULL, NULL} #define PB_System_FactoryResetRequest_init_default {0} #define PB_System_GetDateTimeRequest_init_default {0} #define PB_System_GetDateTimeResponse_init_default {false, PB_System_DateTime_init_default} #define PB_System_SetDateTimeRequest_init_default {false, PB_System_DateTime_init_default} #define PB_System_DateTime_init_default {0, 0, 0, 0, 0, 0, 0} #define PB_System_PlayAudiovisualAlertRequest_init_default {0} #define PB_System_ProtobufVersionRequest_init_default {0} #define PB_System_ProtobufVersionResponse_init_default {0, 0} #define PB_System_UpdateRequest_init_default {NULL} #define PB_System_UpdateResponse_init_default {_PB_System_UpdateResponse_UpdateResultCode_MIN} #define PB_System_PowerInfoRequest_init_default {0} #define PB_System_PowerInfoResponse_init_default {NULL, NULL} #define PB_System_PingRequest_init_zero {NULL} #define PB_System_PingResponse_init_zero {NULL} #define PB_System_RebootRequest_init_zero {_PB_System_RebootRequest_RebootMode_MIN} #define PB_System_DeviceInfoRequest_init_zero {0} #define PB_System_DeviceInfoResponse_init_zero {NULL, NULL} #define PB_System_FactoryResetRequest_init_zero {0} #define PB_System_GetDateTimeRequest_init_zero {0} #define PB_System_GetDateTimeResponse_init_zero {false, PB_System_DateTime_init_zero} #define PB_System_SetDateTimeRequest_init_zero {false, PB_System_DateTime_init_zero} #define PB_System_DateTime_init_zero {0, 0, 0, 0, 0, 0, 0} #define PB_System_PlayAudiovisualAlertRequest_init_zero {0} #define PB_System_ProtobufVersionRequest_init_zero {0} #define PB_System_ProtobufVersionResponse_init_zero {0, 0} #define PB_System_UpdateRequest_init_zero {NULL} #define PB_System_UpdateResponse_init_zero {_PB_System_UpdateResponse_UpdateResultCode_MIN} #define PB_System_PowerInfoRequest_init_zero {0} #define PB_System_PowerInfoResponse_init_zero {NULL, NULL} /* Field tags (for use in manual encoding/decoding) */ #define PB_System_DeviceInfoResponse_key_tag 1 #define PB_System_DeviceInfoResponse_value_tag 2 #define PB_System_PingRequest_data_tag 1 #define PB_System_PingResponse_data_tag 1 #define PB_System_PowerInfoResponse_key_tag 1 #define PB_System_PowerInfoResponse_value_tag 2 #define PB_System_UpdateRequest_update_manifest_tag 1 #define PB_System_DateTime_hour_tag 1 #define PB_System_DateTime_minute_tag 2 #define PB_System_DateTime_second_tag 3 #define PB_System_DateTime_day_tag 4 #define PB_System_DateTime_month_tag 5 #define PB_System_DateTime_year_tag 6 #define PB_System_DateTime_weekday_tag 7 #define PB_System_ProtobufVersionResponse_major_tag 1 #define PB_System_ProtobufVersionResponse_minor_tag 2 #define PB_System_RebootRequest_mode_tag 1 #define PB_System_UpdateResponse_code_tag 1 #define PB_System_GetDateTimeResponse_datetime_tag 1 #define PB_System_SetDateTimeRequest_datetime_tag 1 /* Struct field encoding specification for nanopb */ #define PB_System_PingRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, BYTES, data, 1) #define PB_System_PingRequest_CALLBACK NULL #define PB_System_PingRequest_DEFAULT NULL #define PB_System_PingResponse_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, BYTES, data, 1) #define PB_System_PingResponse_CALLBACK NULL #define PB_System_PingResponse_DEFAULT NULL #define PB_System_RebootRequest_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, mode, 1) #define PB_System_RebootRequest_CALLBACK NULL #define PB_System_RebootRequest_DEFAULT NULL #define PB_System_DeviceInfoRequest_FIELDLIST(X, a) \ #define PB_System_DeviceInfoRequest_CALLBACK NULL #define PB_System_DeviceInfoRequest_DEFAULT NULL #define PB_System_DeviceInfoResponse_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, key, 1) \ X(a, POINTER, SINGULAR, STRING, value, 2) #define PB_System_DeviceInfoResponse_CALLBACK NULL #define PB_System_DeviceInfoResponse_DEFAULT NULL #define PB_System_FactoryResetRequest_FIELDLIST(X, a) \ #define PB_System_FactoryResetRequest_CALLBACK NULL #define PB_System_FactoryResetRequest_DEFAULT NULL #define PB_System_GetDateTimeRequest_FIELDLIST(X, a) \ #define PB_System_GetDateTimeRequest_CALLBACK NULL #define PB_System_GetDateTimeRequest_DEFAULT NULL #define PB_System_GetDateTimeResponse_FIELDLIST(X, a) \ X(a, STATIC, OPTIONAL, MESSAGE, datetime, 1) #define PB_System_GetDateTimeResponse_CALLBACK NULL #define PB_System_GetDateTimeResponse_DEFAULT NULL #define PB_System_GetDateTimeResponse_datetime_MSGTYPE PB_System_DateTime #define PB_System_SetDateTimeRequest_FIELDLIST(X, a) \ X(a, STATIC, OPTIONAL, MESSAGE, datetime, 1) #define PB_System_SetDateTimeRequest_CALLBACK NULL #define PB_System_SetDateTimeRequest_DEFAULT NULL #define PB_System_SetDateTimeRequest_datetime_MSGTYPE PB_System_DateTime #define PB_System_DateTime_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, hour, 1) \ X(a, STATIC, SINGULAR, UINT32, minute, 2) \ X(a, STATIC, SINGULAR, UINT32, second, 3) \ X(a, STATIC, SINGULAR, UINT32, day, 4) \ X(a, STATIC, SINGULAR, UINT32, month, 5) \ X(a, STATIC, SINGULAR, UINT32, year, 6) \ X(a, STATIC, SINGULAR, UINT32, weekday, 7) #define PB_System_DateTime_CALLBACK NULL #define PB_System_DateTime_DEFAULT NULL #define PB_System_PlayAudiovisualAlertRequest_FIELDLIST(X, a) \ #define PB_System_PlayAudiovisualAlertRequest_CALLBACK NULL #define PB_System_PlayAudiovisualAlertRequest_DEFAULT NULL #define PB_System_ProtobufVersionRequest_FIELDLIST(X, a) \ #define PB_System_ProtobufVersionRequest_CALLBACK NULL #define PB_System_ProtobufVersionRequest_DEFAULT NULL #define PB_System_ProtobufVersionResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, major, 1) \ X(a, STATIC, SINGULAR, UINT32, minor, 2) #define PB_System_ProtobufVersionResponse_CALLBACK NULL #define PB_System_ProtobufVersionResponse_DEFAULT NULL #define PB_System_UpdateRequest_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, update_manifest, 1) #define PB_System_UpdateRequest_CALLBACK NULL #define PB_System_UpdateRequest_DEFAULT NULL #define PB_System_UpdateResponse_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, code, 1) #define PB_System_UpdateResponse_CALLBACK NULL #define PB_System_UpdateResponse_DEFAULT NULL #define PB_System_PowerInfoRequest_FIELDLIST(X, a) \ #define PB_System_PowerInfoRequest_CALLBACK NULL #define PB_System_PowerInfoRequest_DEFAULT NULL #define PB_System_PowerInfoResponse_FIELDLIST(X, a) \ X(a, POINTER, SINGULAR, STRING, key, 1) \ X(a, POINTER, SINGULAR, STRING, value, 2) #define PB_System_PowerInfoResponse_CALLBACK NULL #define PB_System_PowerInfoResponse_DEFAULT NULL extern const pb_msgdesc_t PB_System_PingRequest_msg; extern const pb_msgdesc_t PB_System_PingResponse_msg; extern const pb_msgdesc_t PB_System_RebootRequest_msg; extern const pb_msgdesc_t PB_System_DeviceInfoRequest_msg; extern const pb_msgdesc_t PB_System_DeviceInfoResponse_msg; extern const pb_msgdesc_t PB_System_FactoryResetRequest_msg; extern const pb_msgdesc_t PB_System_GetDateTimeRequest_msg; extern const pb_msgdesc_t PB_System_GetDateTimeResponse_msg; extern const pb_msgdesc_t PB_System_SetDateTimeRequest_msg; extern const pb_msgdesc_t PB_System_DateTime_msg; extern const pb_msgdesc_t PB_System_PlayAudiovisualAlertRequest_msg; extern const pb_msgdesc_t PB_System_ProtobufVersionRequest_msg; extern const pb_msgdesc_t PB_System_ProtobufVersionResponse_msg; extern const pb_msgdesc_t PB_System_UpdateRequest_msg; extern const pb_msgdesc_t PB_System_UpdateResponse_msg; extern const pb_msgdesc_t PB_System_PowerInfoRequest_msg; extern const pb_msgdesc_t PB_System_PowerInfoResponse_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define PB_System_PingRequest_fields &PB_System_PingRequest_msg #define PB_System_PingResponse_fields &PB_System_PingResponse_msg #define PB_System_RebootRequest_fields &PB_System_RebootRequest_msg #define PB_System_DeviceInfoRequest_fields &PB_System_DeviceInfoRequest_msg #define PB_System_DeviceInfoResponse_fields &PB_System_DeviceInfoResponse_msg #define PB_System_FactoryResetRequest_fields &PB_System_FactoryResetRequest_msg #define PB_System_GetDateTimeRequest_fields &PB_System_GetDateTimeRequest_msg #define PB_System_GetDateTimeResponse_fields &PB_System_GetDateTimeResponse_msg #define PB_System_SetDateTimeRequest_fields &PB_System_SetDateTimeRequest_msg #define PB_System_DateTime_fields &PB_System_DateTime_msg #define PB_System_PlayAudiovisualAlertRequest_fields &PB_System_PlayAudiovisualAlertRequest_msg #define PB_System_ProtobufVersionRequest_fields &PB_System_ProtobufVersionRequest_msg #define PB_System_ProtobufVersionResponse_fields &PB_System_ProtobufVersionResponse_msg #define PB_System_UpdateRequest_fields &PB_System_UpdateRequest_msg #define PB_System_UpdateResponse_fields &PB_System_UpdateResponse_msg #define PB_System_PowerInfoRequest_fields &PB_System_PowerInfoRequest_msg #define PB_System_PowerInfoResponse_fields &PB_System_PowerInfoResponse_msg /* Maximum encoded size of messages (where known) */ /* PB_System_PingRequest_size depends on runtime parameters */ /* PB_System_PingResponse_size depends on runtime parameters */ /* PB_System_DeviceInfoResponse_size depends on runtime parameters */ /* PB_System_UpdateRequest_size depends on runtime parameters */ /* PB_System_PowerInfoResponse_size depends on runtime parameters */ #define PB_System_DateTime_size 22 #define PB_System_DeviceInfoRequest_size 0 #define PB_System_FactoryResetRequest_size 0 #define PB_System_GetDateTimeRequest_size 0 #define PB_System_GetDateTimeResponse_size 24 #define PB_System_PlayAudiovisualAlertRequest_size 0 #define PB_System_PowerInfoRequest_size 0 #define PB_System_ProtobufVersionRequest_size 0 #define PB_System_ProtobufVersionResponse_size 12 #define PB_System_RebootRequest_size 2 #define PB_System_SetDateTimeRequest_size 24 #define PB_System_UpdateResponse_size 2 #ifdef __cplusplus } /* extern "C" */ #endif #endif flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messagewrapper.cpp000066400000000000000000000017151452337521700270310ustar00rootroot00000000000000#include "messagewrapper.h" #include "pb_decode.h" #include "mainresponse.h" MessageWrapper::MessageWrapper(const QByteArray &buffer): m_message(PB_Main_init_zero) { pb_istream_t s = pb_istream_from_buffer((const pb_byte_t*)buffer.data(), buffer.size()); m_isComplete = pb_decode_ex(&s, &PB_Main_msg, &m_message, PB_DECODE_DELIMITED); m_encodedSize = buffer.size() - s.bytes_left; } MessageWrapper::MessageWrapper(MessageWrapper &&other): m_message(other.m_message), m_encodedSize(other.m_encodedSize), m_isComplete(other.m_isComplete) { // Prevent potential double-free other.m_isComplete = false; } MessageWrapper::~MessageWrapper() { if(m_isComplete) { pb_release(&PB_Main_msg, &m_message); } } const PB_Main &MessageWrapper::message() const { return m_message; } size_t MessageWrapper::encodedSize() const { return m_encodedSize; } bool MessageWrapper::isComplete() const { return m_isComplete; } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/messagewrapper.h000066400000000000000000000006161452337521700264750ustar00rootroot00000000000000#pragma once #include #include "messages/flipper.pb.h" class MessageWrapper { public: MessageWrapper(const QByteArray &buffer); MessageWrapper(MessageWrapper &&other); ~MessageWrapper(); const PB_Main &message() const; size_t encodedSize() const; bool isComplete() const; private: PB_Main m_message; size_t m_encodedSize; bool m_isComplete; }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/propertyrequest.cpp000066400000000000000000000004201452337521700272710ustar00rootroot00000000000000#include "propertyrequest.h" PropertyGetRequest::PropertyGetRequest(uint32_t id, const QByteArray &key): MainRequest(id, PB_Main_property_get_request_tag), m_key(key) { auto &content = m_message.content.property_get_request; content.key = m_key.data(); } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/propertyrequest.h000066400000000000000000000002771452337521700267500ustar00rootroot00000000000000#pragma once #include "mainrequest.h" class PropertyGetRequest : public MainRequest { public: PropertyGetRequest(uint32_t id, const QByteArray &key); private: QByteArray m_key; }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/propertyresponse.cpp000066400000000000000000000005721452337521700274470ustar00rootroot00000000000000#include "propertyresponse.h" PropertyGetResponse::PropertyGetResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} const QByteArray PropertyGetResponse::key() const { return message().content.property_get_response.key; } const QByteArray PropertyGetResponse::value() const { return message().content.property_get_response.value; } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/propertyresponse.h000066400000000000000000000006251452337521700271130ustar00rootroot00000000000000#pragma once #include "mainresponse.h" #include "propertyresponseinterface.h" class PropertyGetResponse : public MainResponse, public PropertyGetResponseInterface { Q_OBJECT Q_INTERFACES(PropertyGetResponseInterface) public: PropertyGetResponse(MessageWrapper &wrapper, QObject *parent = nullptr); const QByteArray key() const override; const QByteArray value() const override; }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/protobufplugin.cpp000066400000000000000000000112541452337521700270620ustar00rootroot00000000000000#include "protobufplugin.h" #include #include "mainresponse.h" #include "guirequest.h" #include "statusrequest.h" #include "systemrequest.h" #include "storagerequest.h" #include "propertyrequest.h" #include "regiondata.h" ProtobufPlugin::ProtobufPlugin(QObject *parent): QObject(parent), m_versionMinor(0) {} uint32_t ProtobufPlugin::versionMajor() const { return 0; } void ProtobufPlugin::setMinorVersion(uint32_t version) { m_versionMinor = version; } const QByteArray ProtobufPlugin::statusPing(uint32_t id, const QByteArray &data) const { return StatusPingRequest(id, data).encode(); } const QByteArray ProtobufPlugin::systemReboot(uint32_t id, RebootMode mode) const { PB_System_RebootRequest_RebootMode rm; if(mode == RebootModeOS) { rm = PB_System_RebootRequest_RebootMode_OS; } else if(mode == RebootModeRecovery) { rm = PB_System_RebootRequest_RebootMode_DFU; } else if(mode == RebootModeUpdate) { rm = PB_System_RebootRequest_RebootMode_UPDATE; } else { return QByteArray(); } return SystemRebootRequest(id, rm).encode(); } const QByteArray ProtobufPlugin::systemFactoryReset(uint32_t id) const { return SystemFactoryResetRequest(id).encode(); } const QByteArray ProtobufPlugin::systemDeviceInfo(uint32_t id) const { return SystemDeviceInfoRequest(id).encode(); } const QByteArray ProtobufPlugin::systemGetDateTime(uint32_t id) const { return SystemGetDateTimeRequest(id).encode(); } const QByteArray ProtobufPlugin::systemSetDateTime(uint32_t id, const QDateTime &dateTime) const { return SystemSetDateTimeRequest(id, dateTime).encode(); } const QByteArray ProtobufPlugin::systemUpdateRequest(uint32_t id, const QByteArray &manifestPath) const { return SystemUpdateRequest(id, manifestPath).encode(); } const QByteArray ProtobufPlugin::systemProtobufVersion(uint32_t id) const { return SystemProtobufVersionRequest(id).encode(); } const QByteArray ProtobufPlugin::guiStartScreenStream(uint32_t id) const { return GuiStartScreenStreamRequest(id).encode(); } const QByteArray ProtobufPlugin::guiStopScreenStream(uint32_t id) const { return GuiStopScreenStreamRequest(id).encode(); } const QByteArray ProtobufPlugin::guiScreenFrame(uint32_t id, const QByteArray screenData) const { return GuiScreenFrameRequest(id, screenData).encode(); } const QByteArray ProtobufPlugin::guiSendInput(uint32_t id, int key, int type) const { return GuiSendInputRequest(id, (PB_Gui_InputKey)key, (PB_Gui_InputType)type).encode(); } const QByteArray ProtobufPlugin::guiStartVirtualDisplay(uint32_t id, const QByteArray screenData) const { return GuiStartVirtualDisplayRequest(id, screenData).encode(); } const QByteArray ProtobufPlugin::guiStopVirtualDisplay(uint32_t id) const { return GuiStopVirtualDisplayRequest(id).encode(); } const QByteArray ProtobufPlugin::storageInfo(uint32_t id, const QByteArray &path) const { return StorageInfoRequest(id, path).encode(); } const QByteArray ProtobufPlugin::storageStat(uint32_t id, const QByteArray &path) const { return StorageStatRequest(id, path).encode(); } const QByteArray ProtobufPlugin::storageList(uint32_t id, const QByteArray &path) const { return StorageListRequest(id, path).encode(); } const QByteArray ProtobufPlugin::storageMkDir(uint32_t id, const QByteArray &path) const { return StorageMkDirRequest(id, path).encode(); } const QByteArray ProtobufPlugin::storageRename(uint32_t id, const QByteArray &oldPath, const QByteArray &newPath) const { return StorageRenameRequest(id, oldPath, newPath).encode(); } const QByteArray ProtobufPlugin::storageRemove(uint32_t id, const QByteArray &path, bool recursive) const { return StorageRemoveRequest(id, path, recursive).encode(); } const QByteArray ProtobufPlugin::storageRead(uint32_t id, const QByteArray &path) const { return StorageReadRequest(id, path).encode(); } const QByteArray ProtobufPlugin::storageWrite(uint32_t id, const QByteArray &path, const QByteArray &data, bool hasNext) const { return StorageWriteRequest(id, path, data, hasNext).encode(); } const QByteArray ProtobufPlugin::storageMd5Sum(uint32_t id, const QByteArray &path) const { return StorageMd5SumRequest(id, path).encode(); } const QByteArray ProtobufPlugin::propertyGet(uint32_t id, const QByteArray &key) const { return PropertyGetRequest(id, key).encode(); } const QByteArray ProtobufPlugin::regionBands(const QByteArray &countryCode, const BandInfoList &bands) const { return RegionData(countryCode, bands).encode(); } QObject *ProtobufPlugin::decode(const QByteArray &buffer, QObject *parent) const { MessageWrapper wrp(buffer); return MainResponse::create(wrp, parent); } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/protobufplugin.h000066400000000000000000000053551452337521700265340ustar00rootroot00000000000000#pragma once #include #include #include "protobufplugininterface.h" class ProtobufPlugin : public QObject, public ProtobufPluginInterface { Q_OBJECT Q_PLUGIN_METADATA(IID "com.flipperdevices.ProtobufPluginInterface" FILE "protobufplugin.json") Q_INTERFACES(ProtobufPluginInterface) public: ProtobufPlugin(QObject *parent = nullptr); uint32_t versionMajor() const override; void setMinorVersion(uint32_t version) override; const QByteArray statusPing(uint32_t id, const QByteArray &data) const override; const QByteArray systemReboot(uint32_t id, RebootMode mode) const override; const QByteArray systemFactoryReset(uint32_t id) const override; const QByteArray systemDeviceInfo(uint32_t id) const override; const QByteArray systemGetDateTime(uint32_t id) const override; const QByteArray systemSetDateTime(uint32_t id, const QDateTime &dateTime) const override; const QByteArray systemUpdateRequest(uint32_t id, const QByteArray &manifestPath) const override; const QByteArray systemProtobufVersion(uint32_t id) const override; const QByteArray guiStartScreenStream(uint32_t id) const override; const QByteArray guiStopScreenStream(uint32_t id) const override; const QByteArray guiScreenFrame(uint32_t id, const QByteArray screenData) const override; const QByteArray guiSendInput(uint32_t id, int key, int type) const override; const QByteArray guiStartVirtualDisplay(uint32_t id, const QByteArray screenData) const override; const QByteArray guiStopVirtualDisplay(uint32_t id) const override; const QByteArray storageInfo(uint32_t id, const QByteArray &path) const override; const QByteArray storageStat(uint32_t id, const QByteArray &path) const override; const QByteArray storageList(uint32_t id, const QByteArray &path) const override; const QByteArray storageMkDir(uint32_t id, const QByteArray &path) const override; const QByteArray storageRename(uint32_t id, const QByteArray &oldPath, const QByteArray &newPath) const override; const QByteArray storageRemove(uint32_t id, const QByteArray &path, bool recursive) const override; const QByteArray storageRead(uint32_t id, const QByteArray &path) const override; const QByteArray storageWrite(uint32_t id, const QByteArray &path, const QByteArray &data, bool hasNext) const override; const QByteArray storageMd5Sum(uint32_t id, const QByteArray &path) const override; const QByteArray propertyGet(uint32_t id, const QByteArray &key) const override; const QByteArray regionBands(const QByteArray &countryCode, const BandInfoList &bands) const override; QObject *decode(const QByteArray &buffer, QObject *parent = nullptr) const override; private: uint32_t m_versionMinor; }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/protobufplugin.json000066400000000000000000000000031452337521700272370ustar00rootroot00000000000000{} flipperdevices-qFlipper-bfce851/plugins/flipperproto0/regiondata.cpp000066400000000000000000000032701452337521700261170ustar00rootroot00000000000000#include "regiondata.h" #include #include "pb_encode.h" static bool fieldEncodeCallback(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) { const BandInfoList *bands = (BandInfoList*)*arg; for(const auto &band : *bands) { if(!pb_encode_tag_for_field(stream, field)) { return false; } PB_Region_Band bandData = { band.start, band.end, (int8_t)band.powerLimit, (uint8_t)band.dutyCycle, }; if(!pb_encode_submessage(stream, &PB_Region_Band_msg, &bandData)) { return false; } } return true; } RegionData::RegionData(const QByteArray &countryCode, const BandInfoList &bands): m_bands(bands) { if(!countryCode.isEmpty()) { m_message.country_code = (pb_bytes_array_t*)malloc(PB_BYTES_ARRAY_T_ALLOCSIZE(countryCode.size())); m_message.country_code->size = countryCode.size(); memcpy(m_message.country_code->bytes, countryCode.data(), countryCode.size()); } else { m_message.country_code = nullptr; } m_message.bands.funcs.encode = fieldEncodeCallback; m_message.bands.arg = &m_bands; } RegionData::~RegionData() { if(m_message.country_code) { free(m_message.country_code); } } const QByteArray RegionData::encode() const { QByteArray ret; size_t encodedSize; if(!pb_get_encoded_size(&encodedSize, &PB_Region_msg, &m_message)) { return ret; } ret.resize((int)encodedSize); auto stream = pb_ostream_from_buffer((pb_byte_t*)ret.data(), ret.size()); if(!pb_encode(&stream, &PB_Region_msg, &m_message)) { ret.clear(); } return ret; } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/regiondata.h000066400000000000000000000004741452337521700255670ustar00rootroot00000000000000#pragma once #include #include "bandinfo.h" #include "messages/flipper.pb.h" class RegionData { public: RegionData(const QByteArray &countryCode, const BandInfoList &bands); ~RegionData(); const QByteArray encode() const; private: PB_Region m_message; BandInfoList m_bands; }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/statusrequest.cpp000066400000000000000000000011751452337521700267400ustar00rootroot00000000000000#include "statusrequest.h" #include "pb_encode.h" StatusPingRequest::StatusPingRequest(uint32_t id, const QByteArray &data): MainRequest(id, PB_Main_system_ping_request_tag) { if(data.isEmpty()) { return; } auto &content = m_message.content.system_ping_request; content.data = (pb_bytes_array_t*)malloc(PB_BYTES_ARRAY_T_ALLOCSIZE(data.size())); content.data->size = data.size(); memcpy(content.data->bytes, data.data(), data.size()); } StatusPingRequest::~StatusPingRequest() { auto &content = m_message.content.system_ping_request; if(content.data) { free(content.data); } } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/statusrequest.h000066400000000000000000000003071452337521700264010ustar00rootroot00000000000000#pragma once #include "mainrequest.h" class StatusPingRequest : public MainRequest { public: StatusPingRequest(uint32_t id, const QByteArray &data = QByteArray()); ~StatusPingRequest(); }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/statusresponse.cpp000066400000000000000000000005031452337521700271000ustar00rootroot00000000000000#include "statusresponse.h" StatusPingResponse::StatusPingResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} const QByteArray StatusPingResponse::data() const { const auto *d = message().content.system_ping_response.data; return QByteArray((const char*)d->bytes, d->size); } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/statusresponse.h000066400000000000000000000005421452337521700265500ustar00rootroot00000000000000#pragma once #include "mainresponse.h" #include "statusresponseinterface.h" class StatusPingResponse : public MainResponse, public StatusPingResponseInterface { Q_OBJECT Q_INTERFACES(StatusPingResponseInterface) public: StatusPingResponse(MessageWrapper &wrapper, QObject *parent = nullptr); const QByteArray data() const override; }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/storagerequest.cpp000066400000000000000000000057141452337521700270640ustar00rootroot00000000000000#include "storagerequest.h" #include "pb_encode.h" AbstractStorageRequest::AbstractStorageRequest(uint32_t id, pb_size_t tag, const QByteArray &path, bool hasNext): MainRequest(id, tag, hasNext), m_path(path) {} char *AbstractStorageRequest::pathData() { return m_path.data(); } StorageInfoRequest::StorageInfoRequest(uint32_t id, const QByteArray &path): AbstractStorageRequest(id, PB_Main_storage_info_request_tag, path) { m_message.content.storage_info_request.path = pathData(); } StorageStatRequest::StorageStatRequest(uint32_t id, const QByteArray &path): AbstractStorageRequest(id, PB_Main_storage_stat_request_tag, path) { m_message.content.storage_stat_request.path = pathData(); } StorageListRequest::StorageListRequest(uint32_t id, const QByteArray &path): AbstractStorageRequest(id, PB_Main_storage_list_request_tag, path) { m_message.content.storage_list_request.path = pathData(); } StorageMkDirRequest::StorageMkDirRequest(uint32_t id, const QByteArray &path): AbstractStorageRequest(id, PB_Main_storage_mkdir_request_tag, path) { m_message.content.storage_mkdir_request.path = pathData(); } StorageRemoveRequest::StorageRemoveRequest(uint32_t id, const QByteArray &path, bool recursive): AbstractStorageRequest(id, PB_Main_storage_delete_request_tag, path) { m_message.content.storage_delete_request.path = pathData(); m_message.content.storage_delete_request.recursive = recursive; } StorageReadRequest::StorageReadRequest(uint32_t id, const QByteArray &path): AbstractStorageRequest(id, PB_Main_storage_read_request_tag, path) { m_message.content.storage_read_request.path = pathData(); } StorageWriteRequest::StorageWriteRequest(uint32_t id, const QByteArray &path, const QByteArray &data, bool hasNext): AbstractStorageRequest(id, PB_Main_storage_write_request_tag, path, hasNext) { auto &content = m_message.content.storage_write_request; content.has_file = !data.isEmpty(); content.path = pathData(); if(content.has_file) { content.file.data = (pb_bytes_array_t*)malloc(PB_BYTES_ARRAY_T_ALLOCSIZE(data.size())); content.file.data->size = data.size(); memcpy(content.file.data->bytes, data.data(), data.size()); } } StorageWriteRequest::~StorageWriteRequest() { auto &content = m_message.content.storage_write_request; if(content.has_file) { free(content.file.data); } } StorageRenameRequest::StorageRenameRequest(uint32_t id, const QByteArray &oldPath, const QByteArray &newPath): AbstractStorageRequest(id, PB_Main_storage_rename_request_tag, oldPath), m_newPath(newPath) { auto &request = m_message.content.storage_rename_request; request.old_path = pathData(); request.new_path = (char*)newPath.data(); } StorageMd5SumRequest::StorageMd5SumRequest(uint32_t id, const QByteArray &path): AbstractStorageRequest(id, PB_Main_storage_md5sum_request_tag, path) { m_message.content.storage_md5sum_request.path = pathData(); } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/storagerequest.h000066400000000000000000000031161452337521700265230ustar00rootroot00000000000000#pragma once #include "mainrequest.h" class AbstractStorageRequest : public MainRequest { protected: AbstractStorageRequest(uint32_t id, pb_size_t tag, const QByteArray &path, bool hasNext = false); char *pathData(); private: QByteArray m_path; }; class StorageInfoRequest : public AbstractStorageRequest { public: StorageInfoRequest(uint32_t id, const QByteArray &path); }; class StorageStatRequest : public AbstractStorageRequest { public: StorageStatRequest(uint32_t id, const QByteArray &path); }; class StorageListRequest : public AbstractStorageRequest { public: StorageListRequest(uint32_t id, const QByteArray &path); }; class StorageMkDirRequest : public AbstractStorageRequest { public: StorageMkDirRequest(uint32_t id, const QByteArray &path); }; class StorageRenameRequest : public AbstractStorageRequest { public: StorageRenameRequest(uint32_t id, const QByteArray &oldPath, const QByteArray &newPath); private: QByteArray m_newPath; }; class StorageRemoveRequest : public AbstractStorageRequest { public: StorageRemoveRequest(uint32_t id, const QByteArray &path, bool recursive); }; class StorageReadRequest : public AbstractStorageRequest { public: StorageReadRequest(uint32_t id, const QByteArray &path); }; class StorageWriteRequest : public AbstractStorageRequest { public: StorageWriteRequest(uint32_t id, const QByteArray &path, const QByteArray &data, bool hasNext); ~StorageWriteRequest(); }; class StorageMd5SumRequest : public AbstractStorageRequest { public: StorageMd5SumRequest(uint32_t id, const QByteArray &path); }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/storageresponse.cpp000066400000000000000000000037501452337521700272300ustar00rootroot00000000000000#include "storageresponse.h" StorageInfoResponse::StorageInfoResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} quint64 StorageInfoResponse::sizeFree() const { return message().content.storage_info_response.free_space; } quint64 StorageInfoResponse::sizeTotal() const { return message().content.storage_info_response.total_space; } StorageStatResponse::StorageStatResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} bool StorageStatResponse::hasFile() const { return message().content.storage_stat_response.has_file; } const StorageFile StorageStatResponse::file() const { const auto &f = message().content.storage_stat_response.file; return {(StorageFile::FileType)f.type, {f.name}, {}, f.size}; } StorageListResponse::StorageListResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} const StorageListResponse::StorageFiles StorageListResponse::files() const { auto count = message().content.storage_list_response.file_count; auto *fs = message().content.storage_list_response.file; StorageFiles ret; ret.reserve(count); for(; count; --count, ++fs) { ret.append({(StorageFile::FileType)fs->type, {fs->name}, {}, fs->size}); } return ret; } StorageReadResponse::StorageReadResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} bool StorageReadResponse::hasFile() const { return message().content.storage_read_response.has_file; } const StorageFile StorageReadResponse::file() const { const auto &f = message().content.storage_read_response.file; return {(StorageFile::FileType)f.type, {f.name}, {(const char*)f.data->bytes, f.data->size}, f.size}; } StorageMd5SumResponse::StorageMd5SumResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} const QByteArray StorageMd5SumResponse::md5Sum() const { return message().content.storage_md5sum_response.md5sum; } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/storageresponse.h000066400000000000000000000031031452337521700266650ustar00rootroot00000000000000#pragma once #include "mainresponse.h" #include "storageresponseinterface.h" class StorageInfoResponse : public MainResponse, public StorageInfoResponseInterface { Q_OBJECT Q_INTERFACES(StorageInfoResponseInterface) public: StorageInfoResponse(MessageWrapper &wrapper, QObject *parent = nullptr); quint64 sizeFree() const override; quint64 sizeTotal() const override; }; class StorageStatResponse : public MainResponse, public StorageStatResponseInterface { Q_OBJECT Q_INTERFACES(StorageStatResponseInterface) public: StorageStatResponse(MessageWrapper &wrapper, QObject *parent = nullptr); bool hasFile() const override; const StorageFile file() const override; }; class StorageListResponse : public MainResponse, public StorageListResponseInterface { Q_OBJECT Q_INTERFACES(StorageListResponseInterface) public: StorageListResponse(MessageWrapper &wrapper, QObject *parent = nullptr); const StorageFiles files() const override; }; class StorageReadResponse : public MainResponse, public StorageReadResponseInterface { Q_OBJECT Q_INTERFACES(StorageReadResponseInterface) public: StorageReadResponse(MessageWrapper &wrapper, QObject *parent = nullptr); bool hasFile() const override; const StorageFile file() const override; }; class StorageMd5SumResponse : public MainResponse, public StorageMd5SumResponseInterface { Q_OBJECT Q_INTERFACES(StorageMd5SumResponseInterface) public: StorageMd5SumResponse(MessageWrapper &wrapper, QObject *parent = nullptr); const QByteArray md5Sum() const override; }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/systemrequest.cpp000066400000000000000000000032401452337521700267340ustar00rootroot00000000000000#include "systemrequest.h" #include "pb_encode.h" SystemRebootRequest::SystemRebootRequest(uint32_t id, PB_System_RebootRequest_RebootMode mode): MainRequest(id, PB_Main_system_reboot_request_tag) { auto &content = m_message.content.system_reboot_request; content.mode = mode; } SystemDeviceInfoRequest::SystemDeviceInfoRequest(uint32_t id): MainRequest(id, PB_Main_system_device_info_request_tag) {} SystemGetDateTimeRequest::SystemGetDateTimeRequest(uint32_t id): MainRequest(id, PB_Main_system_get_datetime_request_tag) {} SystemSetDateTimeRequest::SystemSetDateTimeRequest(uint32_t id, const QDateTime &dateTime): MainRequest(id, PB_Main_system_set_datetime_request_tag) { auto &content = m_message.content.system_set_datetime_request; auto &ts = content.datetime; ts.day = dateTime.date().day(); ts.month = dateTime.date().month(); ts.weekday = dateTime.date().dayOfWeek(); ts.year = dateTime.date().year(); ts.hour = dateTime.time().hour(); ts.minute = dateTime.time().minute(); ts.second = dateTime.time().second(); content.has_datetime = true; } SystemFactoryResetRequest::SystemFactoryResetRequest(uint32_t id): MainRequest(id, PB_Main_system_factory_reset_request_tag) {} SystemUpdateRequest::SystemUpdateRequest(uint32_t id, const QByteArray &manifestPath): MainRequest(id, PB_Main_system_update_request_tag), m_manifestPath(manifestPath) { auto &content = m_message.content.system_update_request; content.update_manifest = m_manifestPath.data(); } SystemProtobufVersionRequest::SystemProtobufVersionRequest(uint32_t id): MainRequest(id, PB_Main_system_protobuf_version_request_tag) {} flipperdevices-qFlipper-bfce851/plugins/flipperproto0/systemrequest.h000066400000000000000000000016701452337521700264060ustar00rootroot00000000000000#pragma once #include "mainrequest.h" #include class SystemRebootRequest : public MainRequest { public: SystemRebootRequest(uint32_t id, PB_System_RebootRequest_RebootMode mode); }; class SystemFactoryResetRequest : public MainRequest { public: SystemFactoryResetRequest(uint32_t id); }; class SystemDeviceInfoRequest : public MainRequest { public: SystemDeviceInfoRequest(uint32_t id); }; class SystemGetDateTimeRequest : public MainRequest { public: SystemGetDateTimeRequest(uint32_t id); }; class SystemSetDateTimeRequest : public MainRequest { public: SystemSetDateTimeRequest(uint32_t id, const QDateTime &dateTime); }; class SystemUpdateRequest : public MainRequest { public: SystemUpdateRequest(uint32_t id, const QByteArray &manifestPath); private: QByteArray m_manifestPath; }; class SystemProtobufVersionRequest : public MainRequest { public: SystemProtobufVersionRequest(uint32_t id); }; flipperdevices-qFlipper-bfce851/plugins/flipperproto0/systemresponse.cpp000066400000000000000000000060551452337521700271110ustar00rootroot00000000000000#include "systemresponse.h" SystemDeviceInfoResponse::SystemDeviceInfoResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} const QByteArray SystemDeviceInfoResponse::key() const { return message().content.system_device_info_response.key; } const QByteArray SystemDeviceInfoResponse::value() const { return message().content.system_device_info_response.value; } SystemGetDateTimeResponse::SystemGetDateTimeResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} const QDateTime SystemGetDateTimeResponse::dateTime() const { if(!message().content.system_get_datetime_response.has_datetime) { return QDateTime(); } const auto &ts = message().content.system_get_datetime_response.datetime; const QDate date(ts.year, ts.month, ts.day); const QTime time(ts.hour, ts.minute, ts.second); return QDateTime(date, time); } SystemUpdateResponse::SystemUpdateResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} bool SystemUpdateResponse::isResultOk() const { return message().content.system_update_response.code == PB_System_UpdateResponse_UpdateResultCode_OK; } const QString SystemUpdateResponse::resultString() const { switch(message().content.system_update_response.code) { case PB_System_UpdateResponse_UpdateResultCode_OK: return QStringLiteral("System update is go"); case PB_System_UpdateResponse_UpdateResultCode_ManifestPathInvalid: return QStringLiteral("Manifest path invalid"); case PB_System_UpdateResponse_UpdateResultCode_ManifestFolderNotFound: return QStringLiteral("Manifest folder not found"); case PB_System_UpdateResponse_UpdateResultCode_ManifestInvalid: return QStringLiteral("Manifest is invalid"); case PB_System_UpdateResponse_UpdateResultCode_StageMissing: return QStringLiteral("Stage missing"); case PB_System_UpdateResponse_UpdateResultCode_StageIntegrityError: return QStringLiteral("Stage integrity error"); case PB_System_UpdateResponse_UpdateResultCode_ManifestPointerError: return QStringLiteral("Manifest pointer error"); case PB_System_UpdateResponse_UpdateResultCode_TargetMismatch: return QStringLiteral("Target mismatch"); case PB_System_UpdateResponse_UpdateResultCode_OutdatedManifestVersion: return QStringLiteral("Outdated manifest version"); case PB_System_UpdateResponse_UpdateResultCode_IntFull: return QStringLiteral("Internal storage is full"); case PB_System_UpdateResponse_UpdateResultCode_UnspecifiedError: default: return QStringLiteral("Unknown error"); } } SystemProtobufVersionResponse::SystemProtobufVersionResponse(MessageWrapper &wrapper, QObject *parent): MainResponse(wrapper, parent) {} uint32_t SystemProtobufVersionResponse::versionMajor() const { return message().content.system_protobuf_version_response.major; } uint32_t SystemProtobufVersionResponse::versionMinor() const { return message().content.system_protobuf_version_response.minor; } flipperdevices-qFlipper-bfce851/plugins/flipperproto0/systemresponse.h000066400000000000000000000025751452337521700265610ustar00rootroot00000000000000#pragma once #include "mainresponse.h" #include "systemresponseinterface.h" class SystemDeviceInfoResponse : public MainResponse, public SystemDeviceInfoResponseInterface { Q_OBJECT Q_INTERFACES(SystemDeviceInfoResponseInterface) public: SystemDeviceInfoResponse(MessageWrapper &wrapper, QObject *parent = nullptr); const QByteArray key() const override; const QByteArray value() const override; }; class SystemGetDateTimeResponse : public MainResponse, public SystemGetDateTimeResponseInterface { Q_OBJECT Q_INTERFACES(SystemGetDateTimeResponseInterface) public: SystemGetDateTimeResponse(MessageWrapper &wrapper, QObject *parent = nullptr); const QDateTime dateTime() const override; }; class SystemUpdateResponse : public MainResponse, public SystemUpdateResponseInterface { Q_OBJECT Q_INTERFACES(SystemUpdateResponseInterface) public: SystemUpdateResponse(MessageWrapper &wrapper, QObject *parent = nullptr); bool isResultOk() const; const QString resultString() const; }; class SystemProtobufVersionResponse : public MainResponse, public SystemProtobufVersionResponseInterface { Q_OBJECT Q_INTERFACES(SystemProtobufVersionResponseInterface) public: SystemProtobufVersionResponse(MessageWrapper &wrapper, QObject *parent = nullptr); uint32_t versionMajor() const override; uint32_t versionMinor() const override; }; flipperdevices-qFlipper-bfce851/plugins/plugins.pro000066400000000000000000000001131452337521700226650ustar00rootroot00000000000000TEMPLATE = subdirs SUBDIRS += \ flipperproto0 \ protobufinterface flipperdevices-qFlipper-bfce851/plugins/protobufinterface/000077500000000000000000000000001452337521700242105ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/plugins/protobufinterface/bandinfo.h000066400000000000000000000002621452337521700261410ustar00rootroot00000000000000#pragma once #include struct BandInfo { uint32_t start; uint32_t end; int32_t powerLimit; uint32_t dutyCycle; }; using BandInfoList = QList; flipperdevices-qFlipper-bfce851/plugins/protobufinterface/guiresponseinterface.h000066400000000000000000000005671452337521700306150ustar00rootroot00000000000000#pragma once #include #include class GuiScreenFrameResponseInterface { public: virtual const QByteArray screenFrame() const = 0; virtual Qt::ScreenOrientation screenOrientation() const = 0; }; QT_BEGIN_NAMESPACE Q_DECLARE_INTERFACE(GuiScreenFrameResponseInterface, "com.flipperdevices.GuiScreenFrameResponseInterface/1.0") QT_END_NAMESPACE flipperdevices-qFlipper-bfce851/plugins/protobufinterface/mainresponseinterface.h000066400000000000000000000016261452337521700307520ustar00rootroot00000000000000#pragma once #include #include class MainResponseInterface { public: enum ResponseType { Unknown, Empty, StatusPing, SystemDeviceInfo, SystemGetDateTime, SystemUpdate, SystemProtobufVersion, StorageList, StorageRead, StorageMd5Sum, StorageStat, StorageInfo, GuiScreenFrame, PropertyGet, }; virtual ~MainResponseInterface() {} virtual uint32_t id() const = 0; virtual ResponseType type() const = 0; virtual size_t encodedSize() const = 0; virtual bool hasNext() const = 0; virtual bool isError() const = 0; virtual const QString errorString() const = 0; }; using EmptyResponseInterface = MainResponseInterface; QT_BEGIN_NAMESPACE Q_DECLARE_INTERFACE(MainResponseInterface, "com.flipperdevices.MainResponseInterface/1.0") QT_END_NAMESPACE flipperdevices-qFlipper-bfce851/plugins/protobufinterface/propertyresponseinterface.h000066400000000000000000000005251452337521700317070ustar00rootroot00000000000000#pragma once #include #include class PropertyGetResponseInterface { public: virtual const QByteArray key() const = 0; virtual const QByteArray value() const = 0; }; QT_BEGIN_NAMESPACE Q_DECLARE_INTERFACE(PropertyGetResponseInterface, "com.flipperdevices.PropertyGetResponseInterface/1.0") QT_END_NAMESPACE flipperdevices-qFlipper-bfce851/plugins/protobufinterface/protobufinterface.pro000066400000000000000000000005001452337521700304460ustar00rootroot00000000000000QT -= gui TEMPLATE = lib CONFIG += staticlib c++11 requires(false) HEADERS += \ bandinfo.h \ guiresponseinterface.h \ mainresponseinterface.h \ propertyresponseinterface.h \ protobufplugininterface.h \ statusresponseinterface.h \ storageresponseinterface.h \ systemresponseinterface.h flipperdevices-qFlipper-bfce851/plugins/protobufinterface/protobufplugin.cpp000066400000000000000000000000341452337521700277700ustar00rootroot00000000000000#include "protobufplugin.h" flipperdevices-qFlipper-bfce851/plugins/protobufinterface/protobufplugin.h000066400000000000000000000003411452337521700274360ustar00rootroot00000000000000#pragma once #include #include #include "protobufinterface.h" class ProtobufPlugin : public QObject, public ProtobufInterface { Q_OBJECT public: ProtobufPlugin(QObject *parent = nullptr); }; flipperdevices-qFlipper-bfce851/plugins/protobufinterface/protobufplugininterface.h000066400000000000000000000055641452337521700313330ustar00rootroot00000000000000#pragma once #include #include #include "bandinfo.h" class ProtobufPluginInterface { public: enum RebootMode { RebootModeOS = 0, RebootModeRecovery = 1, RebootModeUpdate = 2, }; virtual ~ProtobufPluginInterface() {} virtual uint32_t versionMajor() const = 0; virtual void setMinorVersion(uint32_t version) = 0; virtual const QByteArray statusPing(uint32_t id, const QByteArray &data = QByteArray()) const = 0; virtual const QByteArray systemFactoryReset(uint32_t id) const = 0; virtual const QByteArray systemReboot(uint32_t id, RebootMode mode) const = 0; virtual const QByteArray systemDeviceInfo(uint32_t id) const = 0; virtual const QByteArray systemGetDateTime(uint32_t id) const = 0; virtual const QByteArray systemSetDateTime(uint32_t id, const QDateTime &dateTime) const = 0; virtual const QByteArray systemUpdateRequest(uint32_t id, const QByteArray &manifestPath) const = 0; virtual const QByteArray systemProtobufVersion(uint32_t id) const = 0; virtual const QByteArray guiStartScreenStream(uint32_t id) const = 0; virtual const QByteArray guiStopScreenStream(uint32_t id) const = 0; virtual const QByteArray guiScreenFrame(uint32_t id, const QByteArray screenData = QByteArray()) const = 0; virtual const QByteArray guiSendInput(uint32_t id, int key, int type) const = 0; virtual const QByteArray guiStartVirtualDisplay(uint32_t id, const QByteArray screenData = QByteArray()) const = 0; virtual const QByteArray guiStopVirtualDisplay(uint32_t id) const = 0; virtual const QByteArray storageInfo(uint32_t id, const QByteArray &path) const = 0; virtual const QByteArray storageStat(uint32_t id, const QByteArray &path) const = 0; virtual const QByteArray storageList(uint32_t id, const QByteArray &path) const = 0; virtual const QByteArray storageMkDir(uint32_t id, const QByteArray &path) const = 0; virtual const QByteArray storageRename(uint32_t id, const QByteArray &oldPath, const QByteArray &newPath) const = 0; virtual const QByteArray storageRemove(uint32_t id, const QByteArray &path, bool recursive = false) const = 0; virtual const QByteArray storageRead(uint32_t id, const QByteArray &path) const = 0; virtual const QByteArray storageWrite(uint32_t id, const QByteArray &path, const QByteArray &data, bool hasNext) const = 0; virtual const QByteArray storageMd5Sum(uint32_t id, const QByteArray &path) const = 0; virtual const QByteArray propertyGet(uint32_t id, const QByteArray &key) const = 0; virtual const QByteArray regionBands(const QByteArray &countryCode, const BandInfoList &bands) const = 0; virtual QObject *decode(const QByteArray &buffer, QObject *parent = nullptr) const = 0; }; QT_BEGIN_NAMESPACE Q_DECLARE_INTERFACE(ProtobufPluginInterface, "com.flipperdevices.ProtobufPluginInterface/1.0") QT_END_NAMESPACE flipperdevices-qFlipper-bfce851/plugins/protobufinterface/statusresponseinterface.h000066400000000000000000000004431452337521700313450ustar00rootroot00000000000000#pragma once #include #include class StatusPingResponseInterface { public: virtual const QByteArray data() const = 0; }; QT_BEGIN_NAMESPACE Q_DECLARE_INTERFACE(StatusPingResponseInterface, "com.flipperdevices.StatusPingResponseInterface/1.0") QT_END_NAMESPACE flipperdevices-qFlipper-bfce851/plugins/protobufinterface/storageresponseinterface.h000066400000000000000000000026761452337521700315000ustar00rootroot00000000000000#pragma once #include #include #include struct StorageFile { enum FileType { RegularFile = 0, Directory = 1 }; FileType type; QByteArray name; QByteArray data; quint64 size; }; class StorageInfoResponseInterface { public: virtual quint64 sizeFree() const = 0; virtual quint64 sizeTotal() const = 0; }; class StorageStatResponseInterface { public: virtual bool hasFile() const = 0; virtual const StorageFile file() const = 0; }; class StorageListResponseInterface { public: using StorageFiles = QVector; virtual const StorageFiles files() const = 0; }; class StorageReadResponseInterface { public: virtual bool hasFile() const = 0; virtual const StorageFile file() const = 0; }; class StorageMd5SumResponseInterface { public: virtual const QByteArray md5Sum() const = 0; }; QT_BEGIN_NAMESPACE Q_DECLARE_INTERFACE(StorageInfoResponseInterface, "com.flipperdevices.StorageInfoResponseInterface/1.0") Q_DECLARE_INTERFACE(StorageStatResponseInterface, "com.flipperdevices.StorageStatResponseInterface/1.0") Q_DECLARE_INTERFACE(StorageListResponseInterface, "com.flipperdevices.StorageListResponseInterface/1.0") Q_DECLARE_INTERFACE(StorageReadResponseInterface, "com.flipperdevices.StorageReadResponseInterface/1.0") Q_DECLARE_INTERFACE(StorageMd5SumResponseInterface, "com.flipperdevices.StorageMd5SumResponseInterface/1.0") QT_END_NAMESPACE flipperdevices-qFlipper-bfce851/plugins/protobufinterface/systemresponseinterface.h000066400000000000000000000021471452337521700313510ustar00rootroot00000000000000#pragma once #include #include #include class SystemDeviceInfoResponseInterface { public: virtual const QByteArray key() const = 0; virtual const QByteArray value() const = 0; }; class SystemGetDateTimeResponseInterface { public: virtual const QDateTime dateTime() const = 0; }; class SystemUpdateResponseInterface { public: virtual bool isResultOk() const = 0; virtual const QString resultString() const = 0; }; class SystemProtobufVersionResponseInterface { public: virtual uint32_t versionMajor() const = 0; virtual uint32_t versionMinor() const = 0; }; QT_BEGIN_NAMESPACE Q_DECLARE_INTERFACE(SystemDeviceInfoResponseInterface, "com.flipperdevices.SystemDeviceInfoResponseInterface/1.0") Q_DECLARE_INTERFACE(SystemGetDateTimeResponseInterface, "com.flipperdevices.SystemGetDateTimeResponseInterface/1.0") Q_DECLARE_INTERFACE(SystemUpdateResponseInterface, "com.flipperdevices.SystemUpdateResponseInterface/1.0") Q_DECLARE_INTERFACE(SystemProtobufVersionResponseInterface, "com.flipperdevices.SystemProtobufVersionResponseInterface/1.0") QT_END_NAMESPACE flipperdevices-qFlipper-bfce851/qFlipper.pro000066400000000000000000000003361452337521700213140ustar00rootroot00000000000000TEMPLATE = subdirs SUBDIRS += \ 3rdparty \ application \ backend \ dfu \ plugins \ cli backend.depends = dfu plugins application.depends = backend cli.depends = backend plugins.depends = 3rdparty flipperdevices-qFlipper-bfce851/qflipper_common.pri000066400000000000000000000023271452337521700227200ustar00rootroot00000000000000NAME = qFlipper equals(QT_MAJOR_VERSION, 6): QT += core5compat unix:!macx { DEFINES += USB_BACKEND_LIBUSB CONFIG += link_pkgconfig PKGCONFIG += libusb-1.0 zlib isEmpty(PREFIX): PREFIX = /usr } else:win32 { CONFIG -= debug_and_release DEFINES += USB_BACKEND_WIN32 INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtZlib !win32-g++: LIBS += -lSetupApi -lWinusb -lUser32 else: LIBS += -lsetupapi -lwinusb } else:macx { DEFINES += USB_BACKEND_LIBUSB PKG_CONFIG = /opt/homebrew/bin/pkg-config CONFIG += link_pkgconfig PKGCONFIG += libusb-1.0 zlib } else { error("Unsupported OS or compiler") } GIT_VERSION = $$system("git describe --tags --abbrev=0","lines", HAS_VERSION) !equals(HAS_VERSION, 0) { GIT_VERSION = unknown } GIT_COMMIT = $$system("git rev-parse --short=8 HEAD","lines", HAS_COMMIT) !equals(HAS_COMMIT, 0) { GIT_COMMIT = unknown } GIT_TIMESTAMP = $$system("git log -1 --pretty=format:%ct","lines", HAS_TIMESTAMP) !equals(HAS_TIMESTAMP, 0) { GIT_TIMESTAMP = 0 } DEFINES += APP_NAME=\\\"$$NAME\\\" \ APP_VERSION=\\\"$$GIT_VERSION\\\" \ APP_COMMIT=\\\"$$GIT_COMMIT\\\" \ APP_TIMESTAMP=$$GIT_TIMESTAMP \ PB_ENABLE_MALLOC flipperdevices-qFlipper-bfce851/screenshot.png000066400000000000000000001417141452337521700217010ustar00rootroot00000000000000PNG  IHDR^ lL)zTXtRaw profile type exifxڭgco f9f]$2N(2@2?ML斳Wl΋j_l_izE+[6}^׿۫} y>>x7z e^_x(WQn|y5_-[)3z[Jnx.utwҫ7~_˟>ԧA_?cx2tc1Fןy,K#gOoqշixYuI:6]zAվrWy(>gs13PGnh2͚ nIL-;ɴD?_t2Cv6)^UC4! sBgbLO)RʩZ9de^% { %Tr)Jƚjjo;5Z4ڹs۝ z~GyQG3Ogƙfef_~Eʪ&vi]vmCpI'bN=_~YsYwta5k[Np4g̘ /3F`klu1z͜ >"+Iftܯ{͜ay3yt挦OӬ-ļ3PK!kai"Eq g9dYr<0Ҷ-ӵ_R}5+Ej?_gĸ]٥vE9Wis9Lk{:h~30M;! T8h̲_:RQe<6kHC$*SVtir ;fs^gVE䵦 C۲3v%4r li }ov%{dҸW)T|atl{<͎!Wd6"*,J N%. @DEEeTZUOfYK ZJDBGdrNy nJ ye,cWqV2 ÙMg~QkJw c־p n7 q,OR~r呌RiQ ֊߼g]t22I-Ʈ(5fSy^r%d>$C믯; a"t:F97(vN\X,΀fx~H*"[7n xqH49t&vL *|;7ro/Lgk{-)Ƙ$׷ !ÙFjѩƘ Ҫp8GSHg/#yb#V4SfYL}wd]TmmvMz0e\={LFtG&a^3`FiNfO'Ml8L8~,=Z$W303 =VY&&?~Ӎ Wmc.`m=}4svOӦͰ2dKrmk $7FDª6*<ȡw-ACH- xVptAO󱡗h4 ɦNںx^ d_-tR.}wH+v0G#v{x,mtL9.1m3-ivh*5bn2O6N4hʛh+oHcD~v|:6Pj"g$jij|HBDsd:zFHk+<@P6S^q07szˎy>@U)΢GSEj4n CW'9mU2 FGDC,  O۴0;XHk -}w91qmn ƭJ$ }IB()}B!mrTݬ;{V45p-7H(@T˵Zy'4rܖ'DZEYMP!\hB1`H!UjTBtIjvؔ|),sJO"֟}2'}V* M.t{r(f|z g~f]Bn< NPIn0B9gb\c-s'7B7D{Y'zt:{խ< c:Lsz^ % B()lO b oegQ5FN4hh#_Rk}nE %jMRW)Y tGiAyiLK~Y4B0,yc34"v>-,3VmVQ54Xa@_!WѲnT#JFfmA6wLޖ t֓1]p~lC wh,$L`Kŵ-O[#H2ژM)A0&O ڤnVJoK "DN'5M^NL!tT؈ЀTr@/fZRg@-vX[\ .1L07pWu xD!( 0`^DV-&VƊNYkSpaڨB u3P Q2\h;/ /3ww嶮0BB_bz̄=r kY \gtn5b[4SPјsF@# ioQdDG^| ;@hf/c2׆Jc1N4B] ճ.)S7@UᙆX^2R93h=gهPY+2%0Ǹ2&.᤹)OEtm O wat%u!̥wPNxD% $ T$ưVa܉~0 LCWĨ2KGzT4}Se -"We+DZk(1_hJ,t'<[Q9}H#7F[1__/T5R) F}m0Q1KK{,,!++UoG@I5 bMB,(nћJ%'H/xfy3{HwbMcgĊA.&rBEt/((Յtht;181@\By X&f0ciɋH mz.Av'rb@^-mYIF;Q0S9G"_YX|Gq;ψQ.w7q3i{F#V kL 1m-,b*;ڂ5M+fQ% ZR2kSE M(&YCq@~DﲙS`*/`Cbi9cGYԎFfELM4XJhK#^ٰn Hb"K%bJ <<7 SYg sf$U~0sR-,iޡnjڧD*mUȯL}nlRIru^vڭ ׫v@d]P.*u'"Քzf Y ` 㮚` Y @0˃YFVQ 2cwM&O<8$WbUDȘf& ]ŘCސ}KGgToL$*U BTs噲p pW$ΨAYA|6 kvE&th<+ӗP0P萼Fd_ TPkZnpjta.&L& J0 W/XXˤfU`Z URJmCMT&᳼d8=򈀢@ %&'RvCTs*\2$ z w[}ЌQkS (RAt<dt:тuHWqxJ=5#7.P%X%;fU@7~b"H[5_W[iuL։Qx^qxiS^V8e}O1Vqsԛ} cѷ~c-X L5d;dOgh̙3,^B(>) X\A%#kP'I$YDHTsZ-5LX4m7Qf̈fgmF=LG44H-̈-hl"I%`аPZҢp m3B1mְ<LPRauU.ȐYݒ#[*f|Jj +YEiğ;S0^Jh0ܵn|G#OH6NTId͡!N2b9DAZ;jJV9jsF^s p{/WazEZmpE n1@'*k`p[.B#,1` b4mFqC2,baQ1l"jaD&8TS)Fs}<FigF6K+J[ KUA.ņbo8}Fjp 2 Vi3>-,CdXS0իC4[#:e!#ߝ*N3h ՜ cF Ni$O-* n`i'Xql*Ӧ^7$WS*\@ ᢜ94Uȸc@vDmp#s¨!>ș^C)ZUaZFړPi:aҥF$c(&j,*f^:,}a;n!0ݳvFgzDZ/1/E bv ]d7ˏN;4ƁpnΤ{$-ECSꎉFhi@#x1`" Cε3hN-'hGN_ ÁvmJZ rfdCU*)vm0$@GeϞIoaDA5Z֦iW@2zU[ĩ˲{OQE\."<^g'[reGM~'&^ ˖c[htsdDhijA4xc xdfj6 ύdwBfGߴ4E wY MeZ/7,ܦSreF{4a`%2gջEG|Յhal::own[9&uDgcaUU[gN84'<4Q@49(־l:VwyLD7ՊV=[ x=҅|X˧De8 4E{0D#$UU=2vrRv;׳E`3ޛŋcpu5}, ftЇF+@-wq-3!{vqƸ[-*"8" t>G9笥fVA_ȨIqK:A[r؁4I?IKXgn?.7_WYݒ4Fggn.DDg_:ZBx; :dADS9H^KU]h#aڜI/`E-mf˴ɝR1~ח/K?weojT96w]:pZ̲ni{%/u5Zw$FxϺdwu 45ο|C)kwnӒ2"6xPq=ͳ-ĬޑĨ5. > L_)Ĉ%:ZSj$"ix">u^hczݓ핝ڇ0nRozGCicF, RCyud!Q!"MKfO8OK{ZpbWs,8tf5љs[MAԟfW,MBkOXjiU #)zԳt0 :<:*ZikO!iW\tH 3Z)X$@M&J&VM^g\I#tp!#i44eV4hMwZ&y Ay\~Ö1F0zsdt˰oed rsf=6džpeo T : 1xaϩrU @)Ӧ-%TS9O"ﱗ\ Zzib$($ Á%C9Vh[zf|_tP! ӕBz9?o}#X2u:}U!|p# hyֲLKXW*P$[Jzə:Z\sC)D#1)8WEvYBx.)y9Km(-7\׹z/ݽ!l>W36w!y A֨P৛<3f.Irۙf`'6Jیk o":G;>eOP'쒉,8]Ԃ*I}6fmKaO 3#n[H l"/Щ9|E\AZ:Ȇ!L}J5-h+XւT&TL vF% ʨU޶L՚^&xH1N !՞?Z<͵{evEO#ׇ{əC3q</% ,&dq& Zagxj>X+ʥE& С DS.+Y[@x{jITYpզnuڃڜ=:c5'F$<@}] sjKgQRmBdU`@FziIʼө qbd]CXmܠveh$2h<(wjfU稺͗tw'B7Юv nQN DS`ugr80 wm U5V!LYAe#` M?3no3 Im=%=dJC~"x&(%(j}};洄֔Q&}QG9VE˴eq-}0"M~L<,pvԒ-ui )Nu:&Z]S>6-M?~.M-e$ۣ\>65`9cfԂ4tTB.jQQk`]ȿ^zKJFg=U P:3i[I9+? UƖco8cUk_q]7 v|0RG?Q vhZ9 Y'vWs5= BonU;~|w5ʿ7A~~_w{o~ǽŽYYԈzka Eյ$،T]VE˯vp{mZE .5C]oB-E$VסQ֦""*;tN~6|,“#eꐪ?5E亵ϰ3Zv[^ݏԪ(񨈥joA|H7ND{I[lɉ$T^H&>#AUt ~M[0Gvܜ?a \ڎ%zdUM?N_} ^7e[{[@ze{o4urn iTXtXML:com.adobe.xmp a/bKGD,  pHYs+tIME ) tEXtCommentCreated with GIMPW IDATxw;&{ewi"~#`)vX+bT&" XPA:wd7GvCe6ܿLyg2';DDDDDDDDDDDDDDDDDDDDDDDDDs`y 8bEDDDDD <(Q7\ Dn~3 #"""""o tvTld-9yK3=/,_ ˆW--`_@2[Y x^,N_@ւ.G8^2D=Iѣ)&+ɠ82&Ed r Oț4P6ԆF7aZ@apiMު3l_d]1 }101܍DDDDDK*ZP|O (e`+ p`]ՙJK0 2 䕭@QP@Sw"yP)&0 !QrąKw RTlP^:Ȯ;-X:8?7]ZU-6@%"""""c hqAHCF2h3fr84İ3%QyA< 8Z hu܉DDDDD;:}hB`$#Fr olY/,_b2 2  aDDDDDr5Lyh'cU; sѲJlgۖ Hhp';\THez̨?.kkL^&xH""""""_צ  =f"K1] ̴Fd~,$QwQ&EHXRg/|K "LhRsQ x9=Pd_ } F"""""^1O8ְCY ,a;.!v!s""""""-'оcxn*'o)(Qw&r% d9`s!ܔn ͫ3 c'rX|y Cnp:> `/p=hG$t"""""ȩX/"""""i]g#c!f'Ylyc˞3[DDDDDD.LxC:3IrWL7e' b(G|h 9Zюc*Taӱ&l:߁5}B1u`DT#\![/ 6`zl=5}x\#<"P*­Fo[OtMKkt(4XwiD~9j*7k<]ݱ-mbMVV Y2I" dxad<]d$60t,U+h#q"""""rY^y5jp?jCc7^K҃0u`D^W5/ F]DDDDD16bԷjFb9a~xf(]DDDDDQ;r)]RFCuN蓈Ӷ:3WܿZ5"""""6'ArG^ /"""""򼂺3W|5DDDDDD. """""G<3"1"""""" y5$"""""bEDDDDDx#|ў7PC"""""mgƋ\ c{֥/m-n}Ŷ?䞶DV?="XDVr}wxuEDDDDD+Vؙ2P6 [ ^EDDDDD1""""""bEDDDDDm! v2-ZPmt]@DDDDDY]ؽ-m\i'|b ®B׵hTL1ᯁ=wv/ 7^2%^݈]z5>+BȶMlc[hsezic)^4s 1R{m#&Xlv!^oZ3?SӖ_^B]^Ƞ3,@^rUdiYOG=c]zPc4-b:h榙{YVˑm0>&aѴҎE{{?$P)c?[t )u` NTz:hZ 9 ""S#}u_iScZgXfظhH"9=wVg|s_LGWh1r,wSgF.0ClXxm3/\;2^D&Gmq|.?G9zr]f=swB"M=lizlܴ g^jQseG勅N-yNJ4C<)]66k9DDD>8ceiEvfJ[ZYkV@d>{޾bE 3Wx+˴4Ξe ^WRz< (fzQ im>){xt$E"""""5^DDDDDDƌ!gA_(2`DD:W]C<\_D @AwPy^SP~Pm MDPC""""""cˈ#mk/ ;4,ADKCL%v:o G<ч3""""""0f"""""b|my=5\Q2 K/@[_rO1!b4iDDDDD EDDD&mu_M=m#bE>g8ZŎ?v BIH[-tjLmdFm'f:te8О߸F4kin,mi{۹ֶ]sR ]˼DDDD{3ݝmno=m8]D>xSQ,\٧TrPmq+ 4h2=מ]+ -{]_my,'i5@7 Ui,eǷ t:m, ;t],ADDDb? <n4 0<}^!oh[[>d2]FW+yN-nϝ$T +-!7/o1}* mq_Ֆmq/rly^EDDDDDa]+p=Eݤnb6<md/""""""^)6 D]ZqTUDBDD)!,0wf`Z<Ď!""b%g<_f=1f Mi;n:'^s1~x~k6i_:"""^DD*U8V[Q ^:7^#J+ZADDD]5~ÖM 5GSxշj`=wBDD5{H,feMD~?"""ѥ &W?mbMݡ- 0w5k"K<1+4El6q_-6wmEDDD΋`yP9 y6-jZ4ȫQli vaEDDc/5.Ƥ2"AR1R#HbhV}eNTZ|g=Z5$^DDD bB$x$L $0*VX&7uR~fk6Ώ%!:,iԫKKň @ AsT{qcΦ2|s$Ƙ$~qYTVvhiӢ^z56m1$#t|s-AxTNv7}n}yCg}Ku:9Vw}ݾOo4Gbx m('AD>Lٮ×˿q]0H)`lpG0yy>Y S%Lhxm ] j-D"nc&='!Ɂzg&/GqC;ugt[{3Qs7[K5,eGg? -g]mī+ӱ6-VJ[T$"cm=0\v/"""r'D7Ҍ`ko,_kO"n@}+o@`˱T?0+P̌0!,G "I",B ]>ّی6)qqJ]^S ]"9"+ٳ<{yp}?O/w"j{s.\?ϵo3#1pVcOU]'ZdF04;3Fh%$!@pT ujp[O4ƁKDVUA_18Tbӽ4KĶ?g۵>/4.Ks?\FIכL7lϫx6S C Ͽo-BX9n$ <@]8Z|jըkѠMj =-!!,Rq1Io\>1$3bd(Q"Zs/}YN#9\7ƥ@`i+zA)Ax~d'0R"'ku(ihCIC~)lj,cR?)ǫTxak9+m.綕yoOEJ&`ō0*,y\䳇Qհ‰G3;^L'8ek{-elIDxwb*V f,]'"HJsy`mQ5qץ1|G&}ř9(4l3 AR1єTE!1bvQymtK֗{tp9'}~O6b.}>v m>T:S떜Ɯaxjx<"T6 ǜ+y1x1W3_ܾG1CE佦GUm'aHfNOKUuY+H0G+(kn` jC/Nzrx<b&v`Ƌ K[ w6}qZ0H]D$64FcWٜ*+O_C$MIC89;Gt!_Zm2CYzZWojbWg,L۞~bF?r\XHCTgICZ]Ir)cwI..Vh ,RaFj:ܱFz ab1Ibގ/"""?)=cR5:\Y xsG'yS*Z]R109꼵ܴm@Wt%Q`@!v4r1Beb&* ZT*ڑS©*r8\DuK`|ץ1xhH,/EEv'%קXsvNP: y?e]U{؛k+)ApJ*4?ܚn{8UeuZ]F(B6ШeuFXKmM<&{|x<. 1<y*AH])nZQ`_jpR=C DX L4s<<$TЀ֋1XT %@a A\^1rdʑ+C|HBlӢcajVpF_ ZPzvRTܝxsW%gѡxdh 1k2+ '+UVַjp뗅2+ 21z4ܻZ]ן- YNyj5ȯF ìKb ?sxL$ ڕ١aE>XϝGH9p>QaxmtWp!YȊTV|uemPhVil!0@PFRbAڕ=Cє4ժ;[7at<vƥx|XN}\GJٍhPjpՇ9m@$gd4 òj' E~nPi0oW%CCx*,_cV\0MI[zயP4:ݝGV*663 !21eX|}*Vr bEDD5O «%{ 718\ħj:Ai@ѕC > 7sZ ,] `28N [z`wo-3 =eX|}UZYnOXZW~x}t2&E(_Uۢ U x{&&/?r5-iE6ݑS6*TxZ:`d0<32SbEDDQQ,yjP,XD ]:\ b.cxӀڶב@V[Vs*2>;PT1w\ ‡?W%k3g(_k¶ruJObx|cFKߕU 30yiðDgTuEpJ o+9ڈwvW!báV|}#(VFD_xH|4%i*omZܾJ DHd^WjEmc]eg2^ du7hpfLbX TclX<~e<W\mO &E`r݀&Ư-Xt}%bJC*ڵzf&&.;bn:DUnZLN<PyEޥ8}tym=w9+zio>wcaߘ8YY+@Һ9|kj&g֝Ü+1wؙsRˍX714Bp4p7@5Y&қ* !"P AD,kcpAj0]4 w'F J0fI[2iŹXysĆet,x7%hRjng*c LrCwM1ݝheb1?E}˭2)3g( ?seb͡zڿXDHq^2^+TVףvYΒIDtS=UɩH OQ!-Ri"1ba]=?FES;&,=3Tܷ|}Yr|89 ~YhxQ:oJL=>\A_`]-Òii<6x7{3X~flo)fk%e̍i藩7:D({3Of:On'!iwm-93,S>=6c-]di;3Ůyl-];ٞĕcّhRi2X 6: @.7~^&olDJܖ6-Zcx74_ޘF'ͥ-eXus<;2/}ej3Wb]xhHmjf/S!#zQ 6EgEDDdHGt>pmՅnwD`J*>vI[ZKC<ت`h=\' ccC+qAZ0&.= e֭ Etr7_}eAFvm-Ǔ~{oZ&a"Kɿ16|Qʦv4qBivj|s5^. v*qϚ",!˔|Tb,1KPTvo5w\>kYt-Ʒwf!;V`ưsQb \kOV}JUCyݝ\wc2F;T-d9y/ <Մ~@ ޛl+G^Z6=]n ù m}6)iXP2ݟ;.O#>WU qMpl9{]VԂ480y{N3[7cܒ<4^* '30iJ* f,ķwe#T&FF OK .A .T.Ƨ7#X*ի񀕊b$P?j} 8>輇3ߖ;/AZkT:ܹ NYAqlj#-Fd ;rr#xph-ɃNO·Ot@T5vx:ͥXus_? Zx$GJd<-o&'362+oTixQX{-NըuT ^N<6*ĸ~20ҥ6*q۪B<84 :]NLA@՟YDNwu~Oht@ǡ'?6Dn';=Z^ȉuf:|w/ru^ߥxU wƧb|`\?0'T8XA89gⱯOU?S~yzqJexE[,۲_vzCx̟uytEldt۸)Ӗ^LČ !xz::|B-;/Aj/m+XB8𒈀/UGKK1d ~]ק#5BR;6ß|zB,׬b旅hR {GքH<[@jKZng-Jsm\'َ68e -_DzoBULCߤKݦ/v ןu~<Ɣoձ|D%Ӑ٨Un5a i(l\b㢴it_%È^axvK__j󃽑)GO6j, Jcɴt\J5*^_Oe@$.džo?~wSrD_xsgJL4:bԩ. aT,W?[w˕4pc &GO5 LuףI kR1u`$[Q|xwb*еJJnf&M,W:DY6f^P=x^݋Y{g:묔R6;۲w~Wy@i ,e\:_7j2mMCTj+r=#zᡎ{κ]s%U{?Ut_+زt r@cć9+N{u=X&᝟*X:+ޒ_7v8Zk,Yx8̷R]k3!'8T˶{XNI1I{O+0wgU..ƵrZۦ܆ᄎ 1 <42~ L1383Gʕ(ojD!Pp""pǫᒌ$I,AmeMm@m'[BC`Y+ڴ:\XՅtG6Nըo3OeMm}UܚS*l=a:FX9b|6#?AM=/""" T6<ZN+ar lk@Q .J 9}U8Y[R!9ߦN<AR1eS\kpnb ?NҌ{>J3U弽M?nc"$xkB d9*X"E7.6VOj]Zt{?0ˎ#Fu*=pupT6̖]1"pݢ\Ijp"l3rm^(#(@d5keɉJb倍ϼN<nW㭝NEw,7q߿*m>ٳ+NyNLsQBJx"=RfRrWPk!d鶋c%+]WS^vʑʆ*5ߙ13vc8]2<ϊtʡ_b 5NiVgG%ѤָyhTixvd"b5'F$ X&vӵ*dWa֪B\?( cG}%msu!"[OѮŬ)R,^g[%/gǮaO|Sj1O89 O#Ҧ]#K/@\Vei~K;t>]1>KY12يk8P܊+D\h\Xm'z.J :_j><zwO=7>Gn 12שFю;W$c`RKGq \&܄@ת36.b tev(`xɯ5C["4,WzdrY ܌iֶ\FŅJQ|fHZlH۬9Ea3ZkѬ]PbT0l=趢4:>'漊6-͟cܹL|_ES;bBHOm.HtCX[->X+# v~e1/x/""[)R,>P6@q C@TTym԰|ذtze"fBb4L2 V*MF|X\' .[ܺ ?6k잿^VbpV(ޝxʳᬀMA돶oD89OMe|ù;*+VES13˕cD/} :B *QX>kqQj0@uE6@[\&ʑW/fwg!|֦f, t%Cš " RcmEՅMtĩʂԶ#:عxZVW~(is9vJOl*EZ Ļ w,ĕa+_Yz^ϜRx?8}CC̾>']Yߙ6P ]m7 ;̿o&^Ԯ]eؚߴ/iܺ|K&;/9bJ3$֨فZ]f(kCzh}WZaQk(AaSK1w\*VUV9u $hjw:GŹ`.&8OHAQ} ?#4LP٦] af6NU)X*nPѯxj:pǍM|ZaQ^N5UÃܟ/"""c}xg|'p_D:O8F 5N[bm=Q){ p8\t'֎Ear1j5/J-Bh1hl8\]MxlX'^5^+onCj R#hn5 ƣWC٦H=tf?,Pf֥s@Us;o6=v6a?)cZ&͝/ar Bp%xsgȏYJ٬쐥Nt,ems;llei:~>,W3b[j]7^]`>^WlA]{f2yaRV\,_]n쁧F$"kd9'{hyo8~8dǧbYk`C IDAT9*K @-x#VYEg H*vz9v|Sp{}GaHhBX&+8Ԑ$Hk5^g)e);d:'2]D`€3_ RcŸwf^qr\([׀Y hzZ'.Q܆p)w|jȊc$NN4^63Yhpupl=_'v~/'*~_o4*5x`mo;#G^ʱSqr::ZNheX237;OJ L:/gEDD`0*|uX{H/1r <^B`tA1_BV0O^ CB::n`뽿(XޛY+ 7) ko?kv3'^n)۵B- 5*l;\/F?[0W8ZN]"UL~x2+_MMCbXk <0$U <yyz)OgzW>y(n; ̓EӰdzZ_P+axnTäUʦ6R[pX,!`ߖzvWg\ w] |XÆaar j[y@3"""ғlF:"(ml#2e슞asnF/ l|w|1w]^\*€ *md:"G7:꼤 H%"g:b% w^Eqn/rU MJ@[mzz2[/oh\lU쓽~ged Hg4:< DKMm>34,_[C- ϠK1f1$(FDbz蜨#qU0\İAA9_ၭmZܽkoF^ ?jrh_[:2"""?tQ(/.b'. t_{ k2}v6m"cﺃXG6ҥ{m@ Ą%w`J* 21;ވ/CIJ "%Hapf(H\"ƛI}a6ܷ͟Ɖ*%P^rٛqgҲLk4(Q𝓽} ~1a~b&˿%1Ɇc]sp^r,񽟃\_kA]1tyqb1p*nTcWnn0ڥ/&7̉D=a(5 U*Qhǟ%-Xz㉫1p<*K[1wg9NMOrQHEE|7 6MWݷ MOG`UJaOn*F~KKb([;ʻut3P"άqlm;ވPkgׇ[}3VGc7>SFa'GE6Ȇ"=Daݡ:4j0oG4BÁ5=l{bqxLp_yc[fזw'oZ@78ӗAƵaB]t9\ހ mhu`O"hu(klG?Wkq=rۅ9O@j'E W'c*7dž%hR^)S,{R7髒H=Th $##J:`!~eEDD X?BY%^y|\el6miK<"((ȦlJycSAP\PP * HZ e_J!tiY}$6f_y%39ss_d\[ߨ} =&mO++vU*yzsԮoQmh$=~N=H{'CsRMN3J^AY%4ۢWu$ˬ{>]?{N7C~1smzϭک-IrҦ9ZCg?8fa'^{z"`뒱-G8&WE Tg۩kURbsLJ&Z $w#ݺN\X5:bug룚m kV]Xw0[;#r9ljbP}qٲw>M/|ڦ;uAگ(M{T[:S>6\x5[:uKѭs-hMW40<*9i&]p ޭ&3&2%ǢK,YmѪt5Cb9/\Imkӿ>i͋''zf׭jue:J5uWwSiג[ʜl]BM[e]gUin83gv:L7y3znQ٭[Vӧk3\]7wt|DkW}hr"xgf*u`wvZvUw̆R=U7%Őpj.㝰b<]ۏT u{^oߞoZ~ԟSJ ucU V}C{Y7XeOVK*_n<:f.(si͖Π=)ˢ^{wU7{>L&Ae ha~xzY|yJ:*4l4hw]s,J5dwz}~NND#gd }ʶΘ}د(U 3uےIŵ]L!̼\n}_EUЫO{*4sOV{f}?'[moZ^2R4Q:g>ѽCZw~I6>}[7[wU}ݤ24:z]8b򿯹k܌hf}A}@^hP 5HWu]6]I bMNI u9vGM'L4-\zTVSXf_/&S\S5Zhq)O yj2h|O7k&̎!1)6:cs.A:\}B`nLl??l߾QwŦ. zK-6]|D$L}V߫ k,2 gfq\_43lХG5$MU{_6%Ǣ&sh~@5QQ%$hnF 3 ?}> eh_5)xwa҃Vjw/E%zٺ}뉋gM:<ݲ6lÇN'mFyyV33k禛UFrS|YwU*چE.k3RRgkԑ4$Jhw95.?}_v/+#?ky}0WXo}=~+9د4Z'vu $~fA)&x,A2UL]tZNy<=o4j[c?wvzy7Yio7o떕uai ]"]bݺ6l7re[tf^-F*l: U2E9=pU`뇇V+Iӎ'_/o $ƪ H7]_e'ojl$k{|]{XZHO4VƪP ߀%.|m8j1>Ҳ2Lcs'?j'܇*8lhkH?Nvx?G c,b7ͮo[if:}92^Q ;vvZTYElӽFeט8u3ơzYzM8;VlM/yPY&ۣ՛;NU = K1t 9#Sϕh :Jv%jUu"=ul9ji0_uKnU\S'Z4+KW.*%W5>d!ׄvGEkW1 t}>^T Vr~>^kODYPO? DMsKuej%^ ]奨٦-{t 6c˞߿KœuZ}Z߫&N//Gzҡ}iݹzFiФvݷQ٨2u~ٺ+50Ek{yM;[mj۩KV[}NebRIY3 SU^9ũ:xj[zgWn[]j1x'yڪP蕭z[u:n֔l4ׯʮ$ie} /FNUGAe):,S%w^9\W;)`٭}uFr6grQnYYww~˪[VKJ8uZ0)]/*J[Ć֡=`tTPUAY)&ef6V-ݥVSUvl] 5ju]7wJNJWJUmQaY6GOe뚰3M'zXI튁oMo3a*a70ʓ[ u7Ǜኖ+|EZXU¨l%oPͭ[:u恹Nskhs<]zᏡzZC뫺u3պr$-IȀh[MzsWukT}BQ7(UZE}ft\.*L%GZ]okha{K~%+#U4W|}SMqt~ٺ F-A Suɓ1ݦ.rUnO]]xAw=]k^ޥ׶wqa/sRuu pzώfv lڠnYY_kIruɑEizKWv'M-&X7ITu+ *\E锑"\qf>^7&}-?߻8ś6ݶA:u$NV|ا_\?~m.xCN"yvc͙zVҡ6l.TXޓC u z1SuZUjtlTݾ>,ғZVMαKu,]y$$mjVnTݭ[=vIv\MMɶhzA_쟧V.}\ÁL@hNԩHn9y>QM{lu_SJte;ÝG3n]zT=wJ,2Dty[U:UoH?8TRUl]a/w9ǭzV Ҵ-NӌP%saVŨ̔G.Gv8aUKQ9|PJɋ+$zpjD0Pњ0Z޷R pVseZb3˴;bf.O_Kw880g@z4"Y#nkw;3] : ϥ˞s`Juq1.GKuxY;$~laR2HtݲZo_|KE;8E}b_%_[|X?>q󫞩ֺO QG+v*oX2z{P?Gobŏf!m]6{-x%Jeb ֯ۺд>>_.^} hkNzʑ__n>ku_ y^J_ںqE9ũJ3ueJ\ܣZ~t]./150U gkp9c ֲkds'Zst f<ilҔ&Km0HW?mk$B6Z }A-? Q_%'J֠@+9c-l}+l#-_i?sPSXӭuWH=@uUu|=͙yn}ʎUQTdn /[D떓jr%6]B~d.BRL|}.]n2 :hrѶ>jfg *ɲ0U_hNs4ĐZT_ Tv-??}2_^$3Rocb[' a}:yY}~Y cjx?/qyݭ^&eUa/N)7`s!:+!KҏI☢)`"fSW>W3h9#KB1 C 1_Ll/TJ2#Ho?;McJaUzk,L `߽֨3tԌL~zvu2}; [)+?V|3D?1fMLJY+<{ϬzϬ3=WTr{t3+S~I䩺]FtcYu:z99:Bk;aR2HtݲZAo }?֊wpp2#~}E[cY~-=@dwyt'LV_ȟ7f!m]6J5{&pytzJ5jzA?q~z7 Ѡ7w̦|lku6S>nH,%I=NrIҥ_,ѲK֎ю_Gwt v'y%}5Xo' DlkW]XS;O*I:<}Pӭ bD샻$hV[D3 ]6yxXjyAjؓ9iݙu?*yS_Tۉ־fTSX1!h`:eXSGg$Iן0EjW>O3 S#-R╌loEFAGJ}Víq-0'JӇxM;"~c}E\:0)]JRa1W;DW%㑾OO;V[-VgDFF);'^p׫zЇ:榙.OTۉӽ֐י$}B莘5}A}N%` =]-IǗqUXNUMʳ z>XIm٫V6@Y~^w٢N4>}g I3y9CWm$(`VCO?]ՠߞ1Et!ڪuZ2$ӬU^PݺONu?h)N<Pǟ6Mq$*p"bsUQv"$镭Z^^Uf׆="ә jM {V-3J~zTm{W ]A{ !3 Cބjw]cT7"6l?kw]6{N#v"${!3 "s-Ym]7K}И}Ђll x12_d::5]SjN+OUGJ,JjۘTEhbtQSsmѰ(ɃVeMפW?z;w3'ۣ]jd-;D?zapA{<ңxN I֖! 2?1mesi5wfb2%zM@ !_;Dmgg-"̢T[7Ԏt+6WQk'׿PM n׵Ӛ-#Kgk^I |#ߣMZE9 xEL `9Wѭ'O/Mp0u=궍F3(8w8"3akT6hh0H3 Vjg}Y}za`>3F5V4~j#A! 2xYԉse4H.l ΰ$]cc1m.-@2x +4+3uxX^!v|c*Ik?s/_U]aSIEif1a 2Zhs&I5ݾ(sԟd5.t=/m]X뱲 m}>k_Mۭ^1Gffu˒i}*/HZ+hkT}QkKW<[y5(fC΁!_n'v o~ũ{q{i{c$v"Sˣv{D4)ۢZ{ОN;!< jVU?ƪlU ˷@~}`MR*_*[ު/_hm{IΩog>n3Dh͘O/~ڦ?moRL]”mvݽ!+^Sˏ)bOp8Eݯ7魝2 C,@2l$M>RnC$SVvַ֙u?gjdX ì6C9i& 3+[6*:,..}bLYL(H՝glSIE72m^u{zC_LG tD{wW~^=:d%e]t v4T]n.FVnx!mVxbor= Fy-}4ٖ!Ύ CMw*q"~1i籏ZUkuO99ĩr}H?:q:߾֨\sMq?ys`c2z>g!iqGf"@F bI Um-+j"v`MWzZekݣ3<fdgir.oV=٦+a8%}kp*埭3wt/$*]z IRyaYZ]EѠ]G ']UvHZ{֏;KuچY3˯NWya*3u k#UdӊW4q{``:zmo|S f. O;<Ǒ6z=^X5PZj}5ܠKF^z|כ9mqvf*t9e*v99:n}Pӭ7wjCUMV6nH :iJN/TApjP9T}# 4k vt{ť| -ӳAMV#ɟoiz5#EujIz"ݿY0*"Y.ڢOď>h+.YX|X-c<$ݺk]].')?re˃GrIvISK!ITkzt՚cs48U.].G;zCئNPi͝J['m[;.[ت?l }KֿZ)`"@i+F8}xk'G}%5^L  ?WxH+bND/0N8ӊ! ml~$imQ!3'Gh}"~ďm< / n$i46 c^I$$xEg ũm'*gӖ=}&I:<妛^nIg.OI :G'F t%sI]Vl$(āVЦ9EiR6-C/TthkS68$48UgeS$^Qjs.^X%sd~{@zoWyEo&xE3۵W_<-(Mӂ*2sH ]mFخJ2Z W |d~i"ޗh}"~i"7P/Hl\@f)iti YvIm?䫨!^9ȶU*HJ;@rH0cE)E}I}+Z  0m?1"~KN+Pe2dGr9䪱TLSSd92S3e/MrK}#|%ߏxdh+A"~c}EdFt~a6ucui@@ܵkrV*2[+bv8xMxNʓ̐_뒧 @d*!I2x' Ȟi>?ľxh'wvR$9޵t_euUC2d0KL'@K\\`uILHށ)ݵ`'1[xH @$^@Dpw~{g[&;ugH38x@bc!8y 8Hl'H QlO+ڊ>@<}Nsz,1"挅Zxf vɎx@bc!&D@ H 1`i0x@bPÒ m%H[ď>qL_x쑔XŃpGPiū왶O+ڊv ?['9}&^.QNf;C  bZ2V´E@|3&֜TGhm}"~}E[' 7;N3 b >['9=j$^ؘ$g:t!v@r$^jZEbh_8L9+z屺4 TQ#3%Iέ=a;_%9=xEr~-!J9.[ !4*lϐSZ J3Uݧ97]4;Uwr 38"3e>$ClO7UGpH7˭2se>%C[TJa1xQ>}`_?GOX$^@ / x@\} QlO+"~ď?4KT [LR+M}`_?GO$^@ 1Ck?ch}}qƨlo@4x"ݷhkXx@Q ΌUIUs) qM}D Qق7*^aTHpzS;.HUP3mkeE`ȗʋ".绞`ۋF)PyuM/*^aT3V}}s}c3Lb㻍ַP *H >h5)zۧ@l_`gC3D ڢOď>h+rny-aB!ȾE! cc/Ը@?CJY7;:omw[ď>qL_Xr;x秊2O_B}>l,^vgΑ7`ug#mH m>Vqr7%I;*+ oүm ?}84m}Op69'.i{,qgڢOď>h+ǁ'># |mLꯐY)[@WK҃&,j6xXD'G}"~g$ "җ+t꟤!)%$W*^i$^@$^Q0<qbi1VmwzxɁD/D4n׉V Q a:&x@ŴebE}b_#~ďѧX$^@ /HZӲ[ď>qLOďѧd_ Q/ x$jXai' - IDATD}JbDXL+^M=eϴE}b_#~ďѧXӊ7ގ}`_?GOX$^@ / x$5v;//Ha9O*lCO#ySs͍O>oy9"򬉕xܥ>Gt\-K IqeK+6w鉍풤 /xn.^X4$ɍziS/s,:/Iӑu@i~թ:vSnTu]!BR^y)Z\tf5K؊W }xa-*Xq 5xLx@qW\+> {H2458:_+"]@X <jz5#EujIz0_D2X1ZRZ#Tr0U5-l`уGrIvISK!IjPCĝa @F q/ /w gۛ풤d87wR$ig`ș^zy[$i$x`J$i]`t@_ӣfk.h'8G dz!VYn?+STy~ {"lomzG~H yI"کLj&&|M-@qrN:$)тH@eWP`/XWC]408$ҁ;`u9ԩ}+^A1Lly?vP$eK#;@WwJr'ho|UVw郆՗K A߁Ҥ iOvv}I?pJXx&_]li&K\v5;W:PdܦMv6kxo+ᇦ^3x}ayn2tzLΔOr{i(\$^"i$$dᘉh`'ۣ MϖiJa ﶻّKE*LKGLI7uy7 e\&xyaxLt|9?_'eh@"iQÖVm֮%}I5c>I)*_I=[Tթvrm2d6nOl.ljӫ=Fi%J`VT^\I_z&D`-i]}&_nuzM|.!&yD M0Nzj&Z/ߪרz@ ݣ$OtHA_\#$_c 1 h9 3&OQ/I^ rxy| V|2zo뫁 @'^/P/; IM $^4[pT2> 5]F. |}0G*:r oreHa%[rIFJLIFcHD;ᒟ+MBI|FK'2^e# xP (RH @<&^7VMBNƓHH$z62O7d$ @$[$XP Gd Y W#-!D$ M19"IP@W{zIENDB`flipperdevices-qFlipper-bfce851/setup_rules.sh000066400000000000000000000045101452337521700217140ustar00rootroot00000000000000#!/bin/sh set -e RULES_DIR=/etc/udev/rules.d RULES_FILE="$RULES_DIR"/42-flipperzero.rules RULES_TEXT='#Flipper Zero serial port SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ATTRS{manufacturer}=="Flipper Devices Inc.", TAG+="uaccess" #Flipper Zero DFU SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", ATTRS{manufacturer}=="STMicroelectronics", TAG+="uaccess" #Flipper ESP32s2 BlackMagic SUBSYSTEMS=="usb", ATTRS{idVendor}=="303a", ATTRS{idProduct}=="40??", ATTRS{manufacturer}=="Flipper Devices Inc.", TAG+="uaccess" ' alias warning_message='printf "You will now be asked for SUDO password.\n"' rules_install() { warning_message # The danger zone if \ sudo -K \ && printf "%s\n" "$RULES_TEXT" | sudo dd of="$RULES_FILE" >/dev/null 2>&1 \ && sudo udevadm control --reload-rules \ && sudo udevadm trigger # End of danger zone then printf "Device rules have been installed successfully. You're good to go!\n" else printf "Something went wrong. Device rules may have not been installed correctly.\n" fi } rules_uninstall() { if [ -f "$RULES_FILE" ]; then warning_message # The danger zone if sudo -K \ && sudo rm -rf $RULES_FILE \ && sudo udevadm control --reload-rules \ && sudo udevadm trigger # End of danger zone then printf "Device rules have been uninstalled successfully. Thank you.\n" else printf "Something went wrong. Device rules may have not been uninstalled correctly.\n" fi else printf "Nothing to uninstall. Bye!\n" fi } clear if ! [ -d "$RULES_DIR" ]; then printf "Your system seems to have an unusual Udev rules directory, please check your distro's documentation and edit the RULES_DIR variable accordingly." exit fi printf "This script will install system rules that will enable communication with your Flipper Zero.\n" while true do printf "Choose what to do: [I]nstall, [U]ninstall or [E]xit: " read -r REPLY case $REPLY in [Ii]* ) rules_install; break;; [Uu]* ) rules_uninstall; break;; [Ee]* ) printf "Bye!\n"; exit;; * ) printf "Please enter one of the letters: I, U or E.\n";; esac done

W2JK+ Y|Wg1+^'}HrVEWA+^&^[5mE> T؇b0KfoDb~550S` uءhވ0l62/{4° H644s`Uw@n^]9; e UN`HzE首/ BxpG֖g3eck'HdڦmnxML|E/y9Œ1G|4 hG&ON&&#NζACvu<Fg˃>?9ss>>`U$bpoj,f^Cd97W} Af%w d4*!<ΥzU`K祾Qd+CL w8{BtGN:2bVoMю\ѫ\Ml29!zЗ=* iQܟw֚i*zaͲ ZTiI SDhFEtwzb89)E1])LotUPÚzJ4jOF(v$ w4[TdaO=f$a-ip1ta AH ʂ[c9OBs&_\c؈ARV~5!SPĿ'YdB 7WKm)?$_CHvI^;ǣuֻՕݷ3z9MmPo_co抟FuB $*A̖+nZ_SX]Z_" zMs[(]xz:k70̖@N(y@h/.MCehѓsV/|6.#= `<*xTbvaz }43Io%a8rX+g ݚ1 "SM?v] x|&֎8 jᗟbq?X߲r%Rxq;-6 Hb U D\Mù]}[&zvU_q(j[Ⱥ!\2*Bs[k Ep9tņ)e]d0èp#DW-ZFGWj4oxKAҷ׼7yO*}Q/B& Dq%j6HtPӉS*/#"7ONAbbO "qmJ TU7b`2ULm\ DVo9zZ7 ssg?cf?M @=Zx:/zꇢt~ TG4NXܮsyH*&zj@Gȴft#Gۯ}Xb$R~p 8wsBI^Cc#=eH<\_WK7I/q[ڶ( $xvȭQ* ^uDA6I~HqbfU~`PQJ#ET8wݑ•UA%JR'ۍxV"AZն|+RG[1a؎ ` tY8m4e<7,S~Bܻ{ͤf!kH/#6$ YsHk<Ԩ3Eq<։EC)+G@PSS 0ԥ#X i:Gpyt]RZQ~k2 9ְi$XѕE{p^MdxM>=t_E*_sIQh{$"hq*"_p/#gu.9,Dc뒍9+KJB2iZyue )lxVS7eH~ʩm ?nF4RZM;1HO!Bf0W](%I Q4a1wC~(6<\fcLuj-_q{8^reUMgc^+M` <5Nk[j\ba̼l&N ޾KLF&aߖ$0&@ ӄpb|e˾LB:;R'Sbp"+ MnjA m&zjU .m%1T8 AG-_n6MV wN+^']fܲRPTMn {_n=DUwOD6,;r(Ni\ncda0yJŴYWsv!MuA™Y~151-Y'®rH=. OO1䠀K*%#l6J,r4n8:}!sXY]f_}ܨ8?/ B Rlھ!B^0/aiſA4;Bd}c-g2ȜG@YXg\1m_h93D $u,4 Q{.ZkosYY6 \2c*3bsrqii i^ɶG4V}{KQac>ML?8ud~8 zAUeЉ+ѝ[1ۢg?)d𥿅)w4_{~ gV\,y`{I*/eZ;kq2$M-E[wa,xY!@2b"kNvPoy(xYn37;E‡6%yIMwgB)E | ֡=zɕ>#ǿnY90<(LZYpyHD@."Aq4xcF;ZAU0gWS'\1+`zS k}7J+j~|ou]txߔ5+ETc"05ˁ_Eq!t 9q~Yx!_BUq_+%^$Yp6qΫm7OͅeM;/BFԀAV^9$Gcnc3F']PA+ĪXNM.0P\s(l]_%##k-Td?/8ȋc[j8{lK1' "4 d -Q[ p!iA Z\K3ۣpeogଖ| Sl㊒&ӛX$"_T7)?L/xqe_Z4֠97H0ӇxR*CTQz߈ zΐV 0t! x]F;IO 'H[Bk@4\ xYy1̤ҔP>)*H2!6VQ,pvS?`c*JfQj8iCt [Wt # <_4P<,rO"qSRrT*ŜΕFT^ qꉎ)C ;L }=B$ fNS?@GBWQl ]tQP ?*ӭ6":r? OKwCg_ Cp_HQ?ëḟTx^?âm*}ana/o v{}_DOw8JLV~"'`Bu9[)@V+~;wϞ.x ,ƼD7nm4., `1E(`Fo-x[{!-EXRDtz'%X^%%(J% 4V?8n1 W׭9fZ 3/~D-Eoi\4zmgw `lݢ#_){0tPb3{E.b6K6HJNhCoVt 4(. Ih8L&V2/Ńu7eumT[1Re&H9tw }q`%>K;^8zJVAu)WH >H;[5'ʹM}R;aZSqkEUWnSթl&<:4m 7u}';6ltԥJ ivj_zON+ڼ A n߿k @7dCxtP%))v҆c.:twh&y>!,NMu\-wVNTXSC;o&f ;٪MKROO#hvэiץk TmiMJA.&60U۔r2].ҧk9g51i4o@mRk㠡"n<ϵ*2cTWL Ǹ*mt["iYFUr}v,zX#\xJgLXygn {95G3;*h&R]GhzqeqbbwPmW.krw\:f)=[_|<ړF1.jr6}FKktw@Q"ȃ>E-19P\Y ~wQÆ0rTrA&8FtqC7N%Vc.iKC 89jhH[U{.(=F0;9s@~՘Qpzs@Ɩ`F8|Nדd\X:OUpJt '&$Z@ n榮w}mԝĽ\ D3=*JYS)LQdAU)Amjiwxe@edL"kvOddį=DLơ%#)lM V1>M#@%ݢUK%Znp*z?J.ǖ2 R3#ڍX KיMg_uƒ@.v{6s/V~Hk[µd5I0l=)eZ^1+Syb%pV\ P>QPx,Oo`}gRyJ8-:xcTd(-lz$v%.R¡MjK7UzkZ 3&B!w"-|f[иè"7JNs <ͽYChdƖOstܔR*DRwr'uX= D 3 {uߵ{Q\W=C&4.oS[ yB:H%No4Bf>iAm k]WC(Lko7BT+] #/ [e5䲮kfnA]ͻrQF$v, 7W|UWg1ѱD>x$TVic [TFȇ*8Lnl-+ OӇ5>ax{|ʧ/ /"0#隥!Sh[~܅U!cSW╅6QNAr?ŭa=àEUߕx $#M_X$$ rƌ·vKsJ@DC)mO;0bTnV9*cHQb-_.2ޮ1뤨( d<-Bt[,ո 5j&x~HM\"҂%M^[ta/ފQ_;|&L&*C/AQ՚l'0)nb= UvHmpFLk'pPfKk&u+SF<:TQ~+K6Ç% ÂaAQN2xFtvӀV=d .0l@(3F Ĉ}vbG#$U;)"?\o8A3H-m6,In:r.MJH Tޕd홍4ru}?n0?[xڛ7Q%zqbjG5ȷ"n2J a֡~j3mS/Cf |:B;uN'bGر!sW/|kIvf6ڃ~l-_BOK~Z@9HO!!OgC>YpZ ep))d1y1(|d3wΏ[6z9d2Rptؔ4"PG0}rii-4`KfSbA*&vہ8fx:@m$}ߢ5x; zWuĥ @i<(Mw?&}O3ŽУ5_N436t#&'r,n>z<^' HULj|:`[WUqYF{,; Es|WO;?f 6:oe#8$=tRobF1֌ Q0kh%'- )8z\]yԘ\?/.Ґ}dN% K GE3 My\o6>h`-;D Qm,enF쒊rn U _ʈxزE94 ĄY8)&RjcH6'I}-ӳ1&D/<@mi`ҭ-W 䩿ktuVfk}pp+.'*"J,lbJYF zra^59*d~vS^]e\٪:/oPm%) Uǿ] Y7'blh%XA?ZVrHNAC:-KȀ G5=%˝8# &TߠxބI#$Wrnm1>w`<WqJɋmpl`1{͂6H#(m %N=<+,T,!A6'r4y}-%e,h1wǥOw`Y$ބx19 |P ,{ qP~'m_J %x#uH_}V^U|"i8r?ӹ}=([}FqUKe*)>(x+|iz{ ,2?jBl^Ew3n@攧5SNBZEDKA i{wT,4K"@ID{U4cpM^̩@[ LGYZ( M{(X֢+@MD7Z-dV4;wWb@uObPxS݈5ȟuϛLس"3% mgƇ5]?s-)gү>U8]A$7ָoɢ2ՔE?:OSi,qݬ7 '_V&?ы_7uOU qqQt~ ,TC3r<"Cixۋ9w7fwb1=N%͔lHp$W1ziuyi~5bƊ-bF~~=@(g#>U YFOּJF]EAhoezkhIcHC^^RGgb|qKpHr`hBz%Jw;"@kOgv*-T Uz";*BAJߒ5D|냽P=G0.G"\[ 6I5(qJ@ 3 ݙoc,;@,n!p[#g} ,RA*(CLMbK&pv|+H :x* #B#lQC6rDdjw Ăve4 |h^0f`]cZm$z4\5@g(CU6>@De`Z oG24;HOONe%mdS/RQ_0,8 Hb"VŤoǣv o7Kӵ pk2g™=Z q~'Q NnoJץ^X|;:)"HhWZ'vm0Xn<RgxUba.Ks&G&qȯ`D )]99BǸoʼn!6p@\Rԁ %N4Z$UnHW$π>+|I|ϪdEe;nojl㵱&;w9ZgJp,}Hqn~x^15\5"uLw_)Ο2!)やnv\6V <=Rd@-s&_Z5b*Aǰq#4^b ?p,@ig/ܧ!\>xC.L4tcfC7@>e=t;`X~f`\uݷM0BVO-7] sqABN}(,L .Z)Jϼ$b.V}Âxyoߧ(s75k0Q%H6f[Z>sJ02VzS*4$زkF9[7VFůFeۙ4wFIS<{S"cpOT,49}BPe }/Ut{d } kj KbwV~8͌KЄ7 D(hTxW]*^\)E`7YKz6t|U&B hCړ7g;=|J P/|fN-9TR0ZII(CCE_:s5RoHO ңgA]廊m+|luK7 @'8;#kxM1t\esQٍ|8SN6.=+J^C''Sq鎅dwa*7 ;ɈDvW o(@F).p%Tj]Rq*5ԜdkH 6'?q2B/'vu$с\a?Ofp x7DSϾ|-BiIXʻh?lwoO.B 'aI۩} ZZZɻ$r?bKXw_<(7@R,YQgʲH& "0-Q3KO~#%4B`ͼ~tl`ɸ4$..5PޞcIZ}nևF1 i‰`4 3MU %ۑ٥`?!HkT8xc*p "ũ? Aؗ!Oj=P$dٻL\??@ҁ&:"?EJ#?WwI4W* MwZæ骒?6 k+VGh*d~(i}$ )oÜQAmUz ˹h2d,q 4AI}@0xq'Z@GUpdۮNV/d:cRNCzHn˂bp<S)m xlX&` "hF&7am~9æc{b t-.lcXKF݄*0nNb} NKf3iP3Olbp\r}[0(YdvhJIsϕHdZ,QBTgUT bW IƚUcOc+u4-r!8fpIP>9c(2I "QFK( @"K5.uBd 4FP kw߸|hrwQ<4So7ξ)sa i4r:EHSXI `иUROVkdBW$R877eqyHpT· RA{5A6<̅ڮp 4֘č@CŪ-}t%sicf h'r3Uʧ;c*J|Gs66Njm7&i\5Jrb] :fyͲdba-Ӝ[ݰS^Nگx11S1ʧ 30-% kl{wrK1(ay^A,]Ѳ u~#/H%6=T\$t-,;ᒣnxlO64x\\UVŇ%1 nr9T$A}/#>`.Gch|DEA'˾ m/f ݜ4QE/zܪ1r8~є*0BJv=1")-rRCkiPTyDZQSz~{"lX{2%Uy %KjZ 2!|4*r$aMq+d-Şz2Ș0j@YiV:#`2\J*3c2!l3D3/мCɗ_^xVw̳\Q߱8X.YÔׁ0Ze5axCʢ\ :ʛ\H1sI5r!_2NK%e/w|7К1qJ$_m nܮz~ 5{jssY`?o0)8ԩ/MR?>B ,4'CiPwdsx<¿1T?A~iQrpTe >hpy?8qdp 0M B3=!%U5KDuN3Oӻs>kn:O g}2wvͻЁaa}G.%GplU}]Ύ)/)6YMq6L)U3=4A= 0# (+k=D9@.yr(!8vn<줾&s:ө"Q}rai&j[by]%?}I^_kaׅ{«6/b[ ^XmWS9,V$iջ=_1LcQk1uE+f雖 EٓIj?SDba$(Jk rml\/;e0`EZGd22ߢMtrq=ا+G`ERYeV @'7?dV ) m')D z0yQT|;B6(&k >eom˞ /z>`\.*%9GVTd74}s!\M`Vtz@t2I4Ȋ ae^V@_dn"-;vRRL0j~_ZqCAܚ|fР8QAي<-PYH;Ngjq#H[M|(3wǯwZ6媾0"Ge4o7;J42,T,: Mȿ %vOy[0"}Iwn˺Ra&{Z~!Q%DjK:M']aU4 guJ?!ctUDp4gvhZt-۲Uџ491AWT(9WqL_PBm:@s[l_Jp/3Yӥ*}P\0LWfӎ*49 ;H'km?A6Pu,(A-i2l߃:=^]sa=Ue)l&vq|[1qt2:mn+y^C1J.WEIos VCt6Y5lUՀ*ݴV7朴5f3|sk{4]MYt14I(LC4++.靨q=\å[䬋,vr5C)Za U|N/ 0y>.=d瞥X]mh5p{I_.5^C~I1;OM5K3PlE)#{ q| Ê1 Ya v"0 g$%A^Ğe7Qfc`-+dD-Ko `Jzh PC,dܱ-<4UНbd'y]ꜞ(76q*wPc|_D_ ɡb4rYX L Ed4|VBloi{t}mH]Q@i3 NNG O2NwL)Ėg(lq>ϻ4ɛsu IBmoJSxS86E5`@W)xlig#'fbj2).D{^M0Ax ڭNt-;~ cBo-SExYNNj{mtK`l WX+<ܔtS ߅ŸmqMHXGLܵ@jG GVX[VɚGJT{yn}A\Ћ)d,+#*]bC$E3M|L?חx%("TcHqI {ǁ;.-|}XIe(?9MgQOiؾ_7GF^X盅`{SCͽ~h+p׀cW[6h}`1L>vބ^>c<9GjB,Q3늒_ho6$W "p]a"Rހ__􇌅_]YEt=SaN\}B:LXe]7 ]*+Ԅ,!/ZVI|Uv_X=$`tO,i+ QzeIӨ1gK !Hyo8'a ( #3 䦂tُoY2^C!5!MGE@Ai9u4\eLsS, lӱ|Q=ͤ']~Ovײ*ZΦ1I՛"mQ @@YE Cb~1/xk?k7_byY, !å\&tI7c^i&X#+-xw|hag~! =J_ȩ\ P5ݘO:oVJ [5mߥ#1G:\nK} : FIQP+p)J /[\H`(hmb E-&RNmw̯$F>{?c:࿕د9:'#T6uK _۳7-F`zLr.E,eQ3Nz"$ |'C~g+qjM6^ 04n/Mҟ,KӍ6.H_N_çᴟR(+?p6T9oQ?ë_Tx^?äx6QkpH {k ѿm_tvGInm85U#Z{z*_ȧ'/u*B"1Om0"K6&\j~z"'B#8c6ׯ'8n7 LmaiF=EZXδZV23^ɽl*cѻ%kW>bO8|n5-o3rdU}~D-Eoi\4zmgw `lݢ#_){0tPb09wQ_Es`Yhx\օQ%h3-IN%C4.JW_%(=4zRY*jk]2 'Jf@&*n,C5*t] N 3+a>^NJryAhIV֯pqtΥfA >mmw/F5uJws%A ZeU]]e7A?WHbY7!{pZN;*qR ! Ħ+hOwOa ȕ 1NO58cgnq"J dzX F=4b8R>)f^(' cLZ6xu=R4H:)r){Kt%DOPatAwSRFzz˝%97cb!&;gJ%RZŇJpP([C&[[+l09o5_fecF=М$Y"o(Zy(>l¯pB|X<^OMli| F^~8]U RYU]܉p[MpMfJf}4g^-iY)W=3n ^R>׈84a?q]t$RװI-noOGhzqeqbbwPmW.krw\:f)=[_|<ړF1.jr6}FKktw@Q"ȃ>E-19P\Y ~wQÆ0rTrA&8FtqC7N%Vc.iKC 89jhH[U{.(=F0;9s@~՘Qpzs@Ɩ`F8|Nדd\X:OUpJt '&$Z@ n榮w}mԝĽ\ D3=*JYS)LQdAU)Amjiwxe@edL"kvOddį=DLơ%#)lM V1>M#@%ݢUK%Znp*z?J.ǖ2 R3#ڍX KיMg_uƒ@.v|Lg;PSWWAnJJ|.ZN9^)ANvgZl<<ܣz%%RΎ hUcͦn'xCFn@q"'1/Ne. <(ox `4[!pjmճg B\ γ* lSJ^9O_b2ПWĝ6Nh&tK f|C_N6[AQڨ4CJu3 {uߵ{Q\W=C&j'֦,o.֮ܪل |Vd{Ï)A2u~#rBQ _ǁ4n-'rI& Oh %tt?Az JJ46g h!VO1xh*6 83ei 0pZ"fyX_is"xK#T̙uС-BJʔVBLar8va2e :UBZH(ign;NV XCneޟX֪?I$YEFI ҏQصqU l7EP.;xO : $,C!52>xCt9z h#LD¸Y]kmKkh.{\cAf Z tamNa7p4m--ꙛ%J?Fax{|ʧ/ /"0#隥!Sh[~܅U!cSW╅6QNAr?ŭa=àEUߕx $#M_X$$ rƌ·voԌDf:IjBI7:mc st5ŸV]k^0=bOa,ZH4z400>L,S'hj g ], #W &i ϳXb?tR96:tNm b~)@ZÍB9J*jǧB8 $dmkT~1rUtx۪DžU} ]Da=]jC*ԊW0`'%;6.U)!T ; E& uک2QwrLo+n$}ETGAӦC9q`zL[ͅ%[{C1B]ǚⴛPf}x4^VmcPݘ Wkbv-l,҄߉J#;H8$ rˎ:Rň,XQ#u#;SG b>D<(A лgm~8QHꑎ^@p jN%9DYm;6; 5|O u(9ڡl#\GtC|c`XM 6T@ 7oD6LשъD >7NCnF{ǎD*lv\O (*jU8|Կ1 $kܟI[S5D+;*} k(0 T1;(' RPBak y΅z 嶌9YzAy/ $UHHl.A? ʸt9Y0Rig%88٨[5 XpnL@0@/RV$uKA+ %xTɡ԰މ9P} (F|Q~"I$%5&\pq1Uo;1;d2Լu4KC0P8Ko}9GV=Cb*AL~]`A2H؝S,:9dhtJ~ۋk2L\Kb/&Cda {" mgX/~RnhB-b8{!p̶6M@&ʤQ[~V͗y ވ( Łf朠i+/O2Kb&xɠwu㩪5vnjϳ$0Or.Kw/r"U YFOּJF]EAhoezkhIcHC^^RGgb|qKpHr`hBz%Jw;"@kOgv*-T Uz";*BAJߒ5D|냽P=G0.G"\[ 6Ij])^63 N^~e3 TUk'u N>w: ÕȲ gZ@b9ENI]̵C^&wV/ $q0NBg l+ӀO<4aS]Ǎo=fE7֩DBl ʥ7JhOIJIl>}WxU7o\?R +HVΛf t zn [6rM$NyNBS &R8"-xG 4nàdz/p_3L1|:~XO4Sh8JsP[TD_Zb=E`M!! (?Gk<=f<ڝOë}&t *4@{3N%!nѮSaiu,ۄ28?>d{ŵ뿥-HE!lEXQaAcХ(#M 幁c-~ {|vZcdĺEWLl1FjJ_5 E.s. ^5=Gi| >CS2׍J/@H)έHd>󡎁^mG- h #mc I,= +JDBPe }/ups iTS Wʼoa_[Ro;ea!sVrAٌirl&G|G]3~ #~faRe<^)}'֦ VdG53}xXsܨ$D(.+-QU2dwï= wȐ aOyn3q~̀R|{SH7q[. >m+|luK7 @'8;#kxM1t\esQٍ|8SN6.=+J^C''Sq鎅dwa*7 ;ɈDvW o(@F).p%Tj]Rq*5ԜdkH 6'?q2B/'vu$с\a?Ofp x7DSϾ|-BiIXʻh?lwoO.B 'aI۩} ZZZɻ$r?bKXw_<(7@R,YQgʲH& "0-Q3KO~#%4B`ͼ~tl`ɸ4$..5PޞcIZ}nևF1 i‰`4 3MU %ۑ٥`?!HkT8xc*p "ũ? Aؗ!Oj=P$dٻL\??@ҁ&:"?EJ#?WwI4W* MwZæ骒?6 k+VGh*d~(i}$ )oÜQAmUz ˹h2d,q 4AI}@0xq'Z@GUpdۮNV/d:cRNCzHn˂bp<S)m xlX&` "hF&7am~9æc{b t-.lcXKF݄*0nNb} NKf3iP3Olbp\r}[0(YdvhJIsϕHdZ,QBTgUT bW IƚUcOc+u4-r!8fpI4 jkB $oZρ3?ۥ oʽvRM{7YۅvL :jbf..*r9C+yb|^_i]3X;ؾp04,`|ZW > QXhZki֨pڶQX)$Zr6čHL'[s~a5*$]Md:((H,a(t|^c*J|Gs66N:jD `2W0RPU8 ʞ#Ã&|!e!W!@~Ғ9Nޯ<> 2d ƃ&&ÿ_0:E%S͎ZFH&Հp,'JlzDImJ ZYw%FޙRx{cX3Dr=kcjvR:LXړr!-I>;?s֮Ge-JX7pQYT(}skEeG-V5u`ǦR5vEJ2HF;-| H  &IsvJ/ U2Xޛ~Hr@|&n}hidA8Ǘ61 7qLv\"Ijl|q1QUeϯxD[I%;ȣRLOuū >>̺dK>U#7_N%-Zk$o8sԔrmc˿ *_M&^D]oΦ:ARFQy npdzth+CmWxǦ ;)HJu/{KbD^7mCfLvB Y26 Ro-a3˷7Hk=-6Nʻ<딳[Su58\g 26E|yuSJR&p m_0V]x޾@!`Ͳ[9Db%On!@%!w=ro,=w_t#?^fc~k:?7>fqL ,4'CiPwdsx<¿1T?A~iR-J8ΜeC -8ea{js^q} b٤\eZZeu<8 J9b~ПMoۖ὎<(4T cҝUmQM _=WwMnWn*{ Y͜o L ;g<sp݇4BC.]sBQȫjIL8؀PR%^37B_BJg}ۤPg}o"%8W5̶D z._H zR r;&&_5`^q\ADEe\[pgZܒv_gOU;N"z:@J2P)8K[&T0PWeO0Z 9>19 CX¢r=3w˪22ߢMtrq=ا+G`ERYeV @'7?dV ) m')D z0yQT|;B6(&k >eom˞ /z>`\.*%9GVTd74}s!\M`Vtz@t2I4Ȋ ae^V@_dn"-;vRRL0j~_ZqCAܚ|fР8QAي<-PYH;Ngjq#H[M|(3wǯwZ6媾0"Ge4o7;J42,T,: Mȿ %vOy[0"}Iwn˺Ra&{Z~!Q%DjK:M']aU4 guJ?!ctUDp4gvhZt-۲Uџ491AWT(9WqL_PBm:@s[l_Jp/3Yӥ*}P\0LWfӎ*49 ;H'km?A6Pu,(A-i4kh'47@hΏz&K\٥ xR[f9O2Ѥ녞O#1 ?-3/y2)WRcT]XgB0شh67w'=f<&&L fBiyhYtԦ$`Fa(™֛EǝvViJRZKO>Jg2~+C^Q* Psݺ'A:\:'ٞ`WD?LYӕn6T!zS@J~4/ᮻHO6/$#EGS{#NË[MK<ͻ :(.#pוH$Rw`랉I\ٷUHPbʥ'P_4~ }> gSYO5:cs#uE@yJ /6]hm]?]AZY$8px9=.Q&r0-i@(.̜@/]y ֵ?(ǐ([8 G1B "oAdQ& `#xSɒs`y Z$L@.φˍ=<8=œQH"Wt*5([`%*Oe+>oi{t}mH]Q@i3 NNG O2NwL)Ėg(lq>ϻ4ɛsu IBmoJSxS86E5`@W)xlig#'fbj2).D{^M0Ax ڭNt-;~ cBo-SExYNNj{mtK`l WX+<ܔtS ߅ŸmqMHXGLܵ@jG GVX[VɚGJT{yn}A\Ћ)d,+#*]bC$E3M|L?חx%("TcHqI {ǁ;.-|}XIe(?9MgQOiؾ_7GF^X盅`{SCͽ~h+p׀cW[6h}`1L>vބ^>c<9GjB,Q3늒_ho6$W "p]a"Rހ__􇌅_]YEt=SaN\}͑p~05Ҡ2V߿@e,9b ;dI~G$TI:*'#b֢M0E^4Pz7xbUH3r/~f ]׏P%l t1ba _N1f q#41 0ԟpp!L>u`ۏ$~;|=4ͨu= ݩ;`*LÇUqb{ws<P GqF쌬Zۜ+euk7_byYDX;_Pqnb7|(dcZr1}$@ k很v˲AtvJ0_*\ P5ݘO: fl-F;j9 2CŒs_]WaiQ$aĤKx_[#u^m*-5yfgȰAs /YbNeѝQ)~@3wY"M#,0Y RDM dLjK4ĊC~3$=T]7D)ӻ)@@PyxO*-5=Ob?ԥQ;Vm`|#?iWOm:e?/ڋY>o v}}_Btgѩ 4~n**WZc5@zjt"?dC5]jLuR:w:i'ohyu#TgٖɨrLaoMKd3 Fj͓Oo(UET6bOJ)[ [9/G|xl~D-Eoi\4zmgw `lݢ#_){0tPo%1M$@m#;=g @JYcq!$s"c$QFY٪OXK%MMw+(? N\CMXk;= mY@ uQ|\ XZC!z4%S}Tg\M3OIm\ܟ4E}WQ"j[oRw6?f]]e7A I-#'=_[q^ `:*'v+F܄f ̰߆{$(U̽Yo#D{!!cm"LL]z,YCrR2EsyɅr #/8,^N#GZ_C@ &<& ?Y5^ xvo{ўg0Jds ,Ѷ~m;:ӷL<6~71L$`5-muBÜpO5[MqH @ f,@  0DboGhzqeqbbwPmW.krw\:f)=[_|<ړF1.jr6}FKktw@Q"ȃ>E-19P\Y ~wQÆ0rTrA&8FtqC7N%Vc.iKC 89jhH[U{.(=F0;9s@~՘Qpzs@Ɩ`F8|Nדd\X:OUpJt '&$Z@ n榮w}mԝĽ\ D3=*JYS)LQdAU)Amjiwxe@edL"kvOddį=DLơ%#)lM V1>M#@%ݢUK%Znp*z?J.ǖ2 R3#ڍX KיMg_uƒ@.v|Lg;PSWWAnJJ|.ZN9^)ANvgZl<<ܣz%%RΎ hA<=06s:6^a9"[z-`=OI)8)~*YqBAZoX)\Q2Ss7I捤Y/,}_yYER$ E@eO \l}}[>Hk ہnVF+<꠵{~I)1~Fr\,.KD@{B<:H%N[%BTCI|/:5À.&l5cVG5vՃ%4FK8/8^;P#y0EN6GS"[A39i|YvAE:H YAn{5_쏺>B"gEs,% BcR_Sƹ+aF'wIE 8cV#yhns?s(ÝL/I$@AU1),ٯ0I5Cu(fX FS>$=k,U~ }O_џ¡|Nltߓ]fmK -IPљ$зoɚ{dW}u傼xm31BGfkEsp A:Խ8Cج-4FW$Z UtJpk#`?ĒsX|t@rXiəpSyC1!{{ML3AOv%VWt蒪JV~!:uTxg@戜`[ERc89˟_F0nf\MO)WrYR~̹}][YJ)bh $&Tax{|ʧ/ /"0#隥!Sh[~܅U!cSW╅6QNAr?ŭa=àEUߕx $#M_X$$ rƌ·vF%U*.P(GC$( e/k_[DN1u( s6 !z1Jb!N%'/K3l=^4ů|-1V4Ѭ&=g&d'?HCGxδn$}ETGAӦC9q`zL[ͅ%[{C1B]ǚ$XbwiS䁌<`ЍiKmL$G1MU̝ٵ?+`Y Jrǿ:~cD5_WTD egZ;. 57 -t(Q,HmKM $+*{rYKgr'.0JC>ɉ+迓3sVHJnlBP;t=JTE{acOÉ,6]&5yy)p(e nqQZ!ޓ,'q'ٽ)T&4N gU(5{xpsTwHeXz"/>i\ ߓ1Oa!Jۈo[0 'K<SJ`TԶAVu5C6ov%aM(0 r-5(D $zsw2ו5sZk#&40"2v3DMRE{C5qȜ'p#P\9E<@Gy- nʝ`Rc[^GH]rR}|\2:'Kz'wiD$pl0ނ;.'x)7lJm҄cYYQ^"m>F{ǎD*lv\O (*jU8|Կ1fd=T`1֤{FXP,a!&ֻd>grX rxn0Q6&N2|癲fcp_kP4H#!]D,Z_ʁI,mV5}4hTp.dӫ>.X !${>“P2k5Wl쮖pc0T~؃R8@ߒ$SXHa7ы_7uOU qqQt~ ,TC3r<"Cixۋ9w7fwb1=N%͔lHp$W1ziuyi~5bƊ-bF~~=@(g#>U YFOּJF]EAhoezkhIcHC^^RGgb|qKpHr`hBz%Jw;"@kOgv*-T Uz";*BAJߒ5D|냽P=G0.G"\[ 6Ij])^6K hP19Rr}C,S'kA\N"Nu N>w/y-c}"nOSI- VsA0))?(x Rvr]D.: LU}CMA_Hְ83J[hZM Q*roqLE 8ge̾U-HIвTE|}MVĊUrLL ab DbPZlmȗ"0GY۽?9$ i"bg'F)#ck2=k/E& fS?,ey')%pD&^Voȭu_S^9_CZ/P}fi^\@*;KĈя`Fiļ.6vXr_O9-.Űz\PUq>d{ŵ뿥-HE!lE%UV-ۤnQIWXʨ_]1ݛG5a N+螱̓$=/~@6=imgO.- j:I26kՋ{v6ؖp-P;I~s!Q3V#숨Em` ]nM"&&H26^/t.Bx2`iHhrOW.Ϩ IZzʅ,IϿxeW?.@jY="ů!^,80tBMj糃 U&5=3Efo{qԊRζOϭC.CbK3fgYó90CSmv4߃j% cO?joLkQLJHJEm+|luK7 @'8;#kxM1t\esQٍ|8SN6.=+J^C''Sq鎅dwa*7 ;ɈDvW o(@F).p%Tj]Rq*5ԜdkH 6'?q2B/'vu$с\a?Ofp x7DSϾ|-BiIXʻh?lwoO.B 'aI۩} ZZZɻ$r?bKXw_<(7@R,YQgʲH& "0-Q3KO~#%4B`ͼ~tl`ɸ4$..5PޞcIZ}nևF1 i‰`4 3MU %ۑ٥`?!HkT8xc*p "ũ? Aؗ!Oj=P$dٻL\??@ҁ&:"?EJ#?WwI4W* MwZæ骒?6 k+VGh*d~(i}$ )oÜQAmUz ˹h2d,q 4AI}@0xq'Z@GUpdۮNV/d:cRNCzHn˂bp<S)m xlX&` "hF&7am~9æc{b t-.lcXKF݄*0nNb} NKf3iP3Olbp\r}[0(YdvhJIsϕHdZ,QBTgUT bW IƚUcOc+u4-r!8fpI H,;MfVdX #I(KrU:J`]ڕ|)lc /@NelOvZ]JoOD $QU12+J쵱ƚ"FP3`(cw׻k#$6bw+AziNHk "ۭi-9AD+D=ԠpE :(p09415􉃔p4AǁuTy <Oll(tԆQ;F77b<.L_|5QƮ"mQ~0#M1ioYjUP_slaOȨԷ"!Ta~R| 1B5ǥB##APVotHu'JlzDImJ ZYw%Fޘzj 6D ^EYi9b,wnhZ!)7Ć(T G~z/$zvXH]^g9m`>#G1C9ra"i>OgUǦPgR5vEJ2HF;-| H  &IsvJ/ U2Xޛ~Hr@|&FCg@&@n?R3!4G۠].(Lk6 HG5w4v̓pF=!een)嵯>2ZuG'L\4#Q麆GSR,8%P@MVE"*p] eJL\""%l!й&[R*Wj Ɇ:ggw"22ߢMtrq=ا+G`ERYeV @'7?dV ) m')D z0yQT|;B6(&k >eom˞ /z>`\.*%9GVTd74}s!\M`Vtz@t2I4Ȋ ae^V@_dn"-;vRRL0j~_ZqCAܚ|fР8QAي<-PYH;Ngjq#H[M|(3wǯwZ6媾0"Ge4o7;J42,T,: Mȿ %vOy[0"}Iwn˺Ra&{Z~!Q%DjK:M']aU4 guJ?!ctUDp4gvhZt-۲Uџ491AWT(9WqL_PBm:@s[l_Jp/3Yӥ*}P\0LWfӎ*49 ;H'km?A6Pu,(A-i4kh'47@hΏz&K\٥ xR[f9O2O9Vi4zgHzp3YR~"OA|5׷ʀ$o:S, 2#)4 怏Hǵ[6 )BOˠ@V+7;Ѧ-@M`xcR)j^~T4T2)|Hgwqk٠(Ăe(9sG_-T/qP͋.zba]81$ w6T!zS@,$L;_*~?KJT "pk덋<-cNOK߈fQ8o;uXNw@ێ3A$JlڛҞzGseG[82e-6r+B+>þjәK̯*-{ F$E))mI1sa~yy }VZ~]N#ʆL GB%#3蒌IYELՀU!HA;PQukMv^bywp"(pS(!=EQ A< a߅L@.φˍ=<8=œQH"Wt*5([`%*Oe+>oi{t}mH]Q@i3 NNG O2NwL)Ėg(lq>ϻ4ɛsu IBmoJSxS86E5`@W)xlig#'fbj2).D{^M0Ax ڭNt-;~ cBo-SExYNNj{mtK`l WX+<ܔtS ߅ŸmqMHXGLܵ@jG GVX[VɚGJT{yn}A\Ћ)d,+#*]bC$E3M|L?חx%("TcHqI {ǁ;.-|}XIe(?9MgQOiؾ_7GF^X盅`{SCͽ~h+p׀cW[6h}`1L>vބ^>c<9GjB,Q3늒_ho6$W "p]a"Rހ__􇌅_]YEt=SaN\}YDw*fFf&Ge7^#73zxHl{hVT6gW:K8g5`믘@[xˑ+^E&uyП*YOןra|Q쯏31 CE֯A 習>4RK9'W0I#k-[:ْoԆl](Jݦm3?U4ݎ؆"A>2R)üC|˝ѣevk7_byYDX;_Pqnb7|(dcZr1}lҋqip*T8(|AօiC( vZPQh1ٶmW3k #wy|/D 0 'ۗ3EC`iP ,OC]⥆b3fs$jX:&D؁Ft>vn(&Js$&%C\0C:;'J?K֑.8tsZc/}R" wZv/L$c Lqx+X>|BT?0_*> tWs*`tQƒwQ ´*||YQ}>Ak}_¨. U27FjU+zcB"5&%uˍWr#1qLhc6M1*ѨG1*ʓ9Ys*.PM"oB…qўPvcb.B_b2.9:}prVpɝP-oZ"3Jy|h@L:^U((v\I_3GdX4/ϗC3+';[;φ;` o"Ds\ǯUeRI#nt.%u&,MNw- 1j.4Q&Hcw^H|bv@VIiUӭjO< ^6dSՏx^'+10c'(=P ngswe8# ĀV o|3@G -p<@ʾ+f!'>(w? KVG DqF_T 8' uOwf7j)ig{4ܺ)v@d3x\ƅW yn=mqh_Qou(pk ߙ) ՒCyh~w跭؟mw'e~ b72rQ4(i(71oՓԱ!!UeVoH)ez@a|:"g&pZ8 pp,Eey,:C?MiԻ#A:5ZAOfV ;>ZFu/k=-7[7jQOw婏;H VԐ"{z&'{1j/'%NZ^(C-$_3 NqOhHExVqS\w5Z&:2%ΡaPq)>:~f> l >&!vw[G$bٛ;bJ$) $sˌ!W_ו&Hkvǰ>fBo ݁M¶LA kμLZ0Ir!Hj掅9@$ f{1~f,x/㵦OpmG/zA ѨH'qT,bҐ!4= =n!` ;Ϊ.Et$ߚ ޘ8Ⱥ-tjU]Fb=J( x:%{ȉ) DB%~2T: O-5һR+a%Iq6^”x[jw!LG}6>EOD{+e[!a7fĮLB)[a]f+A8P1WBZ !ij63p."'ƾ3ET؏TlT!W(Kwpb ̮#5nw:7%1;1aI]Q-4zDա#XAZNPv\T[Y Q^x,='oMR C[6nmcc.TC/sy|;#&uwCW@;`&yBŵ[OfBA (=F}KE{I展)I,*{w@ [ahZQ]E܅WŤTWp׈? ۃV-BC3Z#E40H\*qrhK;6$@D@f{xXAXhJp?%o`ȡA2Іvv6 "v }=kG(r`_sC8wMYAbHIa*A 1u,Zj}{niPkUAD^4^P)"JX^dTjR=ڿv[NNʘ?%@ 3?]~nlM7T0 Hr'Uۊ!`K qD6 \%rzVJ KJyZ' ߔ " ly:|-<͕g~wt<(g's(J<5۴x}-WC& /QFD#~wNjԎ~Ɔ[K1n?R9ə/ڬq}U| g). R}.s$\RU "Wq,J6#QHϭ}T͐"[7% M)ڭzʖ*i(U hcR$Xm{JE[k}잪EbF kx3Q& s/Yደ vTt7zi_]@xdgJΒGSa=MZVYk=%K`W3t2ZX4Zf"84i׶p01<$(aoCΉX45?8QIkK=Be|l;5;6`k~-8rSh%1"Բ?lQkD[j$+h\JʃmVlܴ'a*@ :1Ǡ7 x?>,{"hvK5SQx3& D6Wq[K1lAQ$+|=q$|HQe p07S=ʧ`v|~&/&/̬ ³}_xR@8uO{֔2 ś~BW7>7+ H_`Ғ[8y/J p?;’k2{.,KR:ҭjQeV/뤈hzM)h/̫;e!bJ<-J`wW>D 0ԝwx߽|p>x6qiQbJoB~LJ_}{BD-;&Fq1v> \*@3bHR~N"kBPtQI Q'kop¡TѨs:Y$_(nMe ,B)I}o'#Ǵ+F [5Ж\(O{wûZ)WYw#%,Zxj!ث]')=lD3]. Ky&ށe^ *PU^52`] omפ҆.=+s.6'tQnd7UXNQEƵ"wIEAQhCuPE$kX'tQnd7UXNQg>T.~P$^ ހ@WK  +6!δK/P)Eݦ/u, Blg8[e!_[X`y-``y-єg< ɥ6==$2u"lsmۅNj;NX՟E ̺*o*^ r33Y*{IotnsF,)N<>|VCZj-!^ yPP~S8;O"=Rv,+Fo\yWrǜUVEX}aUVEXfwW}}V$Q_~_:EXQ*>*3;>%$_~_:EXQ*>*3;> ?QvfU9X-#:~7϶M7ΎXY5:) ؏,5aP֬7bU>dLUqH=T[AkdaӎtE@83 ,mFZ=j:2^zSrǜ* ;Ʒ_7;*_T܆˚:E3"$%q+9\yWӯ[u|ޕJ;\ 5:E3"$%q+9\yWӯ[u|ޕJ;\ 늻:E3"$%q+9\yWӯ[u|ޕJ;\ tZګ<Ε(9@L6=}Rxʪ[N+mDqrxל ?\`@ ⪡Jle>ߺ*α+~딡^u'[\Le8d|O6'G'We7!+Bt7VCLqcRkF7oUo?Jl'${k?T{oɯQ/%f 90RQ_;TW1,"K88wL5Q:GCw3}]"ڸr؆ f_ؾ>n*]8-}R2ٞLTb*PHTMHd0lU祘<0 C_YY-KDqֶ`i蝁߰0?3IFF9\bb+Vý bkѡޅEj˰tgxV?C7UJS}i,|kĖ"X׆9ͷ;c%xcؒZK9PWݏb@jٴ4-=7sţ96?Khj? p'OQ`qS|J6^o=uUaʅyobuЭ/\ Httk1.!p1v&p ~byղ`Raݶ;o]S8gG|8?RrQ)e]\ p,3?8?]|6 <0Y*|7ĩD`%yod)Jz T\ p,3?8?]|6 <0Y*|72Kf|8?RrQ)e]\ p,3?8?]|6 <0Y*|7:[s(hLtZ+z]#<U9pCxOY- XvA~n&?Poǵ2]C)LgЃV"0$B76%tB|.le7`&7DǖEADpZ]+$JM@~Ջ!ubj,&ubj'Fc'>~]̴JcJ= G@W\a|Z_<@l!WVVa^-ۭ~cr*hJ<8;\)̾دQ ȎLem' ;L 6⁇*1^ ]a(9ʽTRׇ"^ SӍ>欑r~}sE5;PC8_AӁ-Q{rrIEQR(^ZǬ-U߆빯_-̎b  5kzTkwU8LSSxcɉ]ogYhU>G> I=Θ;!Ѽ&%MQ4TfpиhU ?nMr #(I#'뫱sQxC Fg<`8`XDk 4 :!ߛXi'aqυt𤢖JE|QϳDh.ڷ60ʁ45M7N^3@6d w s4ZIC|qoyh6KrUEH^kW#{,o׭yІG+xn ^7T3) W7 !5_}oybX9\7#pp7hl8z}ߝB.a&ѐJuOJ!}_"gՀ: `rCUt~b>Vh@W>4x? IRfE(T 6F-k!_ųUm}qlTB& H(*߈[?@*@h= vqFԞҨpZ#~XG$؝!3^,/ !m di;^ۭ>NKTȆvf0ywvq ;lLZh)iРh5BxH:'?؏D &S[ĚAP}dkxRBs1,Moimx݆1U FRadk6[1 ~"c 5}ea! F$j5?㿀BA $%z0G|߇a!a G߇a!a P01N#T&B,da̒^%al9.W]ŘatY"f2ڡ. )rrkL)|O?W^@bj$HKnǣy7't_.˨d$6i F`(@SWWxS22ƱW%aX)) dܓNDUUVaB"BOB3LLLLLiGWX^M0LSTNA P&&&&4̫10LSTNA P&&&&4̫8Z*|v0h$D9a}UgMu/Љ2˅c NjI6fTs*/^nK&[@NF(,O-i"r|6:N305l}S{Ac)x4oRS g6WNx̷9 9-lP/"5P$`Q"nS{ {+O),%ȡ"^DjHD:ܦ]W7"RS/"y#r`ev#\܊w^"VQ.C_x%dSmIVᅱ7~vJB]ȇ-FCۜYŠjFJ7xk6Dq@vPZeD@pT-p{^`'^AvS u2Ř{"bWPmIr#GسdWLYM)4.R2H,ţnGlJM ҂WJi!Q4C{Vb W5 :Yo <2i(_M#bcKW 2VԂ|L1|.o_5?0&|<zcFa^qbD=R})H:fbiX'Pۚq儤q.꭪~EV e^vL0lWu][T>@V&a/<gs,%#XAwUmS,-Xa(c~O!Ng$P{&?ku[ZΣOih(gr Z[8[XJyQ,~ ZU=MQX>X(n\Tͨӳ2m[iG${]h&s0' >< ?arFuX2 "s9PFZQMhϭ#Ka J)y ~RBҊkF}iB_K%Aȧ\0S3̒ZےDG {ʷ!>!K/FyV^C/p$y>Ω"Sa0]niѯM5ccS3!_|,vQZ3u&7">[SPЛ&R@}ԷD7K}Rҝ߿B !7/J +E .}8}#k U-n  j)l*#ҤRT)Gx*9 $qYM,C떵iQoHYa2<ʀ0k@;+QrNh.+ PKBa^ uw 8+J}#љZW[XD'BҺ@ĮD3IM,eB/7Tm`'y7ZF0+BGcLHF(j"kͫF'0 E `4P-@5G5D >2& Qj[D}SY@, {!xj-Khk?؈}ZeULW m Z JH̩ zH mG+ Jņsxhm5 N>r>)JN )*NRU*SArה`^Ƣ|5Gi,MBJ_s)U u17p~^:+x|8C[-C=$`B;?BxJ!C784csэA[{ -pb2xy4?ͣ ˜3<7,|IuiI8Gu"Z 5赹22Y=\/Swj'l+.vUMJmFM"yzz(G?Ahݬ 4WX 6]ۭW$ A040RzڟT9l6*K9b5 퉕yӀ11110[ʼʻ22*ڽ>`N|9 F<l`G]^~U|*IhVWb=΁ Zxx;Ó ̫̬9n{**de^e^b}jpzܗSQNt{)hq?6222̫ݑyyOͦk&亘ҏsG]K@wxe^e^easWW#**%쟛?3)Lơ3ǐQ\vM㩌SDH,zj9c5ƗO*T34SA$(`H>݁V}ɯe!C?d>5$Ndr?xٚHR )[=vwi%uO_O]ր{}|l~XKSwRl[TtQJ=([Jj6+>mݐ-Dzy{J&uSOۤN@j F_Jo3VaZƾu$ėظQ N7!πh$SWHK_W?dn xTstflæeQ@ #5TQ@S "1љS[Q?bQ6%^d*k,5.D j iS#cV=-dMHhAfFݶrR m $ CRo {@RJ6pchIiPN[N0SYjRhz H(&SYjRhz f|H(&SYjRhz =O[],eCWgUoOpЯžqX__7%ĺ^848nVS0#Zd΢.걨.걸Ǝ.걮2NOHKL *XaVx 1]6DSh|p0B' $#0 lP0p@0Lp{ 2̩]'L +Aߖ8)+(6zR! $%]s`@mgQoA j.s!ve>U2pFGQ>*/* `Zr {a 2!iF(z~#p $T^T-(HބnU+`eLWs.)oi-0JH=ɤWO:- G4ч$(ˬ|#P1MJnރ14 $Ӌv3۱ ʝ[g4Ti ջf~SOUFi_n9{Bbѡ8qNF6Nu\9)?UT?8g.r֪@=ұPy<*o8uo/գ,!R^c*Nxri,uIPW;B%G$&L,*LieW~sc٦q4* {#+>iIڼʻ,Y$ Za&5+w鏲gL}y@z[T(etMDQӵyyGV*Wڀ9'D^F?mc쫴^e^e}:} `=7TmF>ʻNUWGWB.aZѐ'V ?R" HVޱӥh|9ޡ=jm%? Xs 7LQsHvёDU&:cHŐOç ejQ^e^czFWWAMA +̫o/!P7&/ Ol!iYr¿d ?Ʈ6P 8XY;'Jۃ8X%$FVvg=ڵa/ji(3'TK{Ħi=Ɗ0RZs4F*L9bH '6-dmw"=ogsLV殻;JkYbg:Bc^SB_ A,|NB nB[gcFt|]?V,H+&]Yw[z{T|4,홃T3ª ϒ< ZabF/Õ;^Wz .c#[NC3gɣoE2 bC`1 ʾ/lɛJ9ex$5:u{U# [.id;fc] '} OK Cn4'ftP8E1ړ)e o,7[ߏs5@Co:[^_t9J𽹝j^^ . HTR}ydP'pQ)a&UN9xupj?&Yi;FdAn?H;?Jx0q^7v-9 5y{@q M5 Қ_[6T>^(5CV=H%iH bTPepm/@(a*>G(T{G`:կyDP=ΤjUʖJ0W6IJf1S5<9㞆fo.J5v&ebf.3~}w+%j_tyS2(&0-Qtum^Rm ?J s9+ % R|SqCg <A 1fQ@bsF:l6``?#M0*+9bEb>jX"-h(|wYG˘| V%pKZT\-d)&Н@jXYlTTS?F$L〣_*24k\pǙM~̈́ ;AEu#mY|gZ<*􏥛c@ne|2=mKFqd>;&eruZt1R?"҇YktVRmve'h*l$a0_k9UǯrQ^;ep(#&YłHL>I1({Z2zB:Ż3a\ {Y[hc,p. ƵX V[}!~ġ #'hI爿dB'K oLMhտL;Qe^݈(DL6 D pֱ_ow0kl%RJ~E3L4xb/ ( QE͌ab=k~T}gQi{\AƄ;4.__&R1Ϩ=hS)O}_ )W@?i/z*`46D_u7@o3Q#?_g=G CB7B/3}AﴺKG!C_iA|4h a4w_R_ ?•^kB=p 𨿅[}_yNW BG  ϨCƟ8W>WϨG DimJþQ/ZA;(UIO4_ ?"_oM_hzBh' )F~A]/(UH0\JʃmVlܴ'a*@ :1Ǡ7 x?>,{"hvK5SQx3& D6Wq[K1lAQ$+|=q$|HQe p07S=ʧ`v|~&/&/̬ ³}_xR@8uO{֔2 ś~BW7>7+ H_`Ғ[8y/J p?;’k2{.,KR:ҭjQeV/뤈hzM)h/̫;e!bJ<-J`wW>D 0ԝwx߽|p>x6qiQbJoB~LJ_}{BD-;&Fq1v> \*@3bHR~N"kBPtQI Q'kop¡TѨs:Y$_(nMz 6@c5 v"rBAʩ_qSw벿i~T cdY@Yt:%;YҢXx\}BKG#IVt4xDZrE ln@ BY'.xTfWWa  (pɹcJ0 39rR:AQhCuPE$ ujGDj6|aEi Ak|c;Kd7UXNQ`AϰK%qژ=K2LQdw|1iFtbͿxF4gVф 89pRT~.g< ɥ6==$2u"lsRYv'E8_ A._ܛ/;E i~,;EIotnsF,)N<>|VCZj-!^ yPP~S8;O"=Rv,+Fo\yWrǜUVEX}aUVEXfwW}}V$Q_~_:EXQ*>*3;>%$_~_:EXQ*>*3;> ?QvfU9X-#:~7϶M7ΎXY5:) ؏,5aP֬7bU>dLUqH=T[AkdaӎtE@83 ,mFZ=j:2^zSrǜ* ;Ʒ_7;*_T܆˚:E3"$%q+9\yWӯ[u|ޕJ;\ 5:E3"$%q+9\yWӯ[u|ޕJ;\ 늻:E3"$%q+9\yWӯ[u|ޕJ;\ tZګ<Ε(9@L6=}Rxʪ[N+mDqrxל ?\`@ ⪡Jle>ߺ*α+~딡^u'[\Le8d|O6'G'We7!+Bt7VCLqcRkF7oUo?Jl'${k?T$E‡ 6ur]SmsJxҠ4ң S1p'{;RwL5Q:,tZ TcRz'W-mMjOԮ$; lÕ٥7mQ印$jbw]u kMt'\HX>a9J~/Pv)kmk!Cl?U祘<0 C_YY-KDqֶ`i蝁߰0?3IFF9\bb+Vý bkѡޅEj˰tgxV?C7UJS}i,|kĖ"X׆9ͷ;c%xcؒZK9PWݏb@jٴ4-=7sţ96?Khj? p'OQ`qS|J6^o=uUaʅyobuЭ/\ Httk1.!p1v&p ~byղ`Raݶ;o]S8gG|8?RrQ)e]\ p,3?8?]|6 <0Y*|7ĩD`%yod)Jz T\ p,3?8?]|6 <0Y*|72Kf|8?RrQ)e]\ p,3?8?]|6 <0Y*|7:[s(hLtZ+z]#<U9pCxOY- XvA~n&?Po'ny?IA )(t t?*l`S ͺ#!Pj[%W8j(#RK&ҷ~6,=J6 6y$b}y7g96CQ?Fc'>~]̴JcJ= G@W\a|Zj4eX'0o;gBըM$_7Hk`f]eĄQqY欑r~}sE5;PC8_AӁ-Q{rrIEQ8߾A\ȏ6Ҹ׷gץn>i'оS=GY|uÔ8׵쑼{~Ow 4 ke~ë$.UMc$x`~1 ~jk"HP._7pNbkUԇIRM4@WF,p6TbkyzWݟm7:[~w $&͙*,i*EfpVQO &Mf܁bL‚Gw )b68aPLq@>a3ס4woi<m()v, bZ.8_"Lw7c6Z6Yų<"MRa!eC5uEpX~ 5XSHlˍ34`w+;;ٻ;ъyZUxWG4}n]HCh!-'Ui0P j\apo $"a!!)5{ $"a!!b1H $$/da̒^%al9.W]ŘatY"f2ڡ. )rrkL)|O?W^@bj$HKnǣy7't_.˨d$6i F`(@SWWxS22ƱW%aX)) dܓNDUUVaB"BOB3LLLLLiGWX^M0LSTNA P&&&&4̫10LSTNA P&&&&4̫m[褍;oYDB!,Pn,JBx;.@Z}aΎv+iqdRTTa!$PX?"KlGяcچL6ϥNcD= [ql ^7 [LADq%"$Ҳhg_8@+SK;E~QPsz  &7GBn 5ڢ0o&7Gc.M[:_,h%jd\ u12% C4  Ӣb\.iq0`P׶>A1(U-x] bndƺYTNIٴrȩ6Ȑ!-$uT]? I9rf{1hWS_:@f cgǬse>~vJB]ȇ-FCۜYŠjFJ7xk6Dq@vPZeD@pT-p{^`'^AvS u2Ř{"bWPmIr#GسdWLYM)4.R2H,ţnGlJM ءZ_A ~-|e΋=v) :k@B:k,>2-nIR\l͎@}$3(ovy@Kb+\L E@L-i3֛s4Ў+ ۍ-5.hH=`U#SWJ? [7\ן։LIr)1.꭪~EV e^vL0lJ; H][T>@V&a/<C,3fύ~EV e^vL0l`AϠ[jMbDA kpbR}:魈B#HF84MP'H),tޮ\nmnٚQEa萗.1wa hM+0^j6묋=XU$9"S{=N@BQ}0hޣikwQV.[5s -(g֑%庱@-(g֑%{] wU<0ZǐK%Aȧ\0S3̒ZےDG {ʷ!>!K/FyV^C/p$y>Ω"Sa0]niѯM5ccS3!_|,vQZ3u&7">[SPЛ&R@}ԷD7K}Rҝ߿B !7/J +E .}8}#k U-n  j)l*#ҤRT)Gx*9 $qYM,C떵iQoHYa2<ʀ0k@;+QrNh.+ PKBa^ uw 8+J}#љZW[XD'BҺ@ĮD3IM,eB/7Tm`'y7ZF0+BGcLHF(j"kͫF'0 E `4P-@5G5D >2& Qj[D}SY@, {!xj-Khk?؈}ZeULW m Z JH̩ zH mG+ Jņsxhm5 N>r>)JN )*NRU*SArה`^Ƣ|5GֺM\%o8ۢ㐎Cb+dzN +ysKw`qrf"_u"ROA1ԓary]fI/IPqfh~{FY(ړ*.>LPHC3R+<v4,9NYO0[ p @cq$쳾EZ<, Jb BsSSX;ND&SYgpY GW\iH k9)4(Q>?BxJ!C784csэA[{ -pb2xy4?ͣ ˜3<7,|IuiI8Gu"Z 5赹22Y=\/Swj'l+.vUMJmFM"yzz(G?Ahݬ 4WX 6]ۭW$ A040RzڟT9l6*K9b5 퉕yӀ11110[ʼʻ22*ڽ>`N|9 F<l`G]^~U|*IhVWb=΁ Zxx;Ó ̫̬9n{**de^e^b}jpzܗSQNt{)hq?6222̫ݑyyOͦk&亘ҏsG]K@wxe^e^easWW#**%쟛?3)Lơ3ǐQ\vM㩌SDH,zj9c5ƗO*T34SA$(`H>݁V}ɯe!C?d>5$Ndr?xٚHR )[=vwi%uO_O]ր{}|l~XKSwRl[TtQJ=([Jj6+>mݐ-Dzy{J&uSl֡ZG]X0< AI. 9K: @H2@`ALf<VVI }.$ 5V%(뫄qͫT G؇PTCX}eNSYjRhz =O[],eCWgUoOpЯžqX__7%ĺ^848nVS0#Zd΢.걨.걸Ǝ.걮2NOHKL *XaVx 1]6DSh|p0B' $#0 lP0p@0Lp{ 2̩]'M;ֈUu[v/uU06Y^E[}80{xES5լ%X $#4^}dv_!ժyZ † # la ]ڍ # la 6#x TDGHބnU+`g Ws.$XqI( A6U玟GPXw|C!Ec`P6 ?*jneM 4eN3LS.m$ئa"BWղ?lSuWi_n9{Bbѡ8qNF6Nu\9)?UT?8g.r֪@=ұPy<*o8up :-3pv[uih)% pE-~Jz wFSb5$mY5k `B6i`ϛн|ht.Ţ+2bbaRv2nUPZ#u@F?mc쫴^e^s #ǡʿ>m:>eoKNF_HVޱ\J,ۢ?,%i:C m0H&{xX~㌜Dm\'\+OK z,anR#h{1clnbW1M Bo/ƁetPdKlBQ]WPFݻy[OlP\& KI+D*@wfyT ꔊ/x它Fպ"RRay"?{gIQP>+|僴ߵvOO/v_ji(3'TK{Ħi=Ɗ0RZs4F*L9bH '6-dmw"=ogsLV殾'U%9. Km< /%,R?A.-9>H3} ؁{!9'!fzjŴiә` c!K=|4ziiWF>RiG)gabF/Õ;^Wz .c#[NC3gɣoE2 bC`1 ʾ/lɛJ9ex$5:u{U# [.id;fc] '} OK Cn4'ftP8E1ړ)e o,7[ߏs5@Co:[^_t9J𽹝j^^ . HTR}ydP'pQ)a&UN9xupj?&Yr&IaVa4? aei2䐬fpP[d&K16r Jړ#B٦aХ[oҲf{S'݈*Ji!Pepm/@(a(3_5T{G`:կyDP=ΤjUʖJ0W6IJf1S5<9㞆fo.J5v&ebf.3~}w+%j_tyS2(&0-Qtum^Rm ?J s9+ %jX"-h(|wYG˘| V%pKZT\-d)&Н@jXYlTTS?F$L〣_*24k\pǙM~̈́ ;AEu#mY|gZ<*􏥛c@ne|2=mKFqd>;&eruZt1R?"҇ZLRFK`*K3r.; +Ъv9UǯrQ^;ep(#&Y=<->I1({Z2zB:Ż3a\]'ry 1ƵX V[zydlf_*?爿dB'K oLMhտL;Qe^݈(DL6K} l{7ɀfR\];LKhg]hsF.5m(`@3͋@9_+2Rk~T}głgɱBt2W>Jj~ ͉5oQٝ`Z?h+_iZB(G@?i/x`?wpIW<u7@o3Q?#?_W -O a4wOP__ ?•^gB=p ?c}_yN„&p' ?/CƾW#DSm+џ3-;(WIO4_ ?_o~O}SL>P(UC7 T鹩pmK!CUUvȠOW Td+鹩oOzǒ?HWBA+C5D];ɡɆ%'=ǚM~}}a-Y i SNPє}) ZLdxO8=_]E@6ndaw{#x*Ȓ؛ŏ?<(evBE]*66BbҗřIKpQMs$3Z)#7 Eb: x8 Kl/U=" dSv[¨'3ғmjZh`5D'0qd^JϸMf+m.PN=dG|97wҾgko/a BI {.N 1}*0prPmp~ ![_7~zߺ~wЋ; ^յ,o|7~rYc_!ߞTBЁd+~o[_oo I ;^'0h9 Ӫ5ݶAFW6O\ab`Y.J!ivk!0U"#Cj‚gzmH;y @fzr=$fxE! idefv-Is}x,C<Yo$C߹V>WuĿg14Kd=Eow_U=nlmxk0Pp73M:_ 1!:L2G~+im\[W$G8KSAGhN=rU'p Dǯn܆ti؀5#=7`Xן;s M(Z/%MFz C顐 8K{BO0.P^x;גޯ 18<=eze PeQfħʕy }s~>J}9 v r KXgNBLJ\RᓐGuP xd+;j1nocyBA.ή\D3 <+ }`4BqE >1Rd,jlbt"d,jlU{s2V5 o51aMy98#D Ky>\JʃmVlܴ'a*@ :1Ǡ7 x?>,{"hvK5SQx3& D6Wq[K1lAQ$+|=q$|HQe p07S=ʧ`v|~&/&/̬ ³}_xR@8uO{֔2 ś~BW7>7+ H_`Ғ[8y/J p?;’k2{.,KR:ҭjQeV/뤈hzM)h/̫;e!bJ<-J`wW>D 0ԝwx߽|p>x6qiQbJoB~LJ_}{BD-;&Fq1v> \*@3bHR~N"kBPtQI Q'kop¡TѨs:Y$_(nMz 6@c5 v"rBAʩ_qSw벿i~T c鏏kzEtI*kKG2۠Ѹfp:-t *PU^5˪dVx yBR}yQP> wI*ULy[oAQhCuPE$,".H o\ |aEi AgCH+mH3 -Hn$?`AϰK%qژ́HtjOdXs|:a"sBQ&rRsF,q'vb.Q Y[ôRPW' ?"f}"%_SJp B2kÖ sGĝA|Z=ΠaP!5*$7oav7IotnsF,)N<>|VCZj-!^ yPP~S8;O"=Rv,+Fo\yWrǜUVEX}aUVEXfwW}}V$Q_~_:EXQ*>*3;>%$_~_:EXQ*>*3;> ?QvfU9X-#:~7϶M7ΎXY5:) ؏,5aP֬7bU>dLUqH=T[AkdaӎtE@83 ,mFZ=j:2^zSrǜ* ;Ʒ_7;*_T܆˚:E3"$%q+9\yWӯ[u|ޕJ;\ 5:E3"$%q+9\yWӯ[u|ޕJ;\ 늻:E3"$%q+9\yWӯ[u|ޕJ;\ tZګ<Ε(9@L6=}Rxʪ[N+mDqrxל ?\`@ ⪡Jle>ߺ*α+~딡^u'[\Le8d|O6'G'We7!+Bt7VCLqcRkF7oUo?Jl'${k?T$FTbeYrQ\mV2tq~?RrtwL5Q:,tZ TZsq$5Ձp fdmi3E@@_ZP"yv]b]ۍgί[\Il{ lHBI=p$q)]BPi5'/U祘<0 C_YY-KDqֶ`i蝁߰0?3IFF9\bb+Vý bkѡޅEj˰tgxV?C7UJS}i,|kĖ"X׆9ͷ;c%xcؒZK9PWݏb@jٴ4-=7sţ96?Khj? p'OQ`qS|J6^o=uUaʅyobuЭ/\ Httk1.!p1v&p ~byղ`Raݶ;o]S8gG|8?RrQ)e]\ p,3?8?]|6 <0Y*|7ĩD`%yod)Jz T\ p,3?8?]|6 <0Y*|72Kf|8?RrQ)e]\ p,3?8?]|6 <0Y*|7:[s(hLtZ+z]#<U9pCxOY- XvA~n&?Po'ny?IA )R\QYBǭry5-=MF^FmS> xWǷ״TEӋ1W?8n v4QsVa|6TΘ-1O@poa!E&8UD0|=`X?b&BX"mq1_`,x[WD;FCf/ dv+$ A_Y.Wm' ;L 6⁇*1^ ]a(9ʽTRׇ"^ SӍ>欑r~}sE5;PC8_AӁ-Q{rrIEQ8߾A\ȏ7#`G~|?O{ U P_׶bdm~wKW Bw7!\ Pd,piz?Sxcɉ~޼V6W NGn x0|%"VcKyTEFfnKid/PN$Х' ,"_=A$ rHkD HC$Gg뫱sQxC Fg<`8`XDk 4 :!ߛXi'aqҖDj mWi)x {VfB>8׵쑼{~Ow E+GHP6syDvyL8nq1jc"}͐;qo[ln~&$TV~G9/P,_7w"fؕcR)٥;ޘ ;<7_ގ?yLFD,i*E`!S[ivfn@K&ZaA Wd_i<AYyZ/%MF_/"Lw7)ٱȢKanSH_KFYw3e^ 9=Dj '^$F?<]W7"R_ JP{e/8t M02nE;_f@DN|5@+Sc.M[:_,{57z(\GG.]tɑم l8b@^*PDŽN\{̣Jbr֍ xr hZ--ʻa2͓/#7Ak"0Q{1hWS_:@f cgǬse>~vJB]ȇ-FCۜYŠjFJ7xk6Dq@vPZeD@pT-p{^`'^AvS u2Ř{"bWPmIr#GسdWLYM)4.R2H,ţnGlJM ءZ_A ~-|e΋=v) :k@B:k,>2-nJ-UslƑƥ]|6t-JW͏g]jE$xdJ4Ў+ ۍ-6HdR'S;)MdU "ٺ3o$ܷ͟T>@V&a/<nxa({ jgՈjם %G>`(!i.ȴύ~EV e^vL0l`AϠ[jM "s #^F(6T?.>-9 $DҊwI+4j] &1 }O @m>e_DlO mRqEpf^j6묋=XUm^ʐF٭Ru௩` $%A#@9bZ0O~ (>vG*d&^/aD`0%$֌!K/FyV^C/p$y>Ω"Sa0]niѯM5ccS3!_|,vQZ3u&7">[SPЛ&R@}ԷD7K}Rҝ߿B !7/J +E .}8}#k U-n  j)l*#ҤRT)Gx*9 $qYM,C떵iQoHYa2<ʀ0k@;+QrNh.+ PKBa^ uw 8+J}#љZW[XD'BҺ@ĮD3IM,eB/7Tm`'y7ZF0+BGcLHF(j"kͫF'0 E `4P-@5G5D >2& Qj[D}SY@, {!xj-Khk?؈}ZeULW m Z JH̩ zH mG+ Jņsxhm5 N>r>)JN )*NRU*SArה`^Ƣ|5GֺN.6˘_qt]nYٜ}w`qrf"_u"RP<mBN@ r9s]Ahen?BxJ!C784csэA[{ -pb2xy4?ͣ ˜3<7,|IuiI8Gu"Z 5赹22Y=\/Swj'l+.vUMJmFM"yzz(G?Ahݬ 4WX 6]ۭW$ A040RzڟT9l6*K9b5 퉕yӀ11110[ʼʻ22*ڽ>`N|9 F<l`G]^~U|*IhVWb=΁ Zxx;Ó ̫̬9n{**de^e^b}jpzܗSQNt{)hq?6222̫ݑyyOͦk&亘ҏsG]K@wxe^e^easWW#**%쟛?3)Lơ3ǐQ\vM㩌SDH,zj9c5ƗO*T34SA$(`H>݁V}ɯe!C?d>5$Ndr?xٚHR )[=vwi%uO_O]ր{}|l~XKSwRl[TtQJ=([Jj6+>mݐ-Dzy{J&uS>ނ=Q aA:Mfժ JC'=O[],eCWgUoOpЯžqX__7%ĺ^848nVS0#Zd΢.걨.걸Ǝ.걮2NOHKL *XaVx 1]6DSh|p0B' $#0 lP0p@0Lp{ 2̩]'M;ֈUu[0/[0np0{xE ]00$щ& ċt&] GA $!?GAj $%m%ܸ>|/HބnU+`g Ws.)ZqVLTL1`#^T< o5K=/G{i`;Pa ۶g;w*unٟVZ| )бi_n9{Bbѡ8qNF6Nu\9)?UT?8g.r֪@=ұPy<*o8up :-3pv[uih)% pE-~Jz wFSc,D쇽؈F0Y`m8­*tPR#LLL*NU$>ʻݽRqR7_es}1U0?tFYo@enw /R <́0l;WW'Ȩ:`/v22ӵyyWiLAjrA~l `Gڼʼ䩓`G)?}ԓӿ?`HVޱ\J,ۢ?,%i:]a?}A3N]t'x*_U%ܯ-ObumT_'%D١Gb[ n6QɚנMˈ EBNL pzg:a!~&`pݻy[ӏh-y(7o& KIX!x9ꔊ/x它FB,_C'FԘd;CHߐЯ-8|僴ߵ Jl+#K ji(3'TK{Ħi=Ɗ0RZs4F*L9bH '6-dmw"=ogsLV殾'U%9. Km< 6jX"-h(|wYG˘| V%pKZT\-d)&Н@jXYlTTS?F$L〣_*24k\pǙM~̈́ ;AEu#mY|gZ<*􏥛c@ne|2=mKFqd>;&eruZt1R?"҇ZLRF%5Dk&PEQ6% 9UǯrQ^;e!c']m!ۡ>Do>I1({Z2zB:Ż3a\]'ţ*suOPƵX V[z$9zLYfTDlwd'o͋@9+.zk~T}głgɱBtA7$n y6,y[QW`Z(6~=UV5?kW`@__},+_׉7y (~Ktߵ?'@'oΟ=3i=O8_?>+? :ש7x=9V?B/J5M5_sc5]T?k0~?ڭ@_.?h+yO~MDSp,X? dɄ2N[pF<k #ݗ֡VgzuIn ,`['mj2+ZG ۆcQL603$F]PFgvRᇐOT 6$ł*֐JGq6(bM>48! ~HF_ gTīw <' RAaEup48bW.Wh4Yշ<;Ւs@ Αÿo:7V ^$ 'R P  I-i;T($-<}[pA<;PFlA !(NffN Ê7$2?^V'򞢘>!APQ$/O}}L!m^mLp4Qޯ0xM]5ǜp.m{|ґ8;`c9_CȚa`&2G2xBJoǢ/fVfL7B $^+oO(#_l'${k?Tǣhgc&E 7gGɅ:oO(#_Ud5mo HUH2<wFSSlZW%я(6ŪtJHȃ 3ʝl~PJ{&3e"_TJP{ԩWf[AA8H|zA{h(J(0@Mx8/.K GoX {0H*\B `CxsQ3 `wc{qRvJ=Wb.5ֶQ1{-.Vt8RGEւI2vk9+UO>(v*{y{yUnzaH$/F澮꣪Y,/۶ > suT.N;t7<4"Ah.!O$ HhLm$|zS,h_b/ DKl:E@ ZN^:#Tct@L(D+g@U E/xLe?PG1! ?\4{AK0fT3H~^|-Rq2ۑ׺G؟djg{n(Ye|@>1:nk| F}9@1s+NpC |(T9OpExәܣ 2W.vd!?]t- ȥrʈ (u6$'zV_- x&z]a瑡clRX#6lw_& Agl4gYh{fx?mk)zλWC՞o ~}lcS/Y3.S,F%;ZnQ ŏ = 5 ]a!6Tc6HPE,OKoGgs ^|$ĨʷRFo ,6u08w=`|@bdߧ;Жs` GCY1cxgK[ԉ4>ݗ8m4pVN+Z2R;3,yeznAmYO'jpK nj[ ^'bj>)=-#Cs78q|ڦ8dӺi`{- !Ђpti8/ -е D+; o 8@ N^̔ U$ST.r,$t̩ f]ݻzk{?ݻzk{?xq鲨\U?hA j~kCRgI+}0םW͵ $7r&V5xr%"?#}{Q-uIX{S;&cu_N'AR/Pp:ғ-^>DZL@H$qPSBQq|h=0[KWjZ0ׯC$}3ttC:؄9dZvw[p&u$mjnU*W-`ͼ8lƧG:; #[۪{')WЙdyw Z7kavz !oi#.mvS.?{E`0ǧ#j9OOqFl"Cmkmc*)X/jwYMp%Xa(H`gāE½]PU|b9[D -$ oRfj%ഌ2%il91j2 `cJL2y%'G')Ԕ~/̀ R(҇ۦvV?ЍL$ruHz* %I lI[hTc"gTT0& .hM,wZ^/+CT0jYVQtTAP u(   (  ( @ ( @ (0` $(0` $PNG  IHDR\rf IDATx_eU=sQdF}BIFC`4 Bҗ"cO 3H({)t QOi(pk1={s}}?pљ=7k/vx3 88x-pQVW{xxx xwrVm.Zy;o4?y_ɞ2VWa`# 9ȑ>lhc? <Z/m&GI}Ҷ>p `7pA[ dpId8 s`{ 9s7/5 D񼢩 .'h] La1>0զp5;R"~ua ` gm&oPÐj8ؙH|&U^Z8U!iKHN fM}&Sfy, $7n$ =YJpTѕ5"VR`&)0X+6ֶϞq"}rr[pILR`9{U6Ӵh@cݺoMjZӰ3H:-4o32qu-,r~"\;ڎ.)s[t+)0 @ 9x:]~Lybq +)0 @ ur޷Wohm]1 @ weMtQKEivVW? @  f3HunP[ԵU۝SS~LR` 5rIS~G*GYHLR` 5c:އ|cQVR`&)0ss"5U9/ @  f;0TMUqd]ntq? @  6P4^:'0.d]Γ.y3H(4Ư:Pv ؕ1LR`ӀEٳ%LR`&)0X+k]@q~yYHVVkL:?NCu_E7:3HLR`~_iwlLR`0^,U~mU?+-^jo f3H-]wSiueu/+)0 @ yWEo>Mujԕ% f[O[*{ D̵YE3HTX7]cdg3H0Pʣ +)0CiT)DZ3HLR`NJSzLR` ʔUJILR`&)0te? @  4i9/b f3H9u\_ @ l8lTVݷP_=p($eq<; IY<BRzųsG!=BBROBRO.l^6F]<׿W{AHjRrG#UkFR# ~Ijˬ) 'wdo9;7I}~rrG%k}}0M:# iqv0%HTג&wwV$5j&_PR#q{~)wѿieeeGzQR2.7VRn&!=n:{{rG,rTܾ13K#TK;zu}iii㣏uiF'U[ i&Zpx0.AC>C$W[#H}sI[2':9<> b`w# %'+3J#IXn# 7fg>0ʬuE>I{TKvoDiCiq"H}6ٹntk?<MXX1ksEn?t~3Z  TCg~[Z iݤہRARN#i&ytS? ҂8L_C גa\$8;^bҲƳMm uߤ &<)*R[tl>m!%mi,y2pxx~9)'H?{ImiIENDB`flipperdevices-qFlipper-bfce851/application/assets/icons/qFlipper.png000077500000000000000000000135061452337521700262260ustar00rootroot00000000000000PNG  IHDRxtEXtSoftwareAdobe ImageReadyqe<miTXtXML:com.adobe.xmp òoIDATx[\Wyp: ;JW#$!AJLrO$U^8j ipPU$  } @p .UIh#!]'Po9g={^k~/߉̬g?Ykd}mܨOzNnzDԣQwUE7Qg 3P!8e73 RU]:Gj;U(Ө9gG}]ԫ%QR5樟zDHQze?XOEp;u{U?z F`tQu \\՜D]3Va`Ue_zkޣ Z ƵިOpQh7F}XhQ? T: qCT{cݨoq@na UcQ/z]^W JQ/w8ۢʨv  Ru?ug~ Vu-ިtd;OzVs򒨿?3Qwfhlws^XX9zcw>uf_/GUp^:24DWXY'NL9{sԋ>tf%^h`eD6M:@#ܿ?7F=0*곣zwVst-3*wi(T@(y:Pp wu.إw >e;[y}G68G l7 P:Pp`abB %ju+>08y7}mo_@@@z0dqYG 4=f7}ܩCݿbt[*g'KJ@@@@wI wnv>Ѯz^mc@tEM]0Y;eupۛ_ո|_Z@`>xĠI7oT@ȾpZ*t}5>x=OA4uӧ_u幭nA_ǵ={_ѵ~ײ~q;z||;7v  )M,gH'dumv΋Twtt?{^@T~N}{1וE j*T^m(   t==մv۞'C}u\w H| dfl*Lfv2VW ˬ|W_,})M@@2b'Neh7kڎPwc K|AE\tVmj\ǴJST_g:tM2YhYF]q\qMx}\{HQ:|ݮ  @Y@tgxϺYۺa)j $gqo9Ηan<xu@ ScCf,]z8r2Y:   0`vZfGwRO@2e@*7_@@eYR @KlYT:u@@ qu:T׳R7mܻ^Oo>]xY߯ e8mEWOk}wa}5 @@@\a':z 7P{߲_Xܸ><ի.zmzf/f    \m؊nt]v NOhR>mVlWoe%љOf    qr{ [-#^W;6_`o`=߸9N:P(@ li~=п^Vy-ziVC $ᴫ[`̶y@@@jl9;: }@ vGYO@@2cEj6_u@ [   @!RtNR @vP\p4~i8,YQ(p0@1N@]w8luO d:Pp 醾c,^(Ÿ[ |0@1M&g7gOd둨g@N8?S};@;ݰ@vigH^_tu xN}%;PSnlܲ@N^ gO; 9Fusm6 l}'9l_t6HG:7e `s\|@&It6Quad fgݮÊ}~Ѱ༻;?;<5|л>";Pxgˣ>0<(=Q #`}?w&k[s~'עpK}ʴ0}/9 ~7 Kw,: L8[~̰]SmEtZu>¨o3@}0vM.î:KYgG0ܾT\]*h ;|"~è>pL߯}bٞԧ<9Qi؁FoP@WpbWK;;OEI1GQ/_7ЩN%zWG=;t7͵9:WG>P%+mk96PwF}:uQ>aB6u߬Ϻ]۷)dQo҃:5 ߎzUAutQ'>xԿzcԇu@]wz̭qM\%t~/jpvӨu@s^~r V:pgFBOFt`inŨZa`Vת|ION 4Jf6i@]5'WFCopV̱wu@cફ1UW|]ԫiQG%ju #% h0Ψ:*E=i t ue)x#Q`G:wuNG}zsSgFtt6W0}z(juػU0wԏ{rXIENDB`flipperdevices-qFlipper-bfce851/application/components/000077500000000000000000000000001452337521700234765ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/components/AbstractOverlay.qml000066400000000000000000000010061452337521700273130ustar00rootroot00000000000000import QtQuick 2.15 import QFlipper 1.0 Item { id: overlay property Rectangle backgroundRect readonly property var deviceState: Backend.deviceState readonly property var deviceInfo: deviceState ? deviceState.info : undefined property alias fadeAnimation: fadeAnimation visible: opacity > 0 enabled: visible fadeAnimation.duration: 150 Behavior on opacity { PropertyAnimation { id: fadeAnimation easing.type: Easing.InOutQuad } } } flipperdevices-qFlipper-bfce851/application/components/ChangelogDialog.qml000066400000000000000000000017071452337521700272250ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 import QFlipper 1.0 CustomDialog { id: control closable: true invertTitle: true title: !(Backend.firmwareUpdateState === Backend.Unknown || Backend.firmwareUpdateState === Backend.Checking || Backend.firmwareUpdateState === Backend.ErrorOccured) ? qsTr("Version %1 changelog").arg(Backend.latestFirmwareVersion.number) : qsTr("No data") contentWidget: TextView { text: !(Backend.firmwareUpdateState === Backend.Unknown || Backend.firmwareUpdateState === Backend.Checking || Backend.firmwareUpdateState === Backend.ErrorOccured) ? Backend.latestFirmwareVersion.changelog : qsTr("No data") textFormat: Text.MarkdownText implicitWidth: control.width - 70 implicitHeight: control.height - 160 background.visible: false } } flipperdevices-qFlipper-bfce851/application/components/ChannelDelegate.qml000066400000000000000000000027561452337521700272260ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.15 import QtQml.Models 2.15 import Theme 1.0 import Primitives 1.0 ItemDelegate { id: control text: name readonly property bool last: index === ListView.view.model.count - 1 highlighted: control.highlightedIndex === index hoverEnabled: control.hoverEnabled width: ListView.view.width contentItem: RowLayout { spacing: 10 Rectangle { Layout.preferredWidth: 4 Layout.fillHeight: true Layout.topMargin: 2 Layout.bottomMargin: 2 color: text === "development" ? "orangered" : text === "release-candidate" ? "blueviolet" : "limegreen" } TextLabel { text: control.text color: control.down ? Theme.color.darkorange1 : control.hovered ? Theme.color.lightorange1 : Theme.color.lightorange2 Layout.fillWidth: true } } background: AdvancedRectangle { x: 2 width: parent.width - 4 color: control.down ? Theme.color.lightorange2 : control.hovered ? Theme.color.mediumorange2 : Theme.color.darkorange1 bottomRadius: control.last ? 5 : 0 Behavior on color { ColorAnimation { duration: 150 easing.type: Easing.OutQuad } } } ToolTip { delay: 300 visible: parent.hovered text: description implicitWidth: 250 } } flipperdevices-qFlipper-bfce851/application/components/ConfirmationDialog.qml000066400000000000000000000070741452337521700277710ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 CustomDialog { id: control enum SuggestedButton { AcceptRole, RejectRole } property string customText property int suggestedRole property alias message: messageLabel.text function openWithMessage(onAcceptedFunc, messageObj = {}) { const onDialogRejected = function() { control.rejected.disconnect(onDialogRejected); control.accepted.disconnect(onDialogAccepted); } const onDialogAccepted = function() { onDialogRejected(); onAcceptedFunc(); } control.title = messageObj.title ? messageObj.title : ""; control.message = messageObj.message ? messageObj.message : ""; control.suggestedRole = messageObj.suggestedRole ? messageObj.suggestedRole : ConfirmationDialog.AcceptRole control.customText = messageObj.customText ? messageObj.customText : "" control.rejected.connect(onDialogRejected); control.accepted.connect(onDialogAccepted); control.open(); widgetContents.forceActiveFocus(); } contentWidget: Item { id: widgetContents implicitWidth: 430 implicitHeight: layout.implicitHeight KeyNavigation.tab: contentWidget Keys.onPressed: function(event) { if(event.key === Qt.Key_Tab) { if (control.suggestedRole === ConfirmationDialog.RejectRole) { control.suggestedRole = ConfirmationDialog.AcceptRole } else if (control.suggestedRole === ConfirmationDialog.AcceptRole) { control.suggestedRole = ConfirmationDialog.RejectRole } } else if (event.key === Qt.Key_Return) { if (control.suggestedRole === ConfirmationDialog.RejectRole) { control.rejected(); } else if (control.suggestedRole === ConfirmationDialog.AcceptRole) { control.accepted(); } } } ColumnLayout { id: layout width: parent.implicitWidth TextLabel { id: messageLabel horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter lineHeight: 1.4 wrapMode: Text.Wrap Layout.topMargin: 24 Layout.bottomMargin: -8 Layout.fillWidth: true } // TODO: Find a way to use a DialogButtonBox properly RowLayout { spacing: 30 Layout.margins: 20 Layout.fillWidth: true Layout.preferredHeight: 42 layoutDirection: Qt.platform.os === "osx" ? Qt.RightToLeft : Qt.LeftToRight SmallButton { radius: 7 text: customText.length ? customText : qsTr("Ok") highlighted: control.suggestedRole === ConfirmationDialog.AcceptRole Layout.fillWidth: true Layout.fillHeight: true onClicked: control.accepted() } SmallButton { radius: 7 text: qsTr("Cancel") highlighted: control.suggestedRole === ConfirmationDialog.RejectRole Layout.fillWidth: true Layout.fillHeight: true onClicked: control.rejected() } } } } } flipperdevices-qFlipper-bfce851/application/components/CustomDialog.qml000066400000000000000000000100071452337521700266010ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import Theme 1.0 import Primitives 1.0 Popup { id: control signal accepted signal rejected padding: 0 width: parent.width height: parent.height property alias radius: shadow.radius property alias title: titleLabel.text property bool closable: false property bool invertTitle: true property bool result: false property Item contentWidget: Item {} enter: Transition { PropertyAnimation { property: "opacity"; duration: 150; easing.type: Easing.InOutQuad; from: 0; to: 1 } } exit: Transition { PropertyAnimation { property: "opacity"; duration: 150; easing.type: Easing.InOutQuad; from: 1; to: 0 } } background: Rectangle { id: shadow color: "black" opacity: 0.8 } contentItem: Item { Rectangle { id: blackBorder anchors.fill: contentBg anchors.margins: -3 opacity: 0.5 color: "black" radius: contentBg.radius - anchors.margins } Rectangle { id: contentBg width: Math.max(contentWidget.implicitWidth, titleLabel.implicitWidth + closable ? closeButton.width : 0) + border.width * 2 height: header.height + contentWidget.implicitHeight + border.width * 2 radius: 7 border.width: 2 anchors.centerIn: parent color: "black" border.color: Theme.color.lightorange2 Rectangle { id: header height: 42 x: contentBg.border.width y: contentBg.border.width width: contentBg.width - contentBg.border.width * 2 radius: invertTitle ? 0 : contentBg.radius - contentBg.border.width color: invertTitle ? Theme.color.lightorange2 : Theme.color.darkorange1 Rectangle { color: parent.color width: parent.width height: parent.radius y: parent.height - height visible: parent.radius > 0 } TextLabel { id: titleLabel anchors.fill: parent anchors.leftMargin: 8 anchors.rightMargin: 8 color: invertTitle ? Theme.color.darkorange1 : Theme.color.lightorange2 horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter elide: Text.ElideMiddle Item { id: closeButton visible: closable height: parent.height width: height anchors.right: parent.right Button { flat: true padding: 0 width: 24 height: 24 backgroundColor: ColorSet { normal: Theme.color.darkorange1 hover: Theme.color.mediumorange2 down: Theme.color.lightred2 } anchors.centerIn: parent icon.source: "qrc:/assets/gfx/controls/windows/close.svg" icon.width: 20 icon.height: 20 onClicked: control.close() } } } } } } Component.onCompleted: { accepted.connect(close); rejected.connect(close); contentWidget.parent = contentBg; contentWidget.x = header.x; contentWidget.y = header.y + header.height; } onAccepted: { result = true; } onRejected: { result = false; } } flipperdevices-qFlipper-bfce851/application/components/DeveloperActions.qml000066400000000000000000000036741452337521700274710ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 import QFlipper 1.0 Item { id: container implicitWidth: 318 implicitHeight: control.implicitHeight + verticalPadding * 2 readonly property int horizontalPadding: Math.floor((container.implicitWidth - control.implicitWidth) / 2) readonly property int verticalPadding: 10 property alias installRadioAction: installRadioAction property alias installFusAction: installFusAction ColumnLayout { id: control spacing: 10 x: horizontalPadding y: verticalPadding TransparentLabel { color: Theme.color.lightorange2 text: qsTr("Developer Mode") } SmallButtonRed { action: installRadioAction Layout.fillWidth: true icon.source: "qrc:/assets/gfx/symbolic/restore-symbolic.svg" icon.width: 18 icon.height: 20 ToolTip { visible: parent.hovered text: qsTr("Install a custom wireless stack. WARNING! This may result in a non-functional Flipper!") implicitWidth: 250 } } SmallButtonRed { action: installFusAction Layout.fillWidth: true icon.source: "qrc:/assets/gfx/symbolic/restore-symbolic.svg" icon.width: 18 icon.height: 20 ToolTip { visible: parent.hovered text: qsTr("Install a custom FUS firmware. !!MEGA WARNING!! It WILL result in encryption keys loss!") implicitWidth: 250 } } Action { id: installRadioAction text: qsTr("Install wireless fw") } Action { id: installFusAction text: qsTr("Install FUS firmware") enabled: Backend.deviceState && Backend.deviceState.isRecoveryMode } } } flipperdevices-qFlipper-bfce851/application/components/DeviceActions.qml000066400000000000000000000133301452337521700267310ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 import QFlipper 1.0 Item { id: container property alias backupAction: backupAction property alias restoreAction: restoreAction property alias eraseAction: eraseAction property alias reinstallAction: reinstallAction property alias selfUpdateAction: selfUpdateAction implicitWidth: 318 implicitHeight: control.implicitHeight + verticalPadding * 2 readonly property int horizontalPadding: Math.floor((container.implicitWidth - control.implicitWidth) / 2) readonly property int verticalPadding: 10 ColumnLayout { id: control spacing: 10 x: horizontalPadding y: verticalPadding TransparentLabel { color: Theme.color.lightorange2 text: qsTr("Firmware update channel") } ComboBox { id: channelComboBox enabled: Backend.firmwareUpdateState !== Backend.Unknown && Backend.firmwareUpdateState !== Backend.Checking && Backend.firmwareUpdateState !== Backend.ErrorOccured delegate: ChannelDelegate {} model: Backend.firmwareUpdateModel textRole: "name" Layout.fillWidth: true currentIndex: Backend.firmwareUpdateState !== Backend.Unknown ? find(Preferences.updateChannel) : -1 onActivated: function(index) {Preferences.updateChannel = textAt(index);} ToolTip { visible: parent.hovered text: qsTr("Change the firmware update channel") implicitWidth: 250 } } TransparentLabel { color: Theme.color.lightorange2 text: qsTr("Backup & Restore") } GridLayout { columns: 2 rowSpacing: control.spacing columnSpacing: control.spacing Layout.fillWidth: true SmallButton { action: backupAction Layout.fillWidth: true icon.source: "qrc:/assets/gfx/symbolic/backup-symbolic.svg" icon.width: 18 icon.height: 20 ToolTip { visible: parent.hovered text: qsTr("Save the contents of Flipper's internal storage to this computer's disk.") implicitWidth: 250 } } SmallButton { action: restoreAction Layout.fillWidth: true icon.source: "qrc:/assets/gfx/symbolic/restore-symbolic.svg" icon.width: 18 icon.height: 20 ToolTip { visible: parent.hovered text: qsTr("Download the contents of a backup directory to Flipper's internal storage.") implicitWidth: 250 } } SmallButtonRed { action: eraseAction Layout.fillWidth: true icon.source: "qrc:/assets/gfx/symbolic/trashcan.svg" icon.width: 18 icon.height: 20 ToolTip { visible: parent.hovered text: qsTr("Revert Flipper to its default settings. WARNING! All progress will be lost!") implicitWidth: 250 } } SmallButton { action: reinstallAction Layout.fillWidth: true icon.source: "qrc:/assets/gfx/symbolic/update-symbolic.svg" icon.width: 16 icon.height: 16 ToolTip { visible: parent.hovered text: qsTr("Install the current firmware version again. Not for everyday use.") implicitWidth: 250 } } } TransparentLabel { color: Theme.color.lightorange2 text: qsTr("Application update") visible: Preferences.checkAppUpdates } Button { action: selfUpdateAction Layout.fillWidth: true visible: Preferences.checkAppUpdates icon.source: "qrc:/assets/gfx/symbolic/update-symbolic.svg" icon.width: 16 icon.height: 16 } Action { id: backupAction text: qsTr("Backup") enabled: Backend.deviceState && !Backend.deviceState.isRecoveryMode } Action { id: restoreAction text: qsTr("Restore") enabled: Backend.deviceState && !Backend.deviceState.isRecoveryMode } Action { id: eraseAction text: qsTr("Erase") enabled: Backend.deviceState && !Backend.deviceState.isRecoveryMode } Action { id: reinstallAction text: qsTr("Reinstall") enabled: Backend.firmwareUpdateState === Backend.NoUpdates } Action { id: selfUpdateAction text: App.updateStatus === App.Checking ? qsTr("Checking...") : App.updateStatus === App.NoUpdates && checkTimer.running ? qsTr("No updates") : qsTr("Check app updates") enabled: Preferences.checkAppUpdates && App.updateStatus !== App.Checking && !checkTimer.running onTriggered: App.checkForUpdates() } Timer { id: checkTimer interval: 1000 Component.onCompleted: { App.updateStatusChanged.connect(function() { if(App.updateStatus === App.NoUpdates) { start(); } }); } } } } flipperdevices-qFlipper-bfce851/application/components/DeviceInfo.qml000066400000000000000000000107321452337521700262270ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QFlipper 1.0 import Theme 1.0 Item { id: container implicitWidth: 318 implicitHeight: control.implicitHeight + verticalPadding * 2 readonly property int horizontalPadding: Math.floor((container.implicitWidth - control.implicitWidth) / 2) readonly property int verticalPadding: 10 readonly property var deviceState: Backend.deviceState readonly property var deviceInfo: deviceState ? deviceState.info : undefined readonly property bool extraFields: deviceState ? !deviceState.isRecoveryMode : false RowLayout { id: control spacing: 30 x: horizontalPadding + 5 y: verticalPadding ColumnLayout { id: keys TextLabel { text: qsTr("Firmware") visible: extraFields horizontalAlignment: Text.AlignRight Layout.fillWidth: true } TextLabel { text: qsTr("Build Date") visible: extraFields color: Theme.color.mediumorange4 horizontalAlignment: Text.AlignRight Layout.fillWidth: true } TextLabel { text: qsTr("SD Card") visible: extraFields horizontalAlignment: Text.AlignRight color: Theme.color.mediumorange4 Layout.fillWidth: true } TextLabel { text: qsTr("Databases") visible: extraFields horizontalAlignment: Text.AlignRight color: Theme.color.mediumorange4 Layout.fillWidth: true } TextLabel { color: extraFields ? Theme.color.mediumorange4 : Theme.color.lightorange2 text: qsTr("Hardware") horizontalAlignment: Text.AlignRight Layout.fillWidth: true } TextLabel { text: qsTr("Radio FW") visible: extraFields horizontalAlignment: Text.AlignRight color: Theme.color.mediumorange4 Layout.fillWidth: true } } ColumnLayout { id: values TextLabel { text: !deviceInfo ? text : deviceInfo.firmware.branch === "dev" ? deviceInfo.firmware.commit : deviceInfo.firmware.version visible: extraFields } TextLabel { text: deviceInfo ? deviceInfo.firmware.date.toLocaleDateString(Qt.locale("C"), Locale.ShortFormat) : text color: Theme.color.lightorange3 visible: extraFields } TextLabel { text: deviceInfo && deviceInfo.storage.isExternalPresent ? deviceInfo.storage.externalFree + qsTr("% Free") : qsTr("Not present") color: deviceInfo && deviceInfo.storage.isExternalPresent ? Theme.color.lightorange3 : Theme.color.lightred3 visible: extraFields } TextLabel { text: deviceInfo && deviceInfo.storage.isAssetsInstalled ? qsTr("Installed") : qsTr("Missing") color: deviceInfo && deviceInfo.storage.isAssetsInstalled ? Theme.color.lightorange3 : Theme.color.lightred3 visible: extraFields } TextLabel { color: extraFields ? Theme.color.lightorange3 : Theme.color.lightorange2 text: { if(!deviceInfo) { text } else { deviceInfo.hardware.version + "." + deviceInfo.hardware.target + deviceInfo.hardware.body + deviceInfo.hardware.connect } } Layout.fillWidth: true } TextLabel { text: deviceInfo && deviceInfo.radioVersion.length ? "%1 %2".arg(deviceInfo.radioVersion).arg(stackTypeString(deviceInfo.stackType)) : qsTr("Corrupted") color: deviceInfo && deviceInfo.radioVersion.length ? Theme.color.lightorange3 : Theme.color.lightred3 visible: extraFields } } } function stackTypeString(num) { switch(num) { case 1: return "Full"; case 2: return "HCI"; case 3: return "Lite"; default: return num; } } } flipperdevices-qFlipper-bfce851/application/components/DeviceWidget.qml000066400000000000000000000041321452337521700265540ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import QFlipper 1.0 import Theme 1.0 Image { id: control signal screenStreamRequested readonly property var deviceState: Backend.deviceState visible: opacity > 0 source: "qrc:/assets/gfx/images/flipper.svg" sourceSize: Qt.size(360, 156) Behavior on x { PropertyAnimation { easing.type: Easing.InOutQuad duration: 350 } } Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad duration: 350 } } AbstractButton { id: clickArea width: control.width height: control.height visible: screenCanvas.visible onClicked: control.screenStreamRequested() } Rectangle { id: blueLed visible: !!deviceState && deviceState.isRecoveryMode x: 234 y: 90 width: 9 height: width radius: Math.round(width / 2) color: Theme.color.lightblue } Image { id: defaultScreen x: 93 y: 26 source: deviceState && deviceState.isRecoveryMode ? "qrc:/assets/gfx/images/recovery.svg" : Backend.backendState === ApplicationBackend.Finished ? "qrc:/assets/gfx/images/success.svg" : "qrc:/assets/gfx/images/default.svg" sourceSize: Qt.size(128, 64) } ScreenCanvas { id: screenCanvas anchors.fill: defaultScreen visible: Backend.screenStreamer.isEnabled && Backend.backendState > ApplicationBackend.WaitingForDevices && Backend.backendState < ApplicationBackend.ScreenStreaming foregroundColor: Theme.color.darkorange1 backgroundColor: Theme.color.lightorange2 frame: Backend.screenStreamer.screenFrame } ExpandWidget { id: expandWidget x: 89 y: 22 width: 136 height: 73 visible: screenCanvas.visible opacity: clickArea.hovered ? clickArea.down ? 0.9 : 1 : 0 } } flipperdevices-qFlipper-bfce851/application/components/DirectionalKeypad.qml000066400000000000000000000134711452337521700276120ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.15 import Theme 1.0 import QFlipper 1.0 Item { id: control signal inputEvent(var key, var type) property int spacing: 15 width: 186 height: 224 Rectangle { width: 168 height: width radius: width / 2 color: Theme.color.darkorange1 border.color: Theme.color.lightorange1 border.width: 2 GridLayout { anchors.centerIn: parent rowSpacing: columnSpacing columnSpacing: 0 columns: 3 KeypadButton { id: buttonUp Layout.columnSpan: 3 Layout.alignment: Qt.AlignHCenter iconName: "triangle" iconPath: "qrc:/assets/gfx/controls/dpad" icon.width: 32 icon.height: 28 rotation: 180 padding: control.spacing onPressed: inputEvent(InputEvent.Up, InputEvent.Press) onReleased: inputEvent(InputEvent.Up, InputEvent.Release) onShortPress: inputEvent(InputEvent.Up, InputEvent.Short) onLongPress: inputEvent(InputEvent.Up, InputEvent.Long) onRepeat: inputEvent(InputEvent.Up, InputEvent.Repeat) } KeypadButton { id: buttonLeft iconName: "triangle" iconPath: "qrc:/assets/gfx/controls/dpad" icon.width: 32 icon.height: 28 rotation: 90 padding: control.spacing onPressed: inputEvent(InputEvent.Left, InputEvent.Press) onReleased: inputEvent(InputEvent.Left, InputEvent.Release) onShortPress: inputEvent(InputEvent.Left, InputEvent.Short) onLongPress: inputEvent(InputEvent.Left, InputEvent.Long) onRepeat: inputEvent(InputEvent.Left, InputEvent.Repeat) } KeypadButton { id: buttonOk iconName: "circle" iconPath: "qrc:/assets/gfx/controls/dpad" icon.width: 52 icon.height: 52 onPressed: inputEvent(InputEvent.Ok, InputEvent.Press) onReleased: inputEvent(InputEvent.Ok, InputEvent.Release) onShortPress: inputEvent(InputEvent.Ok, InputEvent.Short) onLongPress: inputEvent(InputEvent.Ok, InputEvent.Long) onRepeat: inputEvent(InputEvent.Ok, InputEvent.Repeat) } KeypadButton { id: buttonRight iconName: "triangle" iconPath: "qrc:/assets/gfx/controls/dpad" icon.width: 32 icon.height: 28 rotation: -90 padding: control.spacing onPressed: inputEvent(InputEvent.Right, InputEvent.Press) onReleased: inputEvent(InputEvent.Right, InputEvent.Release) onShortPress: inputEvent(InputEvent.Right, InputEvent.Short) onLongPress: inputEvent(InputEvent.Right, InputEvent.Long) onRepeat: inputEvent(InputEvent.Right, InputEvent.Repeat) } KeypadButton { id: buttonDown Layout.columnSpan: 3 Layout.alignment: Qt.AlignHCenter iconName: "triangle" iconPath: "qrc:/assets/gfx/controls/dpad" icon.width: 32 icon.height: 28 padding: control.spacing onPressed: inputEvent(InputEvent.Down, InputEvent.Press) onReleased: inputEvent(InputEvent.Down, InputEvent.Release) onShortPress: inputEvent(InputEvent.Down, InputEvent.Short) onLongPress: inputEvent(InputEvent.Down, InputEvent.Long) onRepeat: inputEvent(InputEvent.Down, InputEvent.Repeat) } } } KeypadButton { id: buttonBack anchors.bottom: parent.bottom anchors.right: parent.right iconName: "back" iconPath: "qrc:/assets/gfx/controls/dpad" icon.width: 52 icon.height: 52 onPressed: inputEvent(InputEvent.Back, InputEvent.Press) onReleased: inputEvent(InputEvent.Back, InputEvent.Release) onShortPress: inputEvent(InputEvent.Back, InputEvent.Short) onLongPress: inputEvent(InputEvent.Back, InputEvent.Long) onRepeat: inputEvent(InputEvent.Back, InputEvent.Repeat) } Keys.onPressed: function(event) { if(event.isAutoRepeat) return; const button = findButton(event.key); if(button === null) return; button.setPressed(); event.accepted = true; } Keys.onReleased: function(event) { if(event.isAutoRepeat) return; const button = findButton(event.key); if(button === null) return; button.setReleased(); event.accepted = true; } function findButton(key) { switch(key) { case Qt.Key_Left: case Qt.Key_H: case Qt.Key_A: return buttonLeft; case Qt.Key_Right: case Qt.Key_L: case Qt.Key_D: return buttonRight; case Qt.Key_Up: case Qt.Key_K: case Qt.Key_W: return buttonUp; case Qt.Key_Down: case Qt.Key_J: case Qt.Key_S: return buttonDown; case Qt.Key_Enter: case Qt.Key_Return: case Qt.Key_Space: case Qt.Key_E: case Qt.Key_Z: return buttonOk; case Qt.Key_Q: case Qt.Key_X: case Qt.Key_Escape: case Qt.Key_Backspace: return buttonBack; default: return null; } } } flipperdevices-qFlipper-bfce851/application/components/ExpandWidget.qml000066400000000000000000000017601452337521700266000ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import Theme 1.0 Item { id: control Rectangle { anchors.fill: parent color: "black" opacity: 0.6 radius: 2 } Item { width: 48 height: 45 anchors.centerIn: parent IconImage { anchors.top: parent.top anchors.right: parent.right source: "qrc:/assets/gfx/symbolic/arrow-expand.svg" sourceSize: Qt.size(14, 14) color: Theme.color.lightorange1 } IconImage { rotation: 180 anchors.bottom: parent.bottom anchors.left: parent.left source: "qrc:/assets/gfx/symbolic/arrow-expand.svg" sourceSize: Qt.size(14, 14) color: Theme.color.lightorange1 } } Behavior on opacity { PropertyAnimation { duration: 150 easing.type: Easing.InOutQuad } } } flipperdevices-qFlipper-bfce851/application/components/FileManager.qml000066400000000000000000000230321452337521700263630ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import Theme 1.0 import QFlipper 1.0 Item { id: control implicitWidth: 745 implicitHeight: 290 property MessageDialog messageDialog property ConfirmationDialog confirmationDialog onVisibleChanged: { if(Backend.backendState === ApplicationBackend.Ready) { Backend.screenStreamer.isEnabled = !visible } if(visible) { fileView.forceActiveFocus(); } } ColumnLayout { anchors.fill: parent anchors.leftMargin: 7 anchors.rightMargin: 7 RowLayout { spacing: 7 Layout.fillWidth: true Button { id: backButton action: backAction implicitWidth: 30 implicitHeight: 30 padding: 4 } Button { id: fwdButton action: forwardAction implicitWidth: 30 implicitHeight: 30 padding: 5 } Rectangle { width: 500 height: 30 color: "black" radius: 6 border.width: 2 border.color: Theme.color.mediumorange1 RowLayout { anchors.fill: parent anchors.leftMargin: 7 spacing: 5 IconImage { Layout.alignment: Qt.AlignVCenter color: Theme.color.lightorange2 sourceSize: Qt.size(16, 16) source: { const path = Backend.fileManager.currentPath if(path.startsWith("/ext")) { return "qrc:/assets/gfx/symbolic/filemgr/location-sdcard.svg" } else if(path.startsWith("/int")) { return "qrc:/assets/gfx/symbolic/filemgr/location-internal.svg" } else { return ""; } } } Text { Layout.fillWidth: true Layout.alignment: Qt.AlignVCenter font.pixelSize: 18 font.family: "Share Tech" color: Theme.color.lightorange2 elide: Text.ElideMiddle text: { const path = Backend.fileManager.currentPath if(path.startsWith("/ext")) { return path.replace("/ext", "SD Card") + "/"; } else if(path.startsWith("/int")) { return path.replace("/int", "Internal Flash") + "/"; } else { return path; } } onTextChanged: { fileView.currentIndex = 0; } } } } Button { id: refreshButton action: refreshAction implicitWidth: 30 implicitHeight: 30 padding: 2 } Switch { id: hiddenFileSwitch text: qsTr("Hidden files") checked: Preferences.showHiddenFiles onCheckedChanged: { Preferences.showHiddenFiles = checked; Backend.fileManager.refresh(); } } } ScrollView { id: scrollView Layout.fillWidth: true Layout.fillHeight: true ScrollBar.vertical.anchors.right: scrollView.right ScrollBar.horizontal.policy: ScrollBar.AlwaysOff padding: 0 clip: true background: Item {} GridView { id: fileView cellWidth: 120 cellHeight: 86 boundsBehavior: Flickable.StopAtBounds MouseArea { z: parent.z - 1 anchors.fill: parent acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.BackButton | Qt.ForwardButton onClicked: function(mouse) { fileView.currentIndex = 0; forceActiveFocus(Qt.MouseFocusReason); if(mouse.button === Qt.RightButton && !Backend.fileManager.isRoot) { emptyMenu.popup(); } else if (mouse.button === Qt.BackButton && Backend.fileManager.canGoBack) { Backend.fileManager.historyBack() } else if (mouse.button === Qt.ForwardButton && Backend.fileManager.canGoForward) { Backend.fileManager.historyForward() } } } model: Backend.fileManager delegate: FileManagerDelegate { confirmationDialog: control.confirmationDialog } } } } DropArea { enabled: !Backend.fileManager.isRoot anchors.fill: parent onDropped: function(drop) { if(drop.source || !drop.hasUrls || drop.proposedAction !== Qt.CopyAction) { const msgObj = { title: qsTr("Error"), message: qsTr("Operation is not supported"), customText: qsTr("Close") }; messageDialog.openWithMessage(null, msgObj); } else { control.uploadUrls(drop.urls); drop.accept() } } } Menu { id: emptyMenu MenuItem { action: uploadHereAction } MenuItem { action: newDirAction } } Action { id: forwardAction enabled: Backend.fileManager.canGoForward icon.width: 8 icon.height: 14 icon.source: "qrc:/assets/gfx/symbolic/arrow-forward-small.svg" onTriggered: Backend.fileManager.historyForward() } Action { id: backAction enabled: Backend.fileManager.canGoBack icon.width: 8 icon.height: 14 icon.source: "qrc:/assets/gfx/symbolic/arrow-back-small.svg" onTriggered: Backend.fileManager.historyBack() } Action { id: refreshAction icon.width: 16 icon.height: 16 icon.source: "qrc:/assets/gfx/symbolic/refresh-small.svg" onTriggered: Backend.fileManager.refresh() } Action { id: uploadHereAction text: qsTr("Upload here...") icon.source: "qrc:/assets/gfx/symbolic/filemgr/action-upload.svg" onTriggered: beginUpload(); } Action { id: newDirAction text: qsTr("New Folder") onTriggered: Backend.fileManager.beginMkDir(); icon.source: "qrc:/assets/gfx/symbolic/filemgr/action-new.svg" } Component.onCompleted: { Backend.fileManager.currentPathChanged.connect(function() { fileView.currentIndex = 0; }); } function uploadUrls(urls) { const doUpload = function() { Backend.fileManager.upload(urls); }; if(Backend.fileManager.isTooLarge(urls)) { const isMultiple = urls.length > 1; const msgObj = { title: qsTr("Warning"), message: qsTr("Selected %1 too large.\nUpload anyway?").arg(isMultiple ? qsTr("files are") : qsTr("file is")), suggestedRole: ConfirmationDialog.RejectRole, customText: qsTr("Upload") }; confirmationDialog.openWithMessage(doUpload, msgObj); } else { doUpload(); } } function beginUpload() { SystemFileDialog.accepted.connect(function() { control.uploadUrls(SystemFileDialog.fileUrls); }); SystemFileDialog.beginOpenFiles(SystemFileDialog.LastLocation, [ "All files (*)" ]); } Keys.onPressed: function(event) { switch(event.key) { case Qt.Key_Backspace: if(Backend.fileManager.canGoBack) { Backend.fileManager.historyBack(); } event.accepted = true; return; case Qt.Key_L: if(Backend.fileManager.isRoot) { event.accepted = false; } else if(event.modifiers & Qt.ControlModifier) { beginUpload(); event.accepted = true; } else { event.accepted = false; } return; case Qt.Key_N: if(Backend.fileManager.isRoot) { event.accepted = false; } else if(event.modifiers & Qt.ControlModifier) { Backend.fileManager.beginMkDir(); event.accepted = true; } else { event.accepted = false; } return; case Qt.Key_G: if(event.modifiers & Qt.ControlModifier) { Backend.fileManager.refresh() event.accepted = true; } else { event.accepted = false; } return; default: event.accepted = false; } } } flipperdevices-qFlipper-bfce851/application/components/FileManagerDelegate.qml000066400000000000000000000273611452337521700300270ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import Misc 1.0 import Theme 1.0 import QFlipper 1.0 Item { id: delegate required property int index required property string fileName required property string filePath required property int fileType required property int fileSize property bool editFlag readonly property bool isDirectory: !fileType readonly property bool isNewDirectory: Backend.fileManager.newDirectoryIndex === index readonly property bool isHovered: iconMouseArea.containsMouse || labelMouseArea.containsMouse readonly property bool isCurrent: GridView.isCurrentItem property color selectionColor: Color.transparent(Theme.color.darkorange1, delegate.isCurrent ? 1 : delegate.isHovered ? 0.5 : 0) property ConfirmationDialog confirmationDialog width: 120 height: 86 onIsNewDirectoryChanged: { if(isNewDirectory) { beginEdit(); } } Behavior on selectionColor { ColorAnimation { duration: 150 easing.type: Easing.OutQuad } } ColumnLayout { spacing: 3 anchors.fill: parent Rectangle { Layout.topMargin: 10 Layout.alignment: Qt.AlignHCenter radius: 2 color: delegate.selectionColor width: icon.width + 12 height: icon.height + 12 MouseArea { id: iconMouseArea hoverEnabled: true anchors.fill: parent acceptedButtons: Qt.LeftButton | Qt.RightButton onClicked: function(mouse) {delegate.rightClick(mouse);} onDoubleClicked: function(mouse) {delegate.doubleClick(mouse);} } IconImage { id: icon x: 6 y: 6 layer.enabled: true sourceSize: Qt.size(28, 28) color: Theme.color.lightorange2 source: { if(delegate.filePath === "/ext") { return "qrc:/assets/gfx/symbolic/mimetypes/sdcard.svg"; } else if(delegate.filePath === "/int") { return "qrc:/assets/gfx/symbolic/mimetypes/internal.svg"; } else if(delegate.isDirectory) { return "qrc:/assets/gfx/symbolic/mimetypes/folder.svg"; } const extension = delegate.fileName.substring(delegate.fileName.lastIndexOf('.') + 1); if(extension in FileTypes.icons) { return FileTypes.icons[extension]; } else { return FileTypes.icons["default"]; } } } } Item { Layout.alignment: Qt.AlignHCenter implicitWidth: delegate.width - 8 implicitHeight: nameLabel.height Rectangle { anchors.fill: nameLabel color: delegate.selectionColor } MouseArea { id: labelMouseArea hoverEnabled: true anchors.fill: parent acceptedButtons: Qt.LeftButton | Qt.RightButton onClicked: function(mouse) {delegate.rightClick(mouse);} onDoubleClicked: function(mouse) {delegate.doubleClick(mouse);} } Text { id: nameLabel visible: !editBox.visible anchors.horizontalCenter: parent.horizontalCenter font.pixelSize: 16 font.family: "Share Tech" color: Theme.color.lightorange2 horizontalAlignment: Text.AlignHCenter maximumLineCount: 2 elide: Text.ElideRight wrapMode: Text.WrapAnywhere textFormat: Text.PlainText width: Math.min(implicitWidth, delegate.width - 8) text: { if(delegate.filePath === "/ext") { return "SD Card"; } else if(delegate.filePath === "/int") { return "Internal Flash"; } else { delegate.fileName } } } Rectangle { id: editBox readonly property int padding: 2 visible: false y: -padding width: parent.width height: nameEdit.height + padding * 2 color: "black" border.color: Theme.color.lightorange2 border.width: 1 TextInput { id: nameEdit y: editBox.padding width: parent.width font: nameLabel.font color: Theme.color.lightorange2 selectionColor: color selectedTextColor: "black" wrapMode: Text.WrapAnywhere horizontalAlignment: Text.AlignHCenter selectByMouse: true onEditingFinished: delegate.commitEdit(); validator: RegularExpressionValidator { regularExpression: /[\x20-\x7E]+/ //Printable ASCII characters } } } } Item { Layout.fillHeight: true } } Menu { id: storageMenu MenuItem { action: uploadHereAction } MenuItem { action: downloadAction } } Menu { id: fileMenu MenuItem { action: downloadAction } MenuItem { action: renameAction } MenuItem { action: removeAction } } Menu { id: dirMenu MenuItem { action: uploadHereAction } MenuItem { action: downloadAction } MenuItem { action: renameAction } MenuItem { action: removeAction } } Action { id: uploadHereAction text: qsTr("Upload here...") icon.source: "qrc:/assets/gfx/symbolic/filemgr/action-upload.svg" onTriggered: { SystemFileDialog.accepted.connect(function() { const doUpload = function() { Backend.fileManager.uploadTo(delegate.fileName, SystemFileDialog.fileUrls); }; if(Backend.fileManager.isTooLarge(SystemFileDialog.fileUrls)) { const isMultiple = SystemFileDialog.fileUrls.length > 1; const msgObj = { title: qsTr("Warning"), message: qsTr("Selected %1 too large.\nUpload anyway?").arg(isMultiple ? qsTr("files are") : qsTr("file is")), suggestedRole: ConfirmationDialog.RejectRole, customText: qsTr("Upload") }; confirmationDialog.openWithMessage(doUpload, msgObj); } else { doUpload(); } }); SystemFileDialog.beginOpenFiles(SystemFileDialog.LastLocation, [ "All files (*)" ]); } } Action { id: downloadAction text: qsTr("Download...") icon.source: "qrc:/assets/gfx/symbolic/filemgr/action-download.svg" onTriggered: beginDownload(); } Action { id: renameAction text: qsTr("Rename") icon.source: "qrc:/assets/gfx/symbolic/filemgr/action-rename.svg" onTriggered: delegate.beginEdit(); } Action { id: removeAction text: qsTr("!Delete...") icon.source: "qrc:/assets/gfx/symbolic/filemgr/action-remove.svg" onTriggered: beginDelete(); } function rightClick(mouse) { delegate.GridView.view.currentIndex = delegate.index forceActiveFocus(Qt.MouseFocusReason); if(mouse.button === Qt.LeftButton) { return; } if(delegate.filePath === "/ext" || delegate.filePath === "/int") { storageMenu.popup(); } else if(delegate.isDirectory) { dirMenu.popup(); } else { fileMenu.popup(); } } function doubleClick(mouse) { if(mouse.button === Qt.RightButton || !delegate.isDirectory) { return; } Backend.fileManager.cd(delegate.fileName) } function beginEdit() { editFlag = true; nameEdit.text = nameLabel.text; nameEdit.selectAll(); nameEdit.forceActiveFocus(Qt.MouseFocusReason); editBox.visible = true; } function commitEdit() { if(!editBox.visible) return; const oldName = delegate.fileName; const newName = nameEdit.text; if(delegate.isNewDirectory) { Backend.fileManager.commitMkDir(newName); } else if(oldName !== newName) { Backend.fileManager.rename(oldName, newName); } nameLabel.text = newName; editBox.visible = false; } function beginDelete() { const doRemove = function() { Backend.fileManager.remove(delegate.fileName, delegate.isDirectory); }; const msgObj = { title: "%1 \"%2\"?".arg(qsTr("Delete")).arg(delegate.fileName), message: qsTr("This action cannot be undone."), suggestedRole: ConfirmationDialog.RejectRole, customText: qsTr("Delete") }; confirmationDialog.openWithMessage(doRemove, msgObj); } function beginDownload() { SystemFileDialog.accepted.connect(function() { Backend.fileManager.download(delegate.fileName, SystemFileDialog.fileUrls[0], delegate.isDirectory); }); if(delegate.isDirectory) { SystemFileDialog.beginSaveDir(SystemFileDialog.LastLocation); } else { SystemFileDialog.beginSaveFile(SystemFileDialog.LastLocation, [ "All files (*)" ], delegate.fileName); } } Keys.onPressed: function(event) { if(editBox.visible) { event.accepted = false; return; } switch(event.key) { case Qt.Key_Delete: if(Backend.fileManager.isRoot) { event.accepted = false; } else if(event.modifiers & Qt.ShiftModifier) { Backend.fileManager.remove(delegate.fileName, delegate.isDirectory); event.accepted = true; } else { beginDelete(); event.accepted = true; } return; case Qt.Key_Return: if(delegate.isDirectory && !editFlag) { Backend.fileManager.cd(delegate.fileName); event.accepted = true; } else { editFlag = false; event.accepted = false; } return; case Qt.Key_E: if(Backend.fileManager.isRoot) { event.accepted = false; } else if(event.modifiers & Qt.ControlModifier) { beginEdit(); event.accepted = true; } else { event.accepted = false; } return; case Qt.Key_D: if(event.modifiers & Qt.ControlModifier) { beginDownload(); event.accepted = true; } else { event.accepted = false; } return; default: event.accepted = false; } } Connections { target: confirmationDialog function onVisibleChanged() { if (!confirmationDialog.visible) { fileView.forceActiveFocus(); } } } } flipperdevices-qFlipper-bfce851/application/components/FinishOverlay.qml000066400000000000000000000152061452337521700267770ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import QFlipper 1.0 import Theme 1.0 import Misc 1.0 AbstractOverlay { id: overlay TextLabel { id: successLabel y: 19 capitalized: false visible: Backend.backendState === ApplicationBackend.Finished font.family: "Born2bSportyV2" font.pixelSize: 48 anchors.horizontalCenter: parent.horizontalCenter text: qsTr("Success!") } RowLayout { visible: Backend.backendState === ApplicationBackend.ErrorOccured anchors.fill: parent anchors.margins: 36 anchors.leftMargin: 0 ColumnLayout { Layout.fillWidth: true Layout.fillHeight: true TextLabel { id: errorLabel Layout.alignment: Qt.AlignHCenter capitalized: false font.family: "Born2bSportyV2" font.pixelSize: 48 text: { switch(Backend.errorType) { case BackendError.InvalidDevice: return qsTr("Invalid device") case BackendError.InternetError: return qsTr("Internet Error") case BackendError.DiskError: return qsTr("Disk Access Error") case BackendError.SerialAccessError: return qsTr("Permission Denied") case BackendError.RecoveryAccessError: return qsTr("Can't Find DFU Device") case BackendError.BackupError: return qsTr("Backup Failed") case BackendError.FileError: return qsTr("Corrupted Data") case BackendError.OperationError: return qsTr("Operation Error") case BackendError.UpdaterError: return qsTr("Updater Error") default: return qsTr("Unknown Error") } } } Item { Layout.fillWidth: true Layout.fillHeight: true Image { anchors.centerIn: parent anchors.verticalCenterOffset: -15 sourceSize: Qt.size(246, 187) source: Backend.errorType === BackendError.SerialAccessError || Backend.errorType === BackendError.RecoveryAccessError ? "qrc:/assets/gfx/images/error-access.svg" : Backend.errorType === BackendError.InternetError ? "qrc:/assets/gfx/images/error-internet.svg" : "qrc:/assets/gfx/images/error-client.svg" visible: !flipperError.visible } Image { id: flipperError visible: Backend.errorType === BackendError.InvalidDevice || Backend.errorType === BackendError.OperationError || Backend.errorType === BackendError.BackupError || Backend.errorType === BackendError.UpdaterError || Backend.errorType === BackendError.UnknownError anchors.centerIn: parent anchors.verticalCenterOffset: -30 anchors.horizontalCenterOffset: -10 sourceSize: Qt.size(360, 156) source: "qrc:/assets/gfx/images/flipper.svg" Image { x: 93 y: 26 source: Backend.errorType === BackendError.OperationError ? "qrc:/assets/gfx/images/error-cross-eyes.svg" : "qrc:/assets/gfx/images/error-exclamation.svg" sourceSize: Qt.size(128, 64) } } } } TextBox { Layout.preferredWidth: 335 Layout.alignment: Qt.AlignVCenter style: ErrorStrings.errorStyle text: { switch(Backend.errorType) { case BackendError.InternetError: return ErrorStrings.errorInternet case BackendError.InvalidDevice: return Qt.platform.os === "linux" ? ErrorStrings.errorInvalidDeviceLinux : ErrorStrings.errorInvalidDevice case BackendError.DiskError: return ErrorStrings.errorDisk case BackendError.SerialAccessError: return Qt.platform.os === "linux" ? ErrorStrings.errorSerialLinux : ErrorStrings.errorSerial case BackendError.RecoveryAccessError: return Qt.platform.os === "linux" ? ErrorStrings.errorRecoveryLinux : Qt.platform.os === "windows" ? ErrorStrings.errorRecoveryWindows : ErrorStrings.errorRecovery case BackendError.BackupError: return ErrorStrings.errorBackup case BackendError.DataError: return ErrorStrings.errorData case BackendError.OperationError: return ErrorStrings.errorOperation case BackendError.UpdaterError: return ErrorStrings.errorUpdater default: return ErrorStrings.errorUnknown } } } } Button { id: backButton action: backAction anchors.left: parent.left anchors.bottom: parent.bottom anchors.margins: 25 icon.width: 24 icon.height: 24 icon.source: "qrc:/assets/gfx/symbolic/arrow-back.svg" visible: Backend.backendState === ApplicationBackend.ErrorOccured } MainButton { id: continueButton action: continueAction anchors.horizontalCenter: parent.horizontalCenter visible: Backend.backendState === ApplicationBackend.Finished focus: visible y: 270 Keys.onPressed: continueAction.trigger() } Action { id: backAction text: qsTr("Back") onTriggered: Backend.finalizeOperation() } Action { id: continueAction text: qsTr("Continue") onTriggered: Backend.finalizeOperation() } } flipperdevices-qFlipper-bfce851/application/components/GridBackground.qml000066400000000000000000000041161452337521700271000ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import Theme 1.0 Rectangle { id: container radius: 9 border.width: 3 border.color: Theme.color.lightorange2 gradient: Gradient { GradientStop { position: 0; color: "#090400" } GradientStop { position: 1; color: "#210F00" } } Item { anchors.fill: parent anchors.margins: container.border.width clip: true Rectangle { id: scanline width: parent.width height: 320 gradient: Gradient { GradientStop {position: 0; color: Color.transparent(Theme.color.lightorange2, 0)} GradientStop {position: 0.6; color: Color.transparent(Theme.color.lightorange2, 0.01)} GradientStop {position: 0.99; color: Color.transparent(Theme.color.lightorange2, 0.07)} GradientStop {position: 1; color: Color.transparent(Theme.color.lightorange2, 0)} } } PropertyAnimation { target: scanline property: "y" duration: 4000 from: -scanline.height to: container.height loops: Animation.Infinite easing.type: Easing.Linear running: true } } Canvas { anchors.fill: parent anchors.margins: container.border.width opacity: 0.15 onPaint: { const numCells = 30; const cellSize = width / numCells; const ctx = getContext("2d"); ctx.strokeStyle = "#aa5115"; ctx.lineWidth = 2; for(let ypos = cellSize; ypos < height; ypos += cellSize) { const pos = Math.floor(ypos); ctx.moveTo(0, pos); ctx.lineTo(width, pos); } for(let xpos = cellSize; xpos < width; xpos += cellSize) { const pos = Math.floor(xpos); ctx.moveTo(pos, 0); ctx.lineTo(pos, height); } ctx.stroke(); } } } flipperdevices-qFlipper-bfce851/application/components/HomeOverlay.qml000066400000000000000000000412271452337521700264510ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import QtQml.Models 2.15 import Theme 1.0 import QFlipper 1.0 AbstractOverlay { id: overlay signal selfUpdateRequested readonly property int centerX: 590 readonly property int centerOffset: Math.min(overlay.width - (centerX + systemPathLabel.width + 12), 0) onDeviceInfoChanged: tabs.currentIndex = 0; TabButton { id: developerTab icon.source: "qrc:/assets/gfx/symbolic/developer-mode.svg" icon.width: 27 icon.height: 27 enabled: App.isDeveloperMode visible: App.isDeveloperMode ToolTip { text: qsTr("Developer mode. Use with caution!") visible: parent.hovered } } MessageDialog { id: messageDialog parent: backgroundRect radius: backgroundRect.radius } ConfirmationDialog { id: confirmationDialog parent: backgroundRect radius: backgroundRect.radius } ProgressDialog { id: progressDialog parent: backgroundRect radius: backgroundRect.radius title: qsTr("Please wait") text: qsTr("File operation in progress...") value: deviceState ? deviceState.progress : -1 indeterminate: deviceState ? deviceState.progress < 0 : true Component.onCompleted: { Backend.fileManager.isBusyChanged.connect(function() { if(Backend.fileManager.isBusy) open(); else close(); }); } } ChangelogDialog { id: changelogDialog parent: backgroundRect radius: backgroundRect.radius } SDWarningDialog { id: sdWarningDialog parent: backgroundRect radius: backgroundRect.radius onRejected: Backend.refreshStorageInfo() onAccepted: { updateButtonFunc(); result = false; } } TabPane { z: fileButton.z + 1 anchors.top: tabs.bottom anchors.left: tabs.left anchors.topMargin: -2 currentIndex: tabs.currentIndex backgroundColor: Qt.rgba(0, 0, 0, fileManagerTab.checked) items: [ DeviceInfo { id: deviceInfoPane }, DeviceActions { id: deviceActions }, FileManager { id: fileManager; messageDialog: messageDialog; confirmationDialog: confirmationDialog; }, DeveloperActions { id: developerActions } ] } TabBar { id: tabs x: 28 y: 28 layer.enabled: true TabButton { icon.source: "qrc:/assets/gfx/symbolic/info.svg" icon.width: 25 icon.height: 25 ToolTip { text: qsTr("Device information") visible: parent.hovered } } TabButton { icon.source: "qrc:/assets/gfx/symbolic/wrench.svg" icon.width: 27 icon.height: 27 ToolTip { text: qsTr("Advanced controls") visible: parent.hovered } } TabButton { id: fileManagerTab enabled: Backend.deviceState && !Backend.deviceState.isRecoveryMode icon.source: "qrc:/assets/gfx/symbolic/file-symbolic.svg" icon.width: 23 icon.height: 29 onCheckedChanged: if(checked) Backend.fileManager.refresh() ToolTip { text: qsTr("File manager") visible: parent.hovered } } } TextLabel { id: nameLabel x: centerX + centerOffset - width - 4 y: 19 color: Theme.color.lightorange2 font.family: "Born2bSportyV2" font.pixelSize: 48 capitalized: false text: deviceInfo ? deviceInfo.name : text } ColumnLayout { x: centerX + centerOffset + 4 anchors.bottom: nameLabel.baseline TransparentLabel { id: connectionLabel height: 14 icon.source: "qrc:/assets/gfx/symbolic/usb-connected.svg" icon.width: 18 icon.height: 10 color: (!deviceState || !deviceState.isOnline) ? Theme.color.lightred1 : deviceState.isRecoveryMode ? Theme.color.lightblue : Theme.color.lightgreen text: (!deviceState || !deviceState.isOnline) ? qsTr("Disconnected") : deviceState.isRecoveryMode ? qsTr("Recovery mode") : qsTr("Connected") } TransparentLabel { id: systemPathLabel height: connectionLabel.height color: connectionLabel.color text: deviceInfo ? deviceInfo.systemLocation : text capitalized: false TextEdit { id: systemPathLabelTextCopy text: parent.text visible: false } MouseArea { anchors.fill: parent onDoubleClicked: { systemPathLabelTextCopy.selectAll(); systemPathLabelTextCopy.copy(); } } } } MainButton { id: updateButton action: updateButtonAction x: Math.round(centerX - width / 2) y: 265 accent: { switch(Backend.firmwareUpdateState) { case ApplicationBackend.CanRepair: return MainButton.Blue; case ApplicationBackend.CanUpdate: return MainButton.Green; default: return MainButton.Default; } } icon.source: Backend.firmwareUpdateState === ApplicationBackend.ErrorOccured ? "qrc:/assets/gfx/symbolic/update-symbolic.svg" : "" icon.width: 32 icon.height: 32 ToolTip { text: { switch(Backend.firmwareUpdateState) { case ApplicationBackend.CanRepair: return qsTr("Repair a broken firmware installation. May erase your progress and settings."); case ApplicationBackend.CanUpdate: return qsTr("Update Flipper to the latest version"); case ApplicationBackend.CanInstall: return qsTr("Install firmware from currently selected update channel"); case ApplicationBackend.ErrorOccured: return qsTr("Press to check internet connection and try to update Flipper again"); default: return ""; } } implicitWidth: 300 visible: parent.hovered && text.length !== 0 } } LinkButton { id: releaseButton action: changelogAction x: centerX - width - 6 anchors.top: updateButton.bottom anchors.topMargin: 5 linkColor: { if(Preferences.updateChannel === "development") { return Theme.color.lightred2; } else if(Preferences.updateChannel === "release-candidate") { return "blueviolet"; } else if(Preferences.updateChannel === "release") { return Theme.color.lightgreen; } else { return Theme.color.lightorange2; } } visible: Backend.firmwareUpdateState !== ApplicationBackend.Unknown && Backend.firmwareUpdateState !== ApplicationBackend.Checking && Backend.firmwareUpdateState !== ApplicationBackend.ErrorOccured } LinkButton { id: fileButton x: centerX + 6 anchors.top: updateButton.bottom anchors.topMargin: 5 action: installFromFileAction } Action { id: updateButtonAction enabled: Backend.firmwareUpdateState === ApplicationBackend.CanUpdate || Backend.firmwareUpdateState === ApplicationBackend.CanInstall || Backend.firmwareUpdateState === ApplicationBackend.CanRepair || Backend.firmwareUpdateState === ApplicationBackend.ErrorOccured text: { switch(Backend.firmwareUpdateState) { case Backend.Unknown: return qsTr("No data"); case Backend.Checking: return qsTr("Checking..."); case Backend.CanRepair: return qsTr("Repair"); case Backend.CanUpdate: return qsTr("Update"); case Backend.CanInstall: return qsTr("Install"); case Backend.NoUpdates: return qsTr("No updates"); case Backend.ErrorOccured: return qsTr("Try again"); } } onTriggered: Backend.firmwareUpdateState !== ApplicationBackend.ErrorOccured ? updateButtonFunc() : Backend.checkFirmwareUpdates() } Action { id: changelogAction enabled: Backend.firmwareUpdateState !== ApplicationBackend.Unknown && Backend.firmwareUpdateState !== ApplicationBackend.Checking && Backend.firmwareUpdateState !== ApplicationBackend.ErrorOccured text: { let str; if(!enabled) { return qsTr("No data"); } else if(Preferences.updateChannel === "development") { str = "Dev"; } else if(Preferences.updateChannel === "release-candidate") { str = "RC"; } else if(Preferences.updateChannel === "release") { str = "Release"; } else { str = "Unknown"; } return "%1 %2".arg(str).arg(Backend.latestFirmwareVersion.number.split("-")[0]); } onTriggered: changelogDialog.open() } Action { id: installFromFileAction text: qsTr("Install from file") onTriggered: installFromFile() } function updateButtonFunc() { const channelName = Preferences.updateChannel; const messageObj = deviceState.isRecoveryMode ? { title : qsTr("Repair Device?"), customText: qsTr("Repair"), message : qsTr("Firmware %2
will be installed") .arg(releaseButton.linkColor) .arg(releaseButton.text) } : { title : qsTr("Update firmware?"), customText: qsTr("Update"), message: qsTr("New firmware %2
will be installed") .arg(releaseButton.linkColor) .arg(releaseButton.text), }; const canUpdate = deviceInfo.storage.isExternalPresent || deviceState.isRecoveryMode || sdWarningDialog.result; if(canUpdate) { confirmationDialog.openWithMessage(Backend.mainAction, messageObj); } else { sdWarningDialog.open(); } } function installFromFile() { SystemFileDialog.accepted.connect(function() { const messageObj = { title : qsTr("Install from file?"), customText: qsTr("Install"), message: qsTr("Firmware from file %1
will be installed").arg(baseName(SystemFileDialog.fileUrl)) }; const actionFunc = function() { Backend.installFirmware(SystemFileDialog.fileUrl); } confirmationDialog.openWithMessage(actionFunc, messageObj); }); const nameFilters = (deviceState.isRecoveryMode ? [] : ["Firmware bundle files (*.tgz)"]).concat(["Firmware files (*.dfu)", "All files (*.*)"]); SystemFileDialog.beginOpenFile(SystemFileDialog.LastLocation, nameFilters); } function backupDevice() { SystemFileDialog.accepted.connect(function() { const messageObj = { title : qsTr("Backup device?"), customText: qsTr("Backup"), message: qsTr("Device settings will be backed up") }; const actionFunc = function() { Backend.createBackup(SystemFileDialog.fileUrl); } confirmationDialog.openWithMessage(actionFunc, messageObj); }); const defaultName = "%1-backup-%2.tgz".arg(deviceInfo.name).arg(Qt.formatDateTime(new Date(), "yyyyMMdd-hhmmss")); SystemFileDialog.beginSaveFile(SystemFileDialog.LastLocation, ["Backup files (*.tgz)", "All files (*.*)"], defaultName); } function restoreDevice() { SystemFileDialog.accepted.connect(function() { const messageObj = { title : qsTr("Restore backup?"), customText: qsTr("Restore"), message: qsTr("Device settings will be restored
from selected backup") }; const actionFunc = function() { Backend.restoreBackup(SystemFileDialog.fileUrl); } confirmationDialog.openWithMessage(actionFunc, messageObj); }); SystemFileDialog.beginOpenFile(SystemFileDialog.LastLocation, ["Backup files (*.tgz)", "All files (*.*)"]); } function eraseDevice() { const messageObj = { title : qsTr("Erase device?"), message: qsTr("Device settings will be fully erased"), suggestedRole: ConfirmationDialog.RejectRole, customText: qsTr("Erase") }; confirmationDialog.openWithMessage(Backend.factoryReset, messageObj); } function reinstallFirmware() { const messageObj = { title : qsTr("Reinstall firmware?"), customText: qsTr("Reinstall"), message: qsTr("Current firmware version will be reinstalled") }; const canReinstall = deviceInfo.storage.isExternalPresent || deviceState.isRecoveryMode || sdWarningDialog.result; if(canReinstall) { confirmationDialog.openWithMessage(Backend.mainAction, messageObj); } else { sdWarningDialog.open(); } } function installWirelessStack() { SystemFileDialog.accepted.connect(function() { const messageObj = { title : qsTr("Install wireless stack?"), customText: qsTr("Install"), suggestedRole: ConfirmationDialog.RejectRole, message: qsTr("WARNING! This operaton can break your Flipper!") }; const actionFunc = function() { Backend.installWirelessStack(SystemFileDialog.fileUrl); } confirmationDialog.openWithMessage(actionFunc, messageObj); }); SystemFileDialog.beginOpenFile(SystemFileDialog.LastLocation, ["Firmware files (*.bin)", "All files (*.*)"]); } function installFUSDangerDanger() { SystemFileDialog.accepted.connect(function() { const messageObj = { title : qsTr("Install FUS?"), customText: qsTr("Install"), suggestedRole: ConfirmationDialog.RejectRole, message: qsTr("LAST WARNING! This will invalidate your encryption keys! Please reconsider.") }; const actionFunc = function() { Backend.installFUS(SystemFileDialog.fileUrl, 0x080ec00); } confirmationDialog.openWithMessage(actionFunc, messageObj); }); SystemFileDialog.beginOpenFile(SystemFileDialog.LastLocation, ["Firmware files (*.bin)", "All files (*.*)"]); } function baseName(fileUrl) { const str = fileUrl.toString(); return str.slice(str.lastIndexOf("/") + 1); } Component.onCompleted: { deviceActions.backupAction.triggered.connect(backupDevice); deviceActions.restoreAction.triggered.connect(restoreDevice); deviceActions.eraseAction.triggered.connect(eraseDevice); deviceActions.reinstallAction.triggered.connect(reinstallFirmware); deviceActions.selfUpdateAction.triggered.connect(selfUpdateRequested); developerActions.installRadioAction.triggered.connect(installWirelessStack); developerActions.installFusAction.triggered.connect(installFUSDangerDanger); if(App.isDeveloperMode) { tabs.addItem(developerTab); } // Close dialog windows when Flipper was PIN locked/disconnected Backend.currentDeviceChanged.connect(function() { if(messageDialog.visible) { messageDialog.close(); } if(confirmationDialog.visible) { confirmationDialog.close(); } if(sdWarningDialog.visible) { sdWarningDialog.close(); } }); } } flipperdevices-qFlipper-bfce851/application/components/ImageButton.qml000066400000000000000000000023561452337521700264350ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 AbstractButton { id: control property string iconPath property string iconName icon.width: 20 icon.height: 20 implicitWidth: icon.width + padding * 2 implicitHeight: icon.height + padding * 2 opacity: enabled ? 1.0 : 0.5 padding: 0 background: Item {} contentItem: Item { width: control.icon.width height: control.icon.height IconImage { source: "%1/%2.svg".arg(iconPath).arg(iconName) sourceSize: Qt.size(control.icon.width, control.icon.height) } IconImage { source: "%1/%2_hover.svg".arg(iconPath).arg(iconName) sourceSize: Qt.size(control.icon.width, control.icon.height) opacity: control.hovered ? 1 : 0 Behavior on opacity { PropertyAnimation { duration: 200 easing.type: Easing.OutQuad } } } IconImage { source: "%1/%2_down.svg".arg(iconPath).arg(iconName) sourceSize: Qt.size(control.icon.width, control.icon.height) opacity: control.down ? 1 : 0 } } } flipperdevices-qFlipper-bfce851/application/components/KeypadButton.qml000066400000000000000000000032321452337521700266220ustar00rootroot00000000000000import QtQuick 2.15 Item { id: control signal pressed signal released signal shortPress signal longPress signal repeat property int padding: 0 property alias icon: button.icon property alias iconPath: button.iconPath property alias iconName: button.iconName width: button.implicitWidth + padding * 2 height: button.implicitHeight + padding * 2 function setPressed() { button.down = true; onButtonPressed(); } function setReleased() { button.down = false; onButtonReleased(); } function onButtonPressed() { control.pressed(); if(!longTimer.running) { longTimer.start(); } if(releaseTimer.running) { releaseTimer.stop(); } } function onButtonReleased() { releaseTimer.start(); if(longTimer.running) { longTimer.stop(); control.shortPress(); } if(repeatTimer.running) { repeatTimer.stop(); } } onLongPress: { if(!repeatTimer.running) { repeatTimer.start(); } } ImageButton { id: button anchors.centerIn: parent onPressed: onButtonPressed() onReleased: onButtonReleased() } Timer { id: releaseTimer repeat: false interval: 1 onTriggered: control.released() } Timer { id: longTimer repeat: false interval: 350 onTriggered: control.longPress() } Timer { id: repeatTimer repeat: true interval: 150 onTriggered: control.repeat() } } flipperdevices-qFlipper-bfce851/application/components/LinkButton.qml000066400000000000000000000012041452337521700262770ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 import Primitives 1.0 Button { id: control flat: true padding: 0 font.capitalization: Font.MixedCase property color linkColor: Theme.color.lightorange2 foregroundColor: ColorSet { normal: linkColor hover: Qt.lighter(linkColor, 1.2) down: linkColor disabled: Theme.color.mediumorange1 } backgroundColor: ColorSet { normal: Theme.color.transparent hover: Theme.color.transparent down: Theme.color.transparent disabled: Theme.color.transparent } } flipperdevices-qFlipper-bfce851/application/components/MainButton.qml000066400000000000000000000034371452337521700263000ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import Theme 1.0 Button { id: control enum Accent { Default, Green, Blue } property int accent: MainButton.Default width: 280 height: 56 radius: 7 borderWidth: 3 font.family: "Born2bSportyV2" font.pixelSize: 48 states: [ State { when: accent === MainButton.Green PropertyChanges { target: foregroundColor normal: Theme.color.lightgreen hover: Theme.color.lightgreen down: Theme.color.darkgreen } PropertyChanges { target: backgroundColor normal: Theme.color.mediumgreen2 hover: Theme.color.mediumgreen1 down: Theme.color.lightgreen } PropertyChanges { target: strokeColor normal: Theme.color.lightgreen hover: Theme.color.lightgreen down: Theme.color.lightgreen } }, State { when: accent === MainButton.Blue PropertyChanges { target: foregroundColor normal: Theme.color.lightblue hover: Theme.color.lightblue down: Theme.color.darkblue1 } PropertyChanges { target: backgroundColor normal: Theme.color.darkblue2 hover: Theme.color.darkblue1 down: Theme.color.lightblue } PropertyChanges { target: strokeColor normal: Theme.color.lightblue hover: Theme.color.lightblue down: Theme.color.lightblue } } ] } flipperdevices-qFlipper-bfce851/application/components/MainWindow.qml000066400000000000000000000232731452337521700262740ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Qt.labs.platform 1.1 as Pf import Theme 1.0 import QFlipper 1.0 Item { id: mainWindow signal expandStarted signal expandFinished signal collapseStarted signal collapseFinished signal resizeStarted signal resizeFinished property alias controls: windowControls readonly property int baseWidth: 830 readonly property int baseHeight: 500 readonly property int logHeight: 200 readonly property int minimumLogHeight: 200 readonly property int shadowSize: 16 readonly property int shadowOffset: 4 readonly property var deviceState: Backend.deviceState readonly property var deviceInfo: deviceState ? deviceState.info : undefined Component.onCompleted: { if(App.updateStatus === App.CanUpdate) { askForSelfUpdate(); } else { App.updateStatusChanged.connect(askForSelfUpdate); } } width: baseWidth height: baseHeight x: shadowSize y: shadowSize - shadowOffset Pf.Menu { Pf.MenuItem { text: qsTr("Check for updates") role: Pf.MenuItem.ApplicationSpecificRole shortcut: "Ctrl+U" onTriggered: App.checkForUpdates() } Pf.MenuItem { text: qsTr("Refresh firmware") role: Pf.MenuItem.ApplicationSpecificRole shortcut: "Ctrl+R" onTriggered: Backend.checkFirmwareUpdates() } } PropertyAnimation { id: logExpand duration: 500 target: mainWindow property: "height" to: target.baseHeight + logHeight easing.type: Easing.InOutQuad onStarted: mainWindow.expandStarted() onFinished: mainWindow.expandFinished() } PropertyAnimation { id: logCollapse target: logExpand.target easing: logExpand.easing duration: logExpand.duration property: logExpand.property to: target.baseHeight onStarted: mainWindow.collapseStarted() onFinished: mainWindow.collapseFinished() } ConfirmationDialog { id: confirmationDialog radius: bg.radius parent: bg } SelfUpdateDialog { id: selfUpdateDialog radius: bg.radius parent: bg } WindowShadow { id: shadow anchors.fill: mainWindow anchors.margins: -mainWindow.shadowSize anchors.topMargin: -(mainWindow.shadowSize - mainWindow.shadowOffset) anchors.bottomMargin: -(mainWindow.shadowSize + mainWindow.shadowOffset) opacity: 0.75 } Rectangle { id: blackBorder anchors.fill: parent anchors.margins: -1 radius: bg.radius + 1 opacity: 0.5 color: "black" } Rectangle { id: bg radius: 10 anchors.fill: parent color: "black" border.color: Theme.color.mediumorange3 border.width: 2 } WindowControls { id: windowControls closeEnabled: Backend.backendState <= ApplicationBackend.ScreenStreaming || Backend.backendState >= ApplicationBackend.Finished controlPath: "qrc:/assets/gfx/controls" anchors.top: mainWindow.top anchors.left: mainContent.left anchors.right: mainContent.right anchors.bottom: mainContent.top anchors.topMargin: bg.border.width } GridBackground { id: mainContent anchors.horizontalCenter: parent.horizontalCenter y: 38 width: 800 + border.width * 2 height: 390 + border.width * 2 TextLabel { id: versionLabel anchors.top: parent.top anchors.right: parent.right anchors.margins: 10 anchors.rightMargin: 16 color: Theme.color.lightorange2 opacity: 0.5 font.family: "ProggySquareTT" font.pixelSize: 16 text: App.version // TODO: Implement copy version to clipboard } DeviceWidget { id: deviceWidget opacity: Backend.backendState !== ApplicationBackend.ScreenStreaming && Backend.backendState !== ApplicationBackend.ErrorOccured ? 1 : 0 x: Backend.backendState === ApplicationBackend.Ready ? Math.round(mainContent.width / 2) : 216 y: 82 onScreenStreamRequested: Backend.startFullScreenStreaming() } NoDeviceOverlay { id: noDeviceOverlay anchors.fill: parent opacity: Backend.backendState === ApplicationBackend.WaitingForDevices ? 1 : 0 } HomeOverlay { id: homeOverlay backgroundRect: bg anchors.fill: parent opacity: Backend.backendState === ApplicationBackend.Ready ? 1 : 0 } UpdateOverlay { id: updateOverlay backgroundRect: bg anchors.fill: parent opacity: Backend.backendState > ApplicationBackend.ScreenStreaming && Backend.backendState < ApplicationBackend.Finished ? 1 : 0 } FinishOverlay { id: finishOverlay backgroundRect: bg anchors.fill: parent opacity: Backend.backendState === ApplicationBackend.Finished || Backend.backendState === ApplicationBackend.ErrorOccured ? 1 : 0 } StreamOverlay { id: streamOverlay anchors.fill: parent opacity: Backend.backendState === ApplicationBackend.ScreenStreaming ? 1 : 0 } } RowLayout { id: footerLayour width: mainContent.width height: 42 spacing: 15 anchors.horizontalCenter: mainContent.horizontalCenter anchors.top: mainContent.bottom anchors.topMargin: 13 Button { id: logButton text: qsTr("LOGS") Layout.preferredWidth: 110 Layout.fillHeight: true icon.source: checked ? "qrc:/assets/gfx/symbolic/arrow-up.svg" : "qrc:/assets/gfx/symbolic/arrow-down.svg" icon.width: 24 icon.height: 24 checkable: true Image { x: parent.width - width / 2 - 1 y: -height / 2 + 1 source: "qrc:/assets/gfx/images/alert-badge.svg" sourceSize: Qt.size(18, 18) visible: Logger.errorCount > 0 && !logButton.checked } onCheckedChanged: { Logger.errorCount = 0; if(checked) { if(!logCollapse.running) { logExpand.start(); } else { checked = false; } } else { if(!logExpand.running) { logCollapse.start(); } else { checked = true; } } } } StatusBar { id: statusBar Layout.fillWidth: true Layout.fillHeight: true } } TextView { id: logView visible: height > 0 anchors.top: footerLayour.bottom anchors.left: mainContent.left anchors.right: mainContent.right anchors.bottom: parent.bottom anchors.topMargin: 14 anchors.bottomMargin: 28 content.textFormat: TextArea.RichText content.text: Logger.logText menu: Menu { id: logMenu width: 170 MenuItem { text: "Select all" onTriggered: logView.content.selectAll() } MenuItem { text: "Copy to clipboard" onTriggered: logView.content.copy() } MenuItem { text: "Browse all logs..." onTriggered: Qt.openUrlExternally(Logger.logsPath) } } } MouseArea { id: resizer property int prevMouseY width: parent.width height: 28 visible: logView.visible && !logCollapse.running && !logExpand.running cursorShape: Qt.SizeVerCursor anchors.bottom: parent.bottom preventStealing: true onPressed: { prevMouseY = mouseY; mainWindow.resizeStarted(); } onReleased: mainWindow.resizeFinished() onMouseYChanged: { const dy = mouseY - prevMouseY; mainWindow.height = Math.max(mainWindow.height + dy, mainWindow.baseHeight + mainWindow.minimumLogHeight); } } Text { id: fullLogButton visible: opacity opacity: resizer.visible text: "
%1".arg(qsTr("Open Full Log")) anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom anchors.bottomMargin: 6 font.pixelSize: 14 font.family: "Share Tech" font.capitalization: Font.AllUppercase color: Theme.color.lightorange2 linkColor: Theme.color.lightorange2 onLinkActivated: Qt.openUrlExternally(Logger.logsFile) MouseArea { anchors.fill: parent acceptedButtons: Qt.NoButton cursorShape: Qt.PointingHandCursor } Behavior on opacity { PropertyAnimation { duration: 200 easing.type: Easing.OutCubic } } } function askForSelfUpdate() { if(App.updateStatus === App.CanUpdate) { selfUpdateDialog.open(); } } } flipperdevices-qFlipper-bfce851/application/components/MessageDialog.qml000066400000000000000000000034651452337521700267250ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 CustomDialog { id: control property string customText property alias message: messageLabel.text function openWithMessage(onClosedFunc, messageObj = {}) { control.title = messageObj.title; control.message = messageObj.message; control.customText = messageObj.customText; if(onClosedFunc) { const onDialogClosed = function() { control.closed.disconnect(onDialogClosed); onClosedFunc(); } control.closed.connect(onDialogClosed); } control.open(); widgetContents.forceActiveFocus(); } contentWidget: Item { id: widgetContents implicitWidth: 430 implicitHeight: layout.implicitHeight Keys.onPressed: function(event) { if(event.key === Qt.Key_Return) { control.close(); } } ColumnLayout { id: layout width: parent.implicitWidth TextLabel { id: messageLabel horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter lineHeight: 1.4 wrapMode: Text.Wrap Layout.topMargin: 24 Layout.bottomMargin: -8 Layout.fillWidth: true } SmallButton { radius: 7 highlighted: true text: customText ? customText : qsTr("Ok") Layout.margins: 24 Layout.alignment: Qt.AlignHCenter Layout.preferredWidth: 160 Layout.preferredHeight: 42 onClicked: control.close() } } } } flipperdevices-qFlipper-bfce851/application/components/NoDeviceOverlay.qml000066400000000000000000000027071452337521700272550ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 import QFlipper 1.0 Item { id: overlay visible: opacity > 0 Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad duration: 150 } } Image { id: usbPlug x: parent.width - 216 y: 145 source: "qrc:/assets/gfx/images/typec.svg" sourceSize: Qt.size(159, 37) } TextLabel { id: connectMsg anchors.horizontalCenter: parent.horizontalCenter y: 264 color: Theme.color.lightorange2 text: qsTr("Connect your Flipper") font.family: "Born2bSportyV2" font.pixelSize: 48 } Image { id: spinner anchors.rightMargin: 31 anchors.bottomMargin: 21 anchors.right: overlay.right anchors.bottom: overlay.bottom source: "qrc:/assets/gfx/images/spinner.svg" sourceSize: Qt.size(24, 24) opacity: Backend.isQueryInProgress PropertyAnimation { target: spinner duration: 1500 loops: Animation.Infinite property: "rotation" running: Backend.isQueryInProgress from: 0 to: 360 } Behavior on opacity { PropertyAnimation { easing.type: Easing.InOutQuad duration: 150 } } } } flipperdevices-qFlipper-bfce851/application/components/ProgressDialog.qml000066400000000000000000000022171452337521700271370ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 import QFlipper 1.0 CustomDialog { id: control closable: false closePolicy: Popup.NoAutoClose property alias value: progressBar.value property alias text: progressLabel.text property alias indeterminate: progressBar.indeterminate contentWidget: Item { implicitWidth: 430 implicitHeight: layout.implicitHeight ColumnLayout { id: layout width: parent.implicitWidth ProgressBar { id: progressBar implicitWidth: 286 implicitHeight: 56 from: 0 to: 100 Layout.topMargin: 40 Layout.bottomMargin: 20 Layout.alignment: Qt.AlignHCenter } TextLabel { id: progressLabel padding: 0 horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter Layout.fillWidth: true Layout.bottomMargin: 14 } } } } flipperdevices-qFlipper-bfce851/application/components/SDWarningDialog.qml000066400000000000000000000025651452337521700271750ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 CustomDialog { id: control title: qsTr("SD Card Not Found") property bool isAltPressed: false contentWidget: RowLayout { spacing: -8 Image { Layout.margins: 20 source: "qrc:/assets/gfx/images/warning-no-sdcard.svg" sourceSize: Qt.size(118, 148) } ColumnLayout { spacing: 20 Layout.margins: 20 TextLabel { text: qsTr("Please install an SD Card
before updating the firmware") .arg(Theme.color.lightred4) lineHeight: 1.35 horizontalAlignment: Text.AlignRight } Button { id: okButton text: control.isAltPressed ? qsTr("Force install") : "OK" Keys.onPressed: control.isAltPressed = event.modifiers & Qt.AltModifier; Keys.onReleased: control.isAltPressed = false; onClicked: control.isAltPressed ? control.accepted() : control.rejected() Layout.preferredWidth: 200 Layout.alignment: Qt.AlignHCenter } } } onOpened: { okButton.forceActiveFocus(); } onClosed: { isAltPressed = false; } } flipperdevices-qFlipper-bfce851/application/components/SelfUpdateDialog.qml000066400000000000000000000070361452337521700273730ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 import QFlipper 1.0 CustomDialog { id: control closable: App.updater.state === ApplicationUpdater.ErrorOccured closePolicy: Popup.NoAutoClose title: App.updater.state === ApplicationUpdater.Idle ? qsTr("Update qFlipper?") : qsTr("Updating qFlipper") contentWidget: Item { implicitWidth: 430 implicitHeight: layout.implicitHeight ColumnLayout { id: layout width: parent.implicitWidth TextLabel { id: messageLabel visible: App.updater.state === ApplicationUpdater.Idle horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter text: qsTr("Newer version of qFlipper
will be installed") lineHeight: 1.4 wrapMode: Text.Wrap Layout.topMargin: 24 Layout.bottomMargin: -8 Layout.fillWidth: true } // TODO: Find a way to use a DialogButtonBox properly RowLayout { id: buttonBox visible: App.updater.state === ApplicationUpdater.Idle spacing: 30 Layout.margins: 20 Layout.fillWidth: true Layout.preferredHeight: 42 layoutDirection: Qt.platform.os === "osx" ? Qt.RightToLeft : Qt.LeftToRight SmallButton { radius: 7 text: qsTr("Update") highlighted: true Layout.fillWidth: true Layout.fillHeight: true onClicked: App.selfUpdate(); } SmallButton { radius: 7 text: qsTr("Cancel") Layout.fillWidth: true Layout.fillHeight: true onClicked: control.rejected() } } ProgressBar { id: progressBar visible: App.updater.state !== ApplicationUpdater.Idle implicitWidth: 286 implicitHeight: 56 from: 0 to: 100 value: App.updater.progress indeterminate: value < 0 Layout.topMargin: 40 Layout.bottomMargin: 20 Layout.alignment: Qt.AlignHCenter } TextLabel { id: progressLabel padding: 0 visible: App.updater.state !== ApplicationUpdater.Idle text: { switch(App.updater.state) { case ApplicationUpdater.Downloading: return qsTr("Downloading latest version..."); case ApplicationUpdater.Updating: return qsTr("Starting update process..."); case ApplicationUpdater.ErrorOccured: return qsTr("Update failed (See log)."); default: return qsTr("Preparing..."); } } horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter Layout.fillWidth: true Layout.bottomMargin: 14 color: App.updater.state === ApplicationUpdater.ErrorOccured ? Theme.color.lightred3 : Theme.color.lightorange2 } } } } flipperdevices-qFlipper-bfce851/application/components/SmallButton.qml000066400000000000000000000015101452337521700264520ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import Theme 1.0 import Primitives 1.0 Button { id: control implicitHeight: 34 foregroundColor: ColorSet { normal: Theme.color.lightorange2 hover: Theme.color.lightorange1 down: Theme.color.darkorange1 disabled: Theme.color.mediumorange1 } backgroundColor: ColorSet { normal: control.highlighted ? Theme.color.darkorange1 : Theme.color.transparent hover: Theme.color.mediumorange2 down: Theme.color.lightorange2 disabled: Theme.color.transparent } strokeColor: ColorSet { normal: control.highlighted ? Theme.color.lightorange2 : Theme.color.mediumorange1 hover: Theme.color.lightorange1 down: Theme.color.lightorange2 disabled: Theme.color.mediumorange1 } } flipperdevices-qFlipper-bfce851/application/components/SmallButtonRed.qml000066400000000000000000000012671452337521700271160ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import Theme 1.0 import Primitives 1.0 SmallButton { id: control foregroundColor: ColorSet { normal: Theme.color.lightred2 hover: Theme.color.lightred1 down: Theme.color.darkred1 disabled: Theme.color.mediumred1 } backgroundColor: ColorSet { normal: Theme.color.transparent hover: Theme.color.mediumred2 down: Theme.color.lightred2 disabled: Theme.color.transparent } strokeColor: ColorSet { normal: Theme.color.mediumred1 hover: Theme.color.lightred1 down: Theme.color.lightred2 disabled: Theme.color.mediumred1 } } flipperdevices-qFlipper-bfce851/application/components/StatusBar.qml000066400000000000000000000052771452337521700261340ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import Theme 1.0 import QFlipper 1.0 Rectangle { id: control readonly property bool errorOccured: Backend.backendState === Backend.ErrorOccured || Backend.firmwareUpdateState === Backend.ErrorOccured color: errorOccured ? Theme.color.darkred2 : Theme.color.darkorange1 RowLayout { anchors.fill: parent anchors.leftMargin: 10 spacing: 10 IconImage { color: message.color sourceSize: Qt.size(22, 22) source: "qrc:/assets/gfx/symbolic/info-small.svg" rotation: errorOccured ? 180 : 0 } TextLabel { id: message text: Backend.backendState === ApplicationBackend.ErrorOccured ? Backend.errorType === BackendError.InvalidDevice ? qsTr("Unsupported device found") : Backend.errorType === BackendError.InternetError ? qsTr("Cannot connect to update server") : Backend.errorType === BackendError.SerialAccessError ? qsTr("Cannot access serial port"): Backend.errorType === BackendError.RecoveryAccessError ? qsTr("Cannot access device in recovery mode"): Backend.errorType === BackendError.DiskError ? qsTr("Disk access error"): Backend.errorType === BackendError.BackupError ? qsTr("Cannot save Flipper data"): Backend.errorType === BackendError.OperationError ? qsTr("Operation interrupted"): Backend.errorType === BackendError.DataError ? qsTr("Data corrupted"): qsTr("Something went wrong. Check logs for details.") : Backend.backendState === ApplicationBackend.WaitingForDevices ? qsTr("Waiting for devices ...") : Backend.backendState > ApplicationBackend.ScreenStreaming && Backend.backendState < ApplicationBackend.Finished ? qsTr("Do not unplug the device ...") : Backend.backendState === ApplicationBackend.Finished ? qsTr("Operation has finished successfully.") : Backend.firmwareUpdateState === ApplicationBackend.ErrorOccured ? qsTr("Cannot connect to update server") : Backend.firmwareUpdateState === ApplicationBackend.Checking ? qsTr("Checking for firmware updates...") : qsTr("Ready.") color: control.errorOccured ? Theme.color.lightred4 : Theme.color.lightorange2 verticalAlignment: Text.AlignVCenter Layout.fillWidth: true } } Behavior on color { ColorAnimation { duration: 150 easing.type: Easing.OutQuad } } } flipperdevices-qFlipper-bfce851/application/components/StreamOverlay.qml000066400000000000000000000071661452337521700270200ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import QtQuick.Layouts 1.15 import QFlipper 1.0 import Theme 1.0 AbstractOverlay { id: overlay signal closeRequested Rectangle { id: canvasBg anchors.fill: canvas anchors.margins: -11 radius: 10 color: Theme.color.lightorange2 border.color: Theme.color.mediumorange1 border.width: 3 } ScreenCanvas { id: canvas x: 38 y: 32 foregroundColor: "black" backgroundColor: Theme.color.lightorange2 zoomFactor: 4 frame: Backend.screenStreamer.screenFrame } RowLayout { id: buttonLayout x: canvasBg.x width: canvasBg.width spacing: 20 anchors.bottom: overlay.bottom anchors.bottomMargin: 22 Button { action: backAction icon.width: 24 icon.height: 24 icon.source: "qrc:/assets/gfx/symbolic/arrow-back.svg" } Item { Layout.fillWidth: true } Button { action: saveAction Layout.alignment: Qt.AlignRight icon.width: 20 icon.height: 20 icon.source: "qrc:/assets/gfx/symbolic/save-symbolic.svg" } } DirectionalKeypad { id: keypad x: 590 y: 52 onInputEvent: function(key, type) { Backend.screenStreamer.sendInputEvent(key, type); } // Prevent focus loss onEnabledChanged: focus = enabled onActiveFocusChanged: if(!activeFocus) focus = enabled } IconImage { anchors.right: parent.right anchors.bottom: parent.bottom anchors.margins: 14 color: Theme.color.lightorange2 source: "qrc:/assets/gfx/symbolic/info-big.svg" sourceSize: Qt.size(32, 32) Control { anchors.fill: parent ToolTip { delay: 100 timeout: -1 visible: parent.hovered contentItem: Image { source: "qrc:/assets/gfx/images/streaming-help%1.svg".arg(Qt.platform.os === "osx" ? "-mac" : "") sourceSize: Qt.size(207, 102) } } } } Action { id: backAction text: qsTr("Back") enabled: overlay.enabled onTriggered: Backend.stopFullScreenStreaming() } Action { id: saveAction text: qsTr("Save Screenshot") shortcut: "Ctrl+S" enabled: overlay.enabled onTriggered: { Backend.screenStreamer.isPaused = true; SystemFileDialog.finished.connect(function() { Backend.screenStreamer.isPaused = false; }); SystemFileDialog.accepted.connect(function() { const ext = SystemFileDialog.selectedNameFilter.match("\\.\\w+")[0]; let strurl = SystemFileDialog.fileUrl.toString(); if(!strurl.endsWith(ext)) { strurl += ext; } canvas.saveImage(Qt.resolvedUrl(strurl), 4); }); const defaultName = "Screenshot-%1.png".arg(Qt.formatDateTime(new Date(), "yyyyMMdd-hhmmss")); SystemFileDialog.beginSaveFile(SystemFileDialog.PicturesLocation, ["PNG images (*.png)", "JPEG images (*.jpg)"], defaultName); } } Action { id: copyAction text: qsTr("Copy to clipboard") shortcut: StandardKey.Copy enabled: overlay.enabled onTriggered: canvas.copyToClipboard(4) } } flipperdevices-qFlipper-bfce851/application/components/TabPane.qml000066400000000000000000000066561452337521700255400ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import Theme 1.0 ColumnLayout { id: control spacing: 0 property alias currentIndex: content.currentIndex property list items property int radius: 7 property int borderWidth: 2 property color backgroundColor: Qt.rgba(0,0,0,0) Behavior on backgroundColor { ColorAnimation { duration: 200 easing.type: Easing.InOutQuad } } Item { id: header clip: true height: parent.radius + parent.borderWidth Layout.fillWidth: true Rectangle { color: control.backgroundColor width: parent.width + control.radius height: control.radius * 2 + control.borderWidth * 2 radius: control.radius border.color: Theme.color.lightorange2 border.width: borderWidth anchors.right: parent.right } Item { clip: true anchors.fill: parent anchors.rightMargin: parent.width / 2 Rectangle { color: control.backgroundColor width: parent.width + border.width height: control.radius + control.borderWidth * 2 border.color: Theme.color.lightorange2 border.width: borderWidth } } } Item { clip: true implicitWidth: content.width + control.borderWidth * 2 implicitHeight: content.height Canvas { anchors.fill: parent onPaint: { const ctx = getContext("2d"); ctx.reset(); const inset = control.borderWidth; ctx.fillStyle = control.backgroundColor; ctx.fillRect(inset, 0, width - inset, height); ctx.globalAlpha = 0.5; ctx.lineDashOffset = 0.5; ctx.strokeStyle = Theme.color.lightorange2; ctx.lineWidth = control.borderWidth * 2; ctx.setLineDash([0.5, 1.25]); ctx.moveTo(0,0); ctx.lineTo(0, height); ctx.moveTo(width, 0); ctx.lineTo(width, height) ctx.stroke(); } onVisibleChanged: if(visible) requestPaint(); } StackLayout { id: content x: control.borderWidth children: items width: children[currentIndex].implicitWidth height: children[currentIndex].implicitHeight Behavior on width { PropertyAnimation { duration: 200 easing.type: Easing.InOutQuad } } Behavior on height { PropertyAnimation { duration: 200 easing.type: Easing.InOutQuad } } } } Item { id: footer clip: true height: parent.radius + parent.borderWidth Layout.fillWidth: true Rectangle { color: control.backgroundColor width: parent.width height: control.radius * 2 + control.borderWidth * 2 radius: control.radius border.color: Theme.color.lightorange2 border.width: borderWidth anchors.bottom: parent.bottom } } } flipperdevices-qFlipper-bfce851/application/components/TextBox.qml000066400000000000000000000017151452337521700256120ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import Theme 1.0 Rectangle { id: control property string text property string style property int padding: 20 implicitHeight: content.implicitHeight + padding * 2 radius: 6 color: "black" border.color: Theme.color.lightorange2 MouseArea { id: mouseArea anchors.fill: content cursorShape: content.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor } Text { id: content x: control.padding y: control.padding text: control.style + control.text color: Theme.color.lightorange2 width: control.width - control.padding * 2 font.pixelSize: 16 font.letterSpacing: -1 font.family: "Share Tech Mono" padding: 0 wrapMode: Text.Wrap textFormat: Text.RichText onLinkActivated: function(link) { Qt.openUrlExternally(link) } } } flipperdevices-qFlipper-bfce851/application/components/TextLabel.qml000066400000000000000000000004731452337521700261010ustar00rootroot00000000000000import QtQuick 2.15 import Theme 1.0 import Misc 1.0 Text { property bool capitalized: true antialiasing: Mitigations.fontRenderingFix color: Theme.color.lightorange2 font.pixelSize: 32 font.family: "HaxrCorp 4089" font.capitalization: capitalized ? Font.AllUppercase : Font.MixedCase } flipperdevices-qFlipper-bfce851/application/components/TextView.qml000066400000000000000000000033751452337521700260000ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Controls 2.15 import Theme 1.0 Item { id: control property alias content: content property alias text: content.text property alias textFormat: content.textFormat property alias background: scrollView.background property Menu menu ScrollView { id: scrollView anchors.fill: parent contentWidth: availableWidth clip: true Flickable { id: flickView boundsBehavior: Flickable.StopAtBounds contentWidth: scrollView.contentWidth; contentHeight: content.implicitHeight; TextEdit { id: content width: flickView.contentWidth cursorVisible: false persistentSelection: true font.pixelSize: 16 font.letterSpacing: -1 font.family: "Share Tech Mono" selectionColor: Theme.color.lightorange2 selectedTextColor: Theme.color.darkorange1 color: Theme.color.lightorange2 wrapMode: Text.Wrap readOnly: true selectByMouse: true selectByKeyboard: true onTextChanged: scrollToBottom(); } } } MouseArea { anchors.fill: parent cursorShape: Qt.IBeamCursor acceptedButtons: Qt.RightButton onClicked: function(mouse) { if(control.menu && mouse.button === Qt.RightButton) control.menu.popup(); } } onVisibleChanged: if(visible) scrollToBottom() function scrollToBottom() { if(visible) { const sb = scrollView.ScrollBar.vertical; sb.position = 1.0 - sb.size; } } } flipperdevices-qFlipper-bfce851/application/components/TransparentLabel.qml000066400000000000000000000022121452337521700274470ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import QtQuick.Controls.impl 2.15 import Theme 1.0 Item { id: control property int margins: 3 property color color: Theme.color.lightgreen property alias capitalized: label.capitalized property alias text: label.text property alias font: label.font property alias icon: icon font.family: "ProggySquareTT" font.pixelSize: 16 implicitHeight: 15 implicitWidth: layout.implicitWidth + margins * 2 Rectangle { id: bg anchors.fill: parent color: Color.transparent(control.color, 0.2) } RowLayout { id: layout x: margins anchors.top: control.top anchors.bottom: control.bottom TextLabel { id: label color: control.color Layout.topMargin: 1 } IconImage { id: icon color: control.color sourceSize: Qt.size(width, height) Layout.bottomMargin: 1 } } Component.onCompleted: { layout.spacing = icon.source != "" ? layout.spacing : 0 } } flipperdevices-qFlipper-bfce851/application/components/UpdateOverlay.qml000066400000000000000000000061541452337521700270030ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 import Theme 1.0 import QFlipper 1.0 AbstractOverlay { id: overlay TextLabel { id: updateLabel capitalized: false anchors.horizontalCenter: parent.horizontalCenter y: 19 color: Theme.color.lightorange2 font.family: "Born2bSportyV2" font.pixelSize: 48 text: { switch(Backend.backendState) { case Backend.UpdatingDevice: return qsTr("Updating your Flipper"); case Backend.RepairingDevice: return qsTr("Repairing your Flipper"); case Backend.CreatingBackup: return qsTr("Creating Backup"); case Backend.RestoringBackup: return qsTr("Restoring Backup"); case Backend.FactoryResetting: return qsTr("Performing Factory Reset"); case Backend.InstallingFirmware: return qsTr("Installing Firmware"); case Backend.InstallingWirelessStack: return qsTr("Installing Wireless Firmware"); case Backend.InstallingFUS: return qsTr("Installing FUS Firmware"); default: return text; } } } ProgressBar { id: progressBar width: 280 height: 56 from: 0 to: 100 x: Math.round((parent.width - width) / 2) y: 270 value: deviceState ? deviceState.progress : 0 indeterminate: !deviceState ? true : deviceState.progress < 0 } TextLabel { id: messageLabel anchors.top: progressBar.bottom anchors.topMargin: 20 anchors.horizontalCenter: parent.horizontalCenter text: !deviceState ? text : deviceState.isError ? deviceState.errorString : deviceState.statusString color: Theme.color.lightorange2 } MouseArea { x: 620 y: 120 hoverEnabled: true width: layout.implicitWidth height: layout.implicitHeight opacity: Backend.backendState === ApplicationBackend.UpdatingDevice ? !!deviceInfo && !deviceInfo.storage.isExternalPresent : Backend.backendState === ApplicationBackend.RepairingDevice ? !!deviceInfo && !deviceState.isRecoveryMode && !deviceInfo.storage.isExternalPresent : 0 enabled: opacity > 0 ColumnLayout { id: layout Image { source: "qrc:/assets/gfx/images/warning-sdcard.svg" sourceSize: Qt.size(44, 58) Layout.alignment: Qt.AlignHCenter } TextLabel { text: qsTr("No SD") Layout.alignment: Qt.AlignHCenter } } ToolTip { implicitWidth: 250 text: qsTr("SD Card is not installed. Some functionality will not be available.") visible: parent.containsMouse } Behavior on opacity { PropertyAnimation { duration: 150 easing.type: Easing.InOutQuad } } } } flipperdevices-qFlipper-bfce851/application/components/WindowControls.qml000066400000000000000000000033701452337521700272070ustar00rootroot00000000000000import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Window 2.15 RowLayout { id: control enum Style { Windows, MacOS, Linux } signal minimizeRequested signal closeRequested property bool closeEnabled: true property string controlPath readonly property int style: { // TODO: additional Linux style? if(Qt.platform.os === "osx") { return WindowControls.Style.MacOS } else { return WindowControls.Style.Windows } } readonly property string iconPath: { const p = controlPath + "/%1"; switch(style) { case WindowControls.Style.MacOS: return p.arg("mac"); case WindowControls.Style.Windows: default: return p.arg("windows"); } } layoutDirection: { switch(style) { case WindowControls.Style.MacOS: return Qt.RightToLeft; case WindowControls.Style.Windows: default: return Qt.LeftToRight; } } spacing: { switch(style) { case WindowControls.Style.MacOS: return 8; case WindowControls.Style.Windows: default: return 12; } } DragHandler { target: null onActiveChanged: if(active) control.Window.window.startSystemMove(); } Item { id: spacer Layout.fillWidth: true } ImageButton { id: minimizeButton iconPath: control.iconPath iconName: "minimize" onClicked: minimizeRequested() } ImageButton { id: closeButton enabled: control.closeEnabled iconPath: control.iconPath iconName: "close" onClicked: closeRequested() } } flipperdevices-qFlipper-bfce851/application/components/WindowShadow.qml000066400000000000000000000003411452337521700266240ustar00rootroot00000000000000import QtQuick 2.15 BorderImage { id: shadow width: 103 height: 103 border.top: 51 border.bottom: 51 border.left: 51 border.right: 51 source: "qrc:/assets/gfx/effects/window-shadow.png" } flipperdevices-qFlipper-bfce851/application/imports/000077500000000000000000000000001452337521700230065ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/imports/Misc/000077500000000000000000000000001452337521700237015ustar00rootroot00000000000000flipperdevices-qFlipper-bfce851/application/imports/Misc/ErrorStrings.qml000066400000000000000000000146461452337521700270720ustar00rootroot00000000000000pragma Singleton import QtQuick 2.15 import QFlipper 1.0 QtObject { readonly property string errorStyle: "" readonly property string errorInvalidDevice: "