From 442976ee1ab80c35bdb25a65a2651b280ad91d35 Mon Sep 17 00:00:00 2001 From: Applex007 <13167178850@163.com> Date: Wed, 19 Oct 2016 10:43:30 +0800 Subject: [PATCH 1/2] create packages branch for download --- .classpath | 7 - .project | 17 - .settings/org.eclipse.jdt.core.prefs | 11 - LICENSE | 674 ------------------ README.md | 8 - lib/kxml2-2.3.0.jar | Bin 43858 -> 0 bytes packages/VectorDrawableViewer.jar | Bin 0 -> 75837 bytes src/com/applex/logger/Logger.java | 10 - src/com/applex/main/DefaultValues.java | 27 - src/com/applex/main/Dialog.java | 19 - src/com/applex/main/Main.java | 155 ---- src/com/applex/main/MainFrame.java | 134 ---- src/com/applex/main/MouseActionsListener.java | 86 --- src/com/applex/main/MouseZoomListener.java | 43 -- src/com/applex/main/SizeLabel.java | 51 -- .../applex/main/VectorDrawableFileOpen.java | 34 - src/com/applex/main/VectorDrawableOp.java | 146 ---- src/com/applex/main/VectorDrawer.java | 531 -------------- src/com/applex/main/ViewPanel.java | 77 -- src/com/applex/main/XMLReader.java | 80 --- 20 files changed, 2110 deletions(-) delete mode 100644 .classpath delete mode 100644 .project delete mode 100644 .settings/org.eclipse.jdt.core.prefs delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 lib/kxml2-2.3.0.jar create mode 100644 packages/VectorDrawableViewer.jar delete mode 100644 src/com/applex/logger/Logger.java delete mode 100644 src/com/applex/main/DefaultValues.java delete mode 100644 src/com/applex/main/Dialog.java delete mode 100644 src/com/applex/main/Main.java delete mode 100644 src/com/applex/main/MainFrame.java delete mode 100644 src/com/applex/main/MouseActionsListener.java delete mode 100644 src/com/applex/main/MouseZoomListener.java delete mode 100644 src/com/applex/main/SizeLabel.java delete mode 100644 src/com/applex/main/VectorDrawableFileOpen.java delete mode 100644 src/com/applex/main/VectorDrawableOp.java delete mode 100644 src/com/applex/main/VectorDrawer.java delete mode 100644 src/com/applex/main/ViewPanel.java delete mode 100644 src/com/applex/main/XMLReader.java diff --git a/.classpath b/.classpath deleted file mode 100644 index 0ad453b..0000000 --- a/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/.project b/.project deleted file mode 100644 index 56c412f..0000000 --- a/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - VectorDrawableViewer - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 7341ab1..0000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,11 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 9cecc1d..0000000 --- a/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - 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. - - {one line to give the program's name and a brief idea of what it does.} - Copyright (C) {year} {name of author} - - 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: - - {project} Copyright (C) {year} {fullname} - 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 -. diff --git a/README.md b/README.md deleted file mode 100644 index f3a50c2..0000000 --- a/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# VectorDrawableViewer -Tool for view Android VectorDrawable - -Make sure you have correct JAVA environment, then you can start jar file in Terminal with command like "java -jar VectorDrawableViewer.jar", or you can double click it to start if your system allowed - -这是一个可以查看安卓矢量Drawable文件的工具 - -确保你的JAVA环境配置正确,然后你可以在终端中执行"java -jar VectorDrawableViewer.jar"或者在系统允许的情况下双击jar文件来启动它 diff --git a/lib/kxml2-2.3.0.jar b/lib/kxml2-2.3.0.jar deleted file mode 100644 index 647095222a507dad7c73e42db60a4d6e9ad76e13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43858 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

yyC@7buJZ51Carm9dyla-q=ExQ=@zXmZej+^0Io zZh5vQJ=(ZVls{xtN6#QSUXaI7K2dyUY*|v-Hd@%()#j2uh{m1w&plQNUPx znYh+tZX99(&}Yw;a+IewZ%B33&xx$l7BG$0Oo1`(*K6xo! zMrMT%S$}pi=DaV9|Mof5%ta#+8evQ^=5Wu@B@|8^i7p&WKmee^=%%Z!I^!B2Aek4y z@Bk3hS9oX*moNxU*}zUKmbsV5v3`4i383!-jxdKssn8b9W6~it zRLVqGaV)mZlr$a)Hx36Rrl38tCG>o70lXJc$@2$F!9G5RQkwfpf9~#Ik`eDJy21(v ziy^{{;v{l8rk@pOA5C>p+oI-z|HM3?lVFE_1iIyChwD}0P^uU&6c{^}B}9H!(Pj`W zdy+I%NS7@jhCNW%3`DCv8?_U`g*NMcF_LEa9OFKUBn&?#dBIj|5Uh@Mn#2we+QH(7 zig`gVnQqMZHDgt!wt$x1ml(B%5_<`nRs!{)cr;R|q)k#NGh~wpFYpm__=Mo-pb%3_ zwBAy>BMcce|3;dhRJ)auOpPXOsn^wu=s*qTlOLDXC@(C^c_8e`O4D&vX#a;6hoKXy zjv%$`{(k24D(Fl$ek;ok2{^}ef}a`0yAaKN+GeA{>Q7{kORfAbbhMC>1UO=Cl5Yx7#RBzgN9 z+_xQuIt@DHF5%{0YFHGZogS^-jB~uq260?35mTT5KiOQ&Txs5~%bUCgX;pOi40y9~ z&~?|vA9L<*A|K;9b-bm0t$4=#oUbI{8K80B=CeOFtBC+kZZQ3uF_QEy#tv_qM;w!B zpWJ8OE9Aj)%4_xPaDp_&{l$WnF*A~^$dkGaRtRrW4_sdMyrMd$ZJ=m^B@)9}vc^6Ps6cK#B&7Gcf%x**%| zB^DwOj&?O9nB6g02?RsS3q&|vA>hJjC)65GUI4nLC_pC|byr4S8eu_*{$)09#y1Vz zPDOCy=CWqijbPe>>2V;acTXDv@2x$6 zM88VKsc!L8*9oHSh87cC4SHzFojh1|a7MS$h@@%QAQJ0}MI8vyY8HNr3M�@69pb zM+{@lVpz-7;H>B52w}It&jwPu!Pn8x4fcyUyH`GnAN1Ak5t7`{16Q0<#_a$lu(+}! z{d_YLsY78N1u^-L?}3R_rmTUC_yU-@v~`KAgHMvuhgK@3Qnl#bixtK9S7xOmu+!ve zn?-(Jz}(s6g9`e$3aJS&tklPZ@vvA6ry6~3`G^}^HBz276*62Z-2@C{Y;V1#eb`ahPj;bhQiX9^GSF1oWR^^isY@pT=C1d*WDPfg%-I{9^J^5JCZApJ20=7^(Pt>96%$WXEzKVAD2URqH+7UqLB=1YzJHdmPX+ zfI3CMpfEL03&X`ht7W-@HA~F>nWeN;>ET@gujw&?P<=npK5fIRU+iRjJZO;%aw(CHbnKyJXlQ2 zyBdQ!xQ@pF^E6j!y>j<7tIyEpAx8zG&FeSHBM#3F>Jm zmik=6c?09`Ym5kJ9yZ3jhWIZY?b@PjJ+|M9!D!LzAKryg(=QLOR%LubHEK?u;v4Cb z`{Y?ZnmXIdwD&Tn?r~4^E#F~`I`x-K-o*3ACXM>{3If@pnyv>wS0kEQM%S79Mi$T0 zT~)L=?!f-j<;X1Hme`(H2#Tl>oe%Q=}`HTQC1_W zO0^T!iO3>G)-#%_A=#vG(J$?eW-K}s?B&sN6R;O_Cj;QZF=nWkGI0jTnAdjJ>^FL5 z_?3tfTlP-FS+T(yea9kP1J2(%{H9ZU%hd3C!QmB7b`OyPbZn`+Gqu5=zG(3U$A2HY z#YfxsIYg-ALCfPccO=d8SZfckA4ig_1CLeITy1BUB#{+JK0v1WM$k1-+2(7oWOnKo zJzt^orqfKsY`Pd8%{j0cQ-`XrD46?-IOkb57 zU}wG_^K9GY>C?$Gh$y^c#~)%|L_KAcWmvQC?{+Tu>3ubl5uCuUQZc?3_()=Hmkb<} zFhZ&fK2eLl!+oQ;@A1~a?mhATwc9vJ`UmnYjcPQ2El+NMr9*vy1$`)-cI?^O6t^4lF^gyR3{aK;eDjzh z%I=wrSCxG#d1HYW4X-xW`*M%pv$0I{YIODtsP6ulUgio@LpLsFrs@FvC@>D)=j6mX zCVXP`h!p7`w6Io(c9U_oUI%HB1&hbTchNN=^3CvRPPqP_*6+%pF?|XASA+6Dx`~t< zmUm&WKtS_YKtM$QZ{0){Gbc+U8%wYM>L})F!1(B>Vg1NE+dF0NxUFyhPHfp;MBku~ z4|8SK{NrY`9WdE?pxx>UKBMQf39(2@%3(bwB3K>74XjikVtBb+LFgu}QevXAP)OM; zHqsWM;L~T2z3YA>x5TcsK6jn|nCpD=-uuY+vwQAbp3e;oBv-QtFT`mT{F*+9vj@uR zlMn_AM^Lms#OgB)A3tcq`dNX8A098oDD;#8M$je#?K2o>kk>F!0;a`78%714S5m7W zeU}2ZZ27@kN8~$*ZV8DezOoduTdo6<{N^^H<{m0CI}meBZtssskiYaD1N2|I0e{lBdN}#by_i^F z&`SsAB5Ns#INLv!pDTi-_-ixn?2HX$&6=FZIQ`DvSWs5l@rTXHftahvAB3P<(N-eb zvbU=%^UttpPgu-FRyKt5wG@eHr75Gzk#Qc}W#yPDPeg4YIOO4M$S@=VzWq2h=bEIb z2-Y5=(fc6=wW!IKwz0#+UOb>OhZlMk+K{KnBEi^FXxOidb-tI9P|q>LCLT@G*IQYD zN@%)iLoJiSHF@LTp@)SH=uylL=v=}Slk-$M2Zc|F8r`U45q^f{tMM4{79VC=RprSW zT5AjA%DgUW%9rsmj24tmziuy#Avn-^w7x8``UvyplRkhUo=285T2@+ax#>zsHj~B$ zY4cQH#agz5&ni`g;R?}SmT8ltxMICKY1uv}jn&b1Bz;ONLw%KafreL7S5Yioev(Gt zEoCUW-}Md&ovbhBwT@EDUDzs5MYN~?G`X>l9V*GiI;uxDy;NkB>&(ji*xnxr8k$mO zNlFw4ep`chhZSvWGZ%@Ia6DwusJZfXFw_?Jx#uR2{~RJW3S`L}eQPtNc04ejOvAfU zVmz0|im^=n$`kH#Y#r$bsu8TQ6#64R?>ZyabgkCR)z?^G-1MjxuO+gNN)BIz6or75 z=tQ1$pO7ZK&z9Smk|!Hpv0)|&?B_E5M>GsdmtyD{G1VyI7gNL(B7|I+5M~1tc@y%l zL?eO_8`*@+@tQO0Wy-Wc@U3Ye(_bb@un7H_!D^oGxeFES1>#7{h{jF@Lx#TL*wG`d z94FO0HP6-O6*qCm-B&m96x-x}Wm}0EJm_=&q$qd2Nv+yg@cpr8X6``$bUmhOPJ%uJf(bdV@6Y!6orO}Gr1(q8ujs{3ur<=fOC^6k*vSr&fA%kQ0|u@ zu#f|oex=0LvgvekdwJDwP!D}O)Wg08(hvDz{&H9-sH4yZ>4;!cdSbMK$`AAdWmJ|6 z{!nb54e;>K!6<@l8_I69aXwyOXPYvhd4RYc_CvzTx|R)dyoQ85;MvQ~DAX8JJ{Kj< zTW)FKF%pi4MHm>O^m%FH#h=@m2~>meG-v9>sO=YJmBYrzx5L(-qT6Wl)iIp;cuog1 ze!r-ogZe5v0vd}0(K!K509L}(EmI7+P1+~ymI=clq-r8VC6v*=OD*Vu0r5s;7zwf)x7%l-G28e6}TD;OFdEfr`TxbD4XVV`7I}j ztrIM`Dpb+PE|Ea;d;^ilg1HhOY6N91iZ?biw!CQ^-ToWRnFl%z#-C;0JIKGyilb!3 z!b;zIu7$RD22h7VT-8L=^M< zf@3RqX6P4dfSzJ7!YU!Zv|51%%>m=zL`7k!87g&w@?df?)>BmA+$AFC*oIll!K0xE zVeMF_MuxqN(G~113EprRUX^}c_;*XnOt9!Nw=I6?pfRHRmI!MjXK<6&1d z7&V4Mo!gIKYw&>%(@URVlEMzir156RHtn{2fx#}Q>PU^?@h~o{R`*&K-=ryCK9rfQ z7P-a39<~U|0~s7GYRBkuhYlRdT|>E{%vqF9=#!~{oG7&eLuYh!yr9%C(P&TNpGsa( zecmi^NPL`NH5MD;c|+R#u#ui9W^fsKr*)acv1Eb6id+zibiL@`5;B@6vLUF4=zxJ@ zMH!TER9-s@67VHSB8x1l=?v7I#`5SRwYb0%+NppF+A$nBj`%%={x#OZp~mM-_}Aht zu@bhl7b|=8SsZhEdslSbOR(}gN~fIR{E$B7FV}-PyG5tu)q`88zZduJFn_V9U1|RA zMEALUZELAHVWKDM%L89e_k+!p8;RYbs#2?IRg`_F#=&W6rh;?4UJBjRWApdr&RM_n z&YZgX;5!1;!V4D>uPXRr*z*V9! z)d5+2JsJyWu0;==r6qr6_OK9>EY=$#X@zzU2zqqk@J^LT0jBqiG&sZWsTngEcw>j$ z70X-_%bfK3vu5@#QTn2kmIy3LycXk*o;_rRz!ft27(h9T`AsE17;&~DbxhZlv{-aP zAYaFk;H?Gr!*LAT(c@C~EJ%D~@kbLlMrdOo_)pw)NW@1o%*fpM!#HW?WeTeUb&7H8++U{h}8Educ z6}5f5YG&u%>2CZ)1q#LG!3hP+f&o%bV-F1N?oO<{BYLAd4SPBjtabAj!Ey4n*#6D7 zL%r4=J_+>NBrYdb0drWt#1&5hUN+Ko?4xoUjUG85-*W_L&~0!SWkr2DNSohvoEL_Y zj}|@Mu<}GI0783yB}q9^sJc5S;CzMnsLK0PcB&*QS8e#vp>bh6x9A=S6V%6E5B6$gw{Mio+AZn~ zM@%EV>Su2z|0(ls*fEP96$}py%kke#*-92}fR5dUB`?H~rjfkz)eZi*2E%5aAQ{2wp%Dh!|X1n zX|?W(-6!kvc;Ez2IyB$9Ii>e=4m;S*r1-8-)RrR9#S=mENd_oZo@W5t`k8jcFMuHFN(?h_ODIYHzKG zxeqn%_Unx?u7Lgl{jVbCf4eLZ{znmGZEA1(FaF71h$Qnrpg=$=kpJqR{CBXZy@{)> znVrjj_$Pf;bu@6)Q2)x)%SwhR3yaVdvY`eV5yy;pSw^eLC>29Nt)bU$Se|6aW=;=J z1XTKuPDR&urrDx*roF5a96Q}kz)Hz%cyhLV=i2*w=l7iM{`~#I=|{fMl0CR!oZZJp zpyBOK9&qLN;|PDf<454|(45&LpR)$=8$O12ze@^{1;;mGj!^it=M9u=9jqxfWDcS8 zAI`AXyP;lDzv&vTy>=HIX#b`oqz1t{SLd5@vj%y8hCC^> zJM2(4>_%`Ldc?Kt1jEv9)Z=NVPgq8`gDz3$i*D%1f?bX4n6rQhUURPXQxxKfG#W(` zzJ8j>n1?un3T!D43@z_|L8S@VWW)&>&q!<0Zo`w=t5L6fD&)8oNLV2(k>il-6Wg=2 z-F~zd@7iZYz#Zf4Hr=x1)M?%_?jkU5vc9gefoMH#Mcq<%$PRik8{$bx%uZ1^+M-Ho zkW*+p84q&-4U}4(y!sUFv$@jIABwOc<^1lkhn!PsAo1OFxgrn-r!I3;5<^m?h<$Zzbv08Xyd98L=2p?e59s7gbREeOXysu?$D2v=^*WrA})#i9A@DR2UJnhCd}JAiiyEtoDbv&jy|cL z&S|m_M&TnoZ{{hjU!m}S7A2hx$@M@)9K08a*oU zZXl^0ztFTPqG8|qL5^+_Zp1q>skA?+jS!-M zkRJx`6@=CMb9kkFT0F-22o}mIVSgx%dZ2sc`Fr|yOp1R{6xr*YX;vAR0s1MW{OpAJ z?q4(zg0dNv7ziMs5_lk>e~i`tmr48IPXsX=v;XHn$W_18K{Z4Df#d0dnF0c-iwY{D zqUYHo&wRD6h(u0;igLqQM^aDM%fUmuwsYyzauexNZcSCU>f}9AS;z3q>wT&GI3Y;N zW%<0h0V~!dKJCfb<+|-a===UYoC8WTTnf$GdCYQ*_nD$7U zfad2PGmW70%DdGcAB*np9X>K6uV>s-W6(Fz@y_VJ8Nuo9Js+9y={^>Lvd1_;?Q;X% zGJ2+i?;dV{>iZBD5|%w*MDo|lq${raNaD;3E77guS+T@Q)_BK)WdbAnWJz&Ae#r49 zg1=-ZT2zSKG9N+!^Z8~Kj>$s*J!xOSM}w(}e~@gmn-nfun6KmjV<NxEpl3quQsJ)UH`RV2>;23Cq z_YXmA7(`mw%Zs><<>sW130!)B{gh$)j=A_jV+h8Oeh&F1N^69)rmMt&%UyUgMnY9g zX!I>D73r~@>A|IYl#0ZLs7^qwdB|fENSu}l)vFST@eVb;Z70$~QR1PxE~?EiIk1EeKBYa>N`Up7AGc4vjZz43#%V0+sc5qQPEG5JP4cMlK*}jT{)zJNO6S zwl4%;E89E3WtAU!C^F#bliktwUbx5O!(e20(;GTPjvtxXnOKVn-L#3~^&AAg0(mIj zva@N9Up*Vg2EPx?Ku_5oAp`L1Hv`uY%u;C=ZFC+-+Sa}mJ18v6ZIwXZu8Xj3|EkNA zWR+DDM4=OkEa{wIV%jm4$EM;zz%7Ehds~iwvR)Vt(MGx2@I|J!f936wj%~}7JuB2W zhsL%lO&ms#3zfXHtKGzQ|MWP!3_iJeGh%OyIKo~xTv&P6=CsMJR0ffQFLN-#G_@Hf zoCEm@+G@>~hV9|tPry3G1+*sX}&*+{MrPJZq(+s!VOVw$(k z&fofq&8sA$YNX~fYBA#RVUkfY6bR1Io;0FxnB7UQP3;t{ON|U`SphY!!LE7Wk>=nF zpJ%Gl)x!@1N|G1@KcqLx1N6UV#~azrwOA6(8v((KXh%$rW`eA4U=4rp45V}6Xr@_-%d z@$#R#u$Ub@6`^C=W>4yhO$c8>L5?JU=GrOU%jzI1)EL2981>RUnL-ClvJR4k-{+)NZP%bxsrU|+fsNA#j&NrU#PNJ+*Xj$ zmr5#G1>sq*wVMn*fBG&z9XB4_$36E+yG_-3UAI@$U>k(s9HXW3h@(t7aI2LoE;YO% zSZw}%rs?USPHD$hd6EniRhltI8ia1uqXiA)7e##VLk0|@F-8gEX%HBd%u&_S^bXiu zbD^ISK@AkQ-Vh_ygz>X>`(s;?MIV#vgDoh3a8~WjOW( z-(KU9-yRXTMYpwgucTZ@g|3v_iX#KnP;PO;rLAgX`&2s1v>P(;4C&twST@H^2D1>3 zEnS1xR*JRV3^fi@aIWVEbp#Sp5ZdXYexaLsyKat>y_wyfskeLrg}qCqt*(=-Pf^7*HZ#!K6w^hi)eys-<`y%aiNHG>|T6 zyS!0l{EeQPS+&J6JCoVDimwSf#T;`Q$mtmSTlFO1$aGY1q1e0|k~V^+-Z8Ot80Il>EUa z=MGvZARxzo81O%0{=fdk0I|+p4*+ro37j0?8_g|2P&Yp!+idygNm>}?~1|2`l9zjh*LpppO*@CDBou4q_taU~XVs--u@cZ#m7qqz6;Pd5DhsqFTe? zNCx+NMbkdYLu7CUYJ2B+F*i5ya52=12LN?Z=k=n@@horTOswLx#842rRScAf3O2y< z!kT_{EwzJ$w}i2hj5F085-P!Vn?Gl(iq{rEeasyW7XJ0>Ec%+Di-sQ?2kRno)Kpfb z;g^L6<3CT42v-{f1ejQOJ9v1p2=L<-;qt}7-*GAoY7bYjVxOYViEd8Rxl(8`H9@1j zppomMrlYdv#NII_nKU*kd&~%@u|+|ysROdaJXlyvFy~iCahZ|OB7`^B=QbNx>WVm4 z+e2z%&Q!r+D3z+JHZ+#Tdl=zh>7f;F(Mq-yA zSTbczU*g7h&ZiNxMVR#)KrW+a$YQ%Qf4Nz`WrdZaE~CYqZ`Bw{NZ25sa;r*abNuEq zMqP}Q{Q%xP0l?t2ph%5bJJtum!E8Z>2-D}X#SV76<9!NVz(uRXaW(oBowq~Q@1H#^ zXf*g4Z7{Ym@Yzm(9{8;_7}|Xa&Sy+5r6yXTm8HAt4lKbZQr816XktCP~P{>!vb@YH=R`-Ep^&u09yMCZ3#ChGvY}EWs$U&8m#K zaMYS;IkRXn1zf4)5YFo*L_I-2y>SG4;oOUy1&4l&umXeeu3w@beo^`7Zyn8Li7R(7 zczvjUq)I|I+vA93@gTwPXs|pW!d<_#wfhF_UBBd)NjwyXZe72CUoSj>j@~4`q{i~e z82yp%HIV#K?rS3Y4w=`-Sg=f(6QQLY&ze2{2FqwRvw^DPS!nt!LN#|Tc1Zd(SjF4* zXx*sa9y3FV{hrrhl?|#j)x^;Dkq(UkuU0U(oa0*LD?=?TUFqiry#c5S5u(P^^UXbi z&u7cY;*9tZTTWvv{P4Y00Y$K&=TwQ|6Ld-*J&LD|)%kX)ZLgVqGUwQXyk>AwRBME% z)ym!+sTR$f{7JDWRff~7*&h97iIjCz+QZA|9qNQ@Awg_k=U1O^)DkaLhV0Q&|Gls! z^bWM50Z>|5ZD$d8Tg<7lv0MIimbBf#(LIN6FnTVWc#sk~Et|-=(tL4}W)|$b#64Cc zr|`=;bl77QGuybMN#jz!EJ|J3dSc6^6xow%>15w1SZzC>;V4PGQ4+y%2NJ+CA&qQZ zsmp9e%JM>S41p6a*PZtCAfgveKHQM35uxYg+OM~KsP;iqxvN+Ds&rew2w8!kelD_X zpjL{YLQuIVQF&Xp_^L=yz4$7e`a!3GK{e&W;Sl4R?th>B@TKK!N@th06zTXuYhbJ%WmZ_#aq|-O{ z1H7hv%MrZS0gFaPbEeVDyhdnrSXaUstF2+*7M@pG{BR8<*)e-U`ynA)Q7^+yovkgs zaRaz9W}`s8PV=l)Hz?lc3lz`x&z_~OO3;QIzBSLroQd9;mNzy`AK%QJC7aVZGPUXA zk>J~X0};+OXKfX&el?w=kWE_S-x#=G`)vc+mU8WN&`X-m{yfEwxV>(p0ir2Qj~?MK zq_-XPy|>V9Eq~IG&Q7|-dg5zqtz>4PJ-(^U%0s5%T}))Ka5mmp?Me(8*_)ShOx+v6 zG!DtDU>8rA^UO!m*G_rl5r|EAwoMr}7)b5;;!@GqX)5YZ#^+X;nI4cmvzu)ExNXM~ zfw6acev6p)t{l6+uPn8*T)8I-mv>G0qGfMpZ<%!$#LPR^SawByurKJ)ZC|_Ra-Aqk z&*{}W);x+>=^(5N!9mSAXbAEIrUpVtEA%@fXGw3g%+mVFN2X~}a7qY&TG(oAiZ$Q+ zZ9KFadeP$2MsL2?q`PM%xPhnO0VdmfRN%U@+D8(}Qycw^pxvwW$gYmw@Bp{SGy7=} z9D3F++sfypt;0PDH?C+bx<>5-*BLPljba0udvDGo(jT+q2A~tO2Z+!!`wcx?xg~U! zTb8Fs(WEzK-I{W)Z0>Df@=H8C+O$NKPC8ib_|;}td8u`RSUS0f16@IQF|IH87e@4_ zWF-&E;4rkR#^&$1nPWfMzIMGoYEoX$Il1?GE$G4Kq)mf5YUgIvmC0SU;IAoaUT=Q} z&7*7GW&9qwhRgHkhI|%(Gs)5C!8~|sK_j$8D*GelvSHE`o>gpGDF*FZY>MGHH`6a1 z#I4e8uuFJ%Sm4FI02bKQ35xLXQ3WuXhxn<~zl5Vnf_^~$zjd~MYUTfnVz?VQ{EN(1 z{X3sf85jtt2jpMr$iHDVjQ<&e{tr4Lx414pD2N)c&w^SJKpBN|^GUCk*RPFjD-2|W z+G7<(L>gh(OrLJ2a2)E`^-vgdx?INP{wP=eBTMo9?&}L0Kx;v5Q<;F4P_asDiMwXz zyNgOl3oKQ<+2NKO=Y7>|j}4%Q1dh_0UQ&dL$P%-hP*Ii?ETN`p6;lMO0GG)^>k)({ znL)ACd0}_t*n?L>$RN3ahDz;;A|gD|un8uA_$&Rs>j`z{iVy0QOYtL^bT_TcE!VxL zqJ0(m&xB_t0)hS!N?)VuDnh*MVtRmw;=TM69pQG5mDTAh#&wR{sjgKEH#~TW_H1o& zORl^M&5BMe3r7?OfXK%Tin%}#6RprXm{Qy9MrbVK@C?kEfqP;r{Kj0q5HbUD!SdIJ ze}*R*-z0C?EMt5zc?QLT%JkA1)``{=?jx^PpeIt#aCeNpk-k_xQ++W<2FE$W*MEzn z|G^9W$_Vny(Sd;e(g6Vx{I5;>_l@`;6XRUa9w{p=r?VgC4=Cipz=P9ggp?Ds&|vGt z(55J3VPF%2f*VOvCloQVzsi~fi_qIFIBZuos5L_gubZvdw9Sjafop?YEA^WH8NjXe z-TwU8xxDoDm67q9{l5J%M-EfxKgsLL@xEQ3>+sj-`g}$KQXKQM3l3i^V)jU&D?359 zqA&dwnYw~lQ#va1kKtZ`4Vb37DX`|II(h#w*J%QIiI4!(v{ZkGC)wLPOFfc(|^lk}$Tu z=mZq`GG$GiyFGez8+lW7Syyi6SLCxKt!T84g(HpJi?j{Sj7|9oww0UYRWR~r!Z1H= zV=n80gq)`FH!@Cwrl>LCdPl4&czIKQg7U|1yOE1lfCe62EC++Xjivp!CFX;|uJ0wDw90XG_BRwXxjd!+O~}tM#O|#?TB! z{RI|uGZk;stre03OoR^>H}_B2YuKg9{+pq%0y$bNg8rnnre z2-__q$lweb+#Q0u6WrY;xLa@!Fu1$BySs%UxCeIzcLw*c+1kB7_I`J(y6Wxf?)P6; zpVQ|#=Xta>`<)%fOLK_U#E1+8`!Bx2FgsW3X5^I%4Q58KLEDQi*JaK}Y$!Q%k0# z2qC$aBI7(x0zL@XE!fFWS^RilCcA=7RJu0sO_mRjSfo^bUMjwyApX=3Vm9m~88OFt z4w3ilWO98lit?CM2wzGKhsIFIBz_miQ{R!L&sKp_^JZRb5KUTnNXzr1uxwDcd3)8(?M{-~HV8_1v) z7iL@DI_V#Yi@KYKJ*Onge$yjQC5p6V_xxZp6nRr=#~@K>@499v*!QT**LMcGqXu+%*C+j7*Q*!mISY_rf@?HQt_saU(Tng*+P zLi!o|p@!g*8lTQ!68TPze?Y35>``%bY|n3!vURM(9eN6M*)tX8Wz9{R3#!dsz+&=s zf?aZVVJY>a|D>iYl2pI4c2U^Mq%2QiF;7risTou-4zoDQ*Tn$=LI0cf{;|pBBh6Rp z?BM&95Q-&>IXq&%2nV3e;Sx+RRUyw-ft8|Hu5!U2!T|!V5cn%b7lrtwkwJVy*&*eQ zQ78JETb#j87eXbE?+E6YWODf*DrtRa6Q^Y8j>YXRqcKzE)e?rx=xk{*UyiFYGclr5 zV?VOd=kY*ik6qo#HPQls4MHF((W~R;%@#QA&c-)37j;Q9DM>G-;H@O9M?3 z8RYp()eTaEHhy+2J<3LZ5v5Y=48ifQaxM@%Si)Y8CuEsZ*ilTJpBK1|e_# zWMy=&O@l~mKGFWgH+RR_OomXIJo2#GS?LDd$eBHIPWDM2j&Q!*dgp6elx+)U2u>S{ zw4R=vDC722i2KeIDgV4x7A0e6!1z>lC4Y}{PySsh%yujwAT;VRLSFLGg23t4wGfFs3hD;lDcKvN5k4In%hu4~A7cXv4$wa+Rj*wCHU$sB?b;idP^Uwy*Rk%6j9@ z-KMtdE=dU3Bx*JkI>WfEHOW+aG(6uP$#f;$9?X3GWnv_}ny{cGdqVTXB5qGWe9%A2 z4&oi1tMh~dw+jXdCRgpuUZ03%_(d^3qTJhO_=WkUtsnT5yC9kq%kp{ZcS!ZY%x;-A znSCi+zR|GBB`q_JGHd-=eVJv($7Y-zn3m9~AUZ9=l~Q^08xs%Bx;}g)s+K@6@bPRJJ%hb*i#_dd zG8Ga^(US3YRkB>0+M=TON>J2QRT;?G1WaGy@Mbdn^>D5pyV@8%Q-!)G%;($-ezup7 zRf#KTD{JC+ac1|Xp5NHdkI@)1-atLyq=i#frkA_e*x8YSZ5p=(t$v~0J;GF6o)6dB zbk7y`Wzv6X|C`WZDkdd`I{b$n5rN5NPA=B4`jNC1lq5qHyRxb?=k8#m`I+8A?fs>) z-_4aSN!bz_l#W4CoY>8nbFLIM+Mx}b(*`QT;8y_RGn8-{0(j&EiEhVB!Ncm5-`)#e zV{PhIX7TspFl>_#%MIp|j-~mEkX2eFp9!TYrAi}5OcGMc1A?+S0_dJ{^EB1?yoodb z5NYu`ciBonTae@pE|?j!F!K zVz`?byTqnaAZdo^CywoL5m*4r<+yNE09~%wISa_izssa0rtj^nJ9(%1EKL#cvHGj? z{0ko;4mcQ!PCfa}iFG1ufF<;e;=}i!Yx(%Zp+(P+QS~2s)tmisV_hV6u^$KIM_;sC zogd48#vz0|Ck)WQ5aOcWkcMe*IfoBohhds*v46VM`PeYF3vJg9P@Kp^H?6+n@imM# zLPuvHKsCaGQhiiH3NOeQa7297g7MXuxyk%l=khw9;8CsG@WvI}8VL0Hkh6*K-O!X6 z*-(u*+R%kq-Y^xuX~`h~mC>u-`yAs^+VIp_k9e#ZHfzbB3vGYXl+-crr;b;-C&m#; z@Z~R$L8h>1@Rk4WkG6@Go&ty|Ek^-NIkV*g}Xy4;aYw15lnQpe5_Ab^D zKVXQ$YJbP)lFHOa`-QlLS6+x|fMU6AvRM%9cY?J=ecDtM+SD<+Y01s~(eRxQA z93SBA077lrwB`omkWLOhkgQcIinbuMapA@y8gH;5W^#v`H+2%u%rKp_J0SYaTa77f z9yD>!4e}n*Y@RI+d>`%CJkdkzw<9rG#QcG(>+Ep+F@4{KQH>^bc2zRqBmUWa(Kb%n zON_hE$J9B4v{Y4%W?dyT$x!#@N zEy;RIfKJLM(XFlbH~4F26v*lT5S5$w8|*@L zRY$ckT8Ho&=S`W;L>@QWAlY@jwY_B-N+o#q7S?-(0TipGV|*Ge4WY`K6To)+TkNPq z-pVuGG$?=_^7qEiksi??z<(=?aWLzzoLwg(x3O8E#X?9;g2ltD&J7p_rRcVLX2`{SwT^~ds0VTKCq zfb;y)GIzxU#Fnj^PqB!P>}X#v1f=MCBKxsia0I$>#YQ&YkItCT;q?1g z=Gy674g>B4PX}|yS!iqajqxc~>^RM2p0g!>!!Iyos@KtaUB4H!RnR!1Ti;z*#7s6f z91-(NfE9(320(4KYU?58r$CK%=q=J;lE3s{zi47&{~m!e2s0+LsRYNBwKxqp!zg}J z`VdybBLL9yZt0#0rFU6fB7qy7%?+k9!Jo@Yl6pq9d(|BR92t}7Q67(CV7;MCAx0hm zQfmx{vFGAB)m{nY5$8P;JlPVKx_brepgSm92V~OFN&(*wc+bB?zrI&_S6Ey8W$u@3 zW2xga*8Sa$6tJY)4CUjy*&YepI$a*&kBSvta*sK58wu?Cu#p|5K-1$dUJ$I6*{xB! zt4dtURm-83Q6(?6tvc4MrPen_NcZa?C6#_WIC`?VkvK#JzgL@RH$kheh1H+QVOsfWzS3?2S>u%^-fa|< zr6ZhPh3nW}a6$q$kEi7y$CJjh;k7$(EGk?D^n$8_&0hK4`tJ~YJV12K*!g*KPTQ20 z?-?#D51Ls>=+@2ZdQ&0_SE7g)Wi1l126IX~9O`=BJREl#Sw1it`k%5FQx@r~PHAC2 zH>;ZOFMMI^>s~EXEFT!`Y(V~FkcxK^X@cKk(wHvdyhmMe0(CCU(ueOaa@?qqgwm;f z%X22H!c9!{mBjs#HJoL&y+e4|Ka3q-Voez*^U*e*eOtp;r_JBawbEZB?v8JftkuQB z*54Q*5^vO2?*ky2Kw>eFkw&m7jt*hYoTiI1mmq*zkSo0J)8ybB${u#V8eq zJNcJ0VD5tghHG5FQ|RdYf?8X zVYc)^aUamjTb@eP?nP3#Kf`l=YW->Vu6`-%f;BPh^oJ8G_u^?sgAIYhHUXvB^U-ZG z-VT|*MH6TPTO1?ccLjA@7t~S>7Li{)@W(PeDI&(Ry66wjsGnu!=*qAo5Ts9qAIKCL zqe+6_)@0BzopyN$$_$fE+voSa0SBsQTj+pnCyDs&Ngzj%FwBr!$2w)SL5mAl53R~m z#SF@g`QC64lt%}<6uayg-3L+d_>+T0GV_y|!*yJ71#+$ryW}2q=dWDfthWA4{nN#^)@-$d`v^5dT7Q>rbfbW=88V2 zD&>^jtdFokdc>i5x+IA=M2deXwZCI1~0uJYWeu&>!Y-M&SF%yFfJYPX)0RgTHDlk?#Zw-N;p3IXs{4J`US2 zXa_U38CvG`^nGYcDsS$n$WUP)SLg-i$H8Rw`^(pSe<32#Dr&N65D72^3V->49S9frJEu0Aww0xKd((%gc~~ zyU&)(_v33aAE6zl{9|ALgpJ5c1hDQBpUiQw=CDDr$f0}}?DOXaL+dK@uDSNq^_o%Z zHq@l^_2xy16F#1&FpM?aBgg(6@TPZc{|0Td51)cUP^86!sJEW}S*~LA+66D7g=rER z?90mfo?fzRD)HxW_v*!q!J1fvM}6FTVG^FD)$He%rJ~!TRhSTb@6)X5{5Im?m-x_^ zn^&K}j6Xq`E@B^1vp28>rW{Oz}Bhu=&?52KRTHvpd8qK6+3ZHwS)HJ$jGs$=OER*VF`Q zWsoYh4wL%E$uVxq#$Z+HJDx_wxt%Lm)HKaiPEC5)NZiGHDnhC69edS|T;)Pg#?uGo~&N#M)?;Wg^KF}8!7;htbj19WvYsfy%b=&q~ zeBhPz%S$7HUVk(6FWw%uoBk{h#l-QAj|-^Wwp6ShnAX{1_I!|Q{i_xI!pYocTndl< zs@Z>u^=c^Qwkj>L`$o{bnf|rE#Xqc7&UWg{toF^mu6I}eFazZ>2HrQZ;E)*VOnx>= zHd9wTIs=05u8yTj;ImJiZgB-|#j2~h2(ELo$t`SAiSxTaz651Q*5PK)0GBiwiQD_| zT#i<`crlEyd-uu%qMaN4Zy`=6Eyu zgc431i3!80*c-HOYC|To;7ts?=_>~dmrl;4%y|;2^JqoQIqF%bT7r!uH8_Au43D3A z(G`)AkDPau$s?S^(S}D@p;4O zcjT?tA3AC<*w)1cma>;osIokL(GyJOPgM%F;;Kq`K9my-mU5#iQkSTa$PEf{_rsWU zisldZn17F>d9jGuP0kbum-Y+3+zFO5Qv{&{^JDC{`@h@KdwAAlA>6-4L-NlMvUWq@- zjHM5@4XNsVD_^NDxa5VEwS9b~onHFp79GWdoJf_rKa&dL5e=_Lk!B{%+<>7S57}T9|@QSy`|rF8*FlU2GrC>gjyO$6<)MZr z^=X^g2N%nRCJjs}28}Q1xzvU!3htx4+1yi$D~y`J1MNrCblZ%U88%zP{%SAGiA{np+d+1=&^4YS<1JV4bD>b_!KD8!0X76Z3k9A~dhLLK-w`Cfu zDH@^L#UYhPA4y<-26}awrjf{o{A!kzlW6X-MR!&8b_i9F;}BD!W?Cc{^d*>PyWA)_ zgphE^B;b4cSku`==Gj=+RjwM>g3ncNQpXQt9j(ncGypq=7}UZcd5kcXrI?f%fv}7Y z|9e#2cV|?&Q`~*0S$`L-sp<_;7#(&;YMYFRozV1(^e=8$<367#+8+}}75&gjFgnwa zHWZ4h3jAR+ykPYGgdSrTksAg@@pCXBf;JDIsmy69vjh}0D;S!k^pd&q-!2I+yM zi9>f7ufri+z9pxi&yh8-UgKBK?Yh`B%BM}*ZC3Bc;2o8ZB$!ZV@7k$CPEX{T+bxHw z?4rex!Wm?%U5rCP;KXEL=#zXvJquM;$E0MvyJ`ggqeq65B}z^M|2QEUe{FpYqIamB zs_FUN(ne=NgJ#El;?QSPX79a$bO;*i%8)>mSE9@3n4WF4)$*29`DB#8MC4{ZgIZ(J z`3qrbE$|~pLqBVfjRfC6VENW5AOE-#a@0)ctyyZ}CX&i=difD4f-@cd;#M*7No&c_ z3HPAu!L;@ZW6LI?m`Q!LrDPhTBRihP=_Fzi;g`WqVqA^otRJ2(ZB&u6&9lE%4656p z*R2AuNWDQXA>c-E@eV$=*;k)j#qWFeCGA02Q<=fldZxUyLLE-R5lRsa9f=N}ox2S) ztz(!1-hjY-%US1%R^hX=22S_e5#r(2*eLT}D1vk8#137=O2grG9+F45v&sop;RR!O zr+T<9qc~?q;Q^M!f^iVL88|BTmR{|CEv@p3S=xBGAIA3VwPT!DW9 zySsm+{Qqq$^1t0b|96Ypznu#5|2Jr-;qhH>5bxdKmeMZ~dzhET`Hb?nG0d7sHVB=z zxH;0C#({C|4zo10^|;BkHAUL{;COV|bw*T z1F-<}BV3ZNi}8rIr$8OR_MkO{OR{y*_9Unw_yurD{Wb(gJgjmfxQZksE{tuC9qfN z@gpP*L<01ee?)+kf%1U{R{U*Qo2(gxZB`YSzthQxt{fq&&6ksx)TKHy)) zM|emcC;)gt{hEa(O{ZEVJt)mvyi<%(oLC&L9;u$Gj#PnMu~4ilQ$w~OX~RUPP?wM zh;P!Od4hA5++zvGyiT=uEYz;+J>Ey3r@?fwNr z)mUJ}gv(^?Vi@uUSGgGH%rjgipqP$V;Nm}u8VE6`ISe7LJCGj)W&g(0=g1}(Qm>VX z{Tyn`Gf+@*&9bxdJPPdNInl6}X#JY;#iFg7dm1TvJlD&#Y3Sxor(&{bUNQO^vvjJK zjuk(peyV>Lr7I4B-RLS(viiBZSRwaTrhRDFkL{+mqtMu9k$FGUyXS1FIEWwf8mAh< z9b}~uU0zM#Z5%wubD>&el?1KdVrE5=u_b1NU5u!C1rWe8r?;#rN`w|4ZEMQcf0x~0 z_n#4*0}uorJIpg7BvFrGx5Jy53P8UZ8Bbaj@!1D8;Qiy-wqB*(BS^sMT& zpnDD~YWZ0-Pimq`tki>ZuQ;w>!z1(U8S?Y;H*=#enm4yUNnlEMLV72YYOoKhfdmt1 zYp?#wcVf0ML)xi{izCc(I%$lCPRUJsJrb!S`e#GRd4gNpU&&Pn%bqK;E2@XhsDrt65Fu`{_9F2`<;n$E?P+n zRu^Z*$X=*+p;s@jxmp`uDB^y-iG~@&s+dE?!6;|sw7M?=CW9XMDSW9qx@n>Q7o+Y) z=uNQuX4?|&$pBtT*;vJ>$i1ys!D2bIR@HQnoP^Mrl}ocppDh;l-pL8gB(CwH9rs#C zDTd&p6K7OdMSI0_o$0w%kA`vW_Uhm(qVJz7-@cu3`QJM6DnjwB{^se=kVTwWH$XYCR7?dy;s*FKu^5uN0aXm^j31V*52KngSoO_yVhWH0%H>P zY%&a42VYD%Q=WP5{y^?4e29_xfy`;DI?h^=#5&EdQ)bIsdZ$^8b~hMTWNv7~ObYZ?;{qm*lsOgK+tR=g{!XbPg;Xk-t=-A^LGI`;h$G_eq_76&*Vcy-Xx}d z{-nE#eyqD+-$;ixp8KN@PZ)QJd-ARX1b?+_9e$Z!3ci?hT6O(>6mNd})BHBy+;y4l z8GZbS%-HqcfCi+ZBJfc<3*XmhA@wgg=#mD;&7{$WRG8a68}<&3$m({(k*zij+(bwm~Uf+MrlVL z;~vJB|HD%n)e`Sy1KHC-KN5=IFu9qM535?-A|) zkJcFffz}@X0o55~yAZ*DxgpDcj$VTQ@p-NPvg-P!!h2#Z0f#M%=QfU9F^0pbMQ+Iv zii^0Nmp_?CC!k1vik1=6^kCR1>{+|nl%>hux!vqa;t`~bRny0iK3hJXJpPBzK1$gW z-5V+4yW(3OeGdnBPt)CPotJ;RE?|EOttW+MZR;a$#)rc3EFm)oa@(Ba)bz;Mw%MFd z>iWnbZf1sZWUH+gwrh}0I#RU9Y`X{X11=~%`TO|+Q<(aso;3YkfD7{WtnCe$2lRD0 zC~?pOMt9uy8w?5QBWZsaKu8`642r|>jouatio^5`+D?MWBY))Rw*&~uL3x9wF?|EK zqhO54AKCh~0KKwM&Y(I>-{9>mm@V>0u6_?duN+h`=o0hw=XMy3F!>{EzY@S-7Rnx! zhxr<`od(lK{>a(y2=JGK@&|2Uz6Nf`!32;$viBPS{>nnRgZeOEgSYcw9xz{{&;bec zf%OS2qRZmxl=46fV|L@r`Vf|H%d*RoJW(uiJX!GwYY2zvQ&ibfJb6wZjo~3;UGqoDcanzJ%ySA?cQ-WezuFGIm1hoP z3pF+uzr)oB95(0)h0I=J_xZSwlK0Vs%q_y@i#A}F&T<2_elY;~{vHzJdD3+=26xp9 ze`a1ZV?!h&3X4=;NAXwCn|zeKt@Y%CZhH|rhSJ;Q)0DJ3rUh_EoG`$gDzRX zh#@4%plUQ6IBWAe0UKYkSWu$W(l}XRcjl`SU%c*jUwalDkCbXce4kFE^Q=Oa-5zgtwp1e48zmb>&K}LAUU1QOAPf=P^FK1e@walB=L! z3`$wBypgr>s0vHOIe5D6krFA@R2+Vm)s#7t1=!_EF{unp6+tvn<#MBiTCIdvMH;bR zvhRj&ic#HYz4g4nDA|>^!-uvx4gj=t zz{8a0S*NoDeYn(AXF1)Ep(^zpaJ#FFmBu8nip7vyW)7z%yvsOPTo_TODpa4Gzed?k z3cg%7a5PA4bTMh7b|s~dGVFZKUx3QTS&yTJdP#K0#B9vdU*$Pc#mLr9a!$qpq(--@ zMjiJl#+95$Z{eqH0vaZ5Yh+?<=8wrC`jy&|Wt$U?D$OdN69XQ$R8vJWL6M~UsI0P( zQSq7tz65Ir38qbsZV_v>G`Yf$X#5;soc$VA&*u2)I!D-a_vA#CH&Vt&y~-vt8?p-3 zG?-b8|6qat=Wzp64!HRPmMDXYfCQ0gNwdK!DDJNTJtrF_2^Lo*nKQb z7}oh}77SmW5v24pg-!P!LOd!wmc_HuEbi(Yc1wxcvx zgf-m6$$9OJ`WdRK{M?x^ z_dfiBZ+-td=glyu&^dCMe^M590c%BY>d7WIRvdoXKF<%BgxYv2%x};jSwBQ}6+rf2 ztpw)hJmD#)#+~Sr4#`TWa>5RB*9tr8LYCeh)|)5nBMvPJJ8EXvTdltKpYEDcrH-)P zRcD{~!CU0m{VqsCc;Xyort3?7mG;-+Y_u_tS*ez0(8a=&s47%ol}pf=(5(MA4oQkt zi&cp=uL%q*pts!5s6TQJmJpC?Pd`ND_sVrbn8y9O4+}P5C)1xo3Ssa}aH3+ysohb8 z*cg)Q56FesdS%o{r6F~Bh17>>Aue6fL%a={&h|OMLWT?z&S_4cJ&?G6#5rNsVLBY# zftl7B)+^z+hWxyH#r zY{~6l$!&(1Ut!U|{+(1s|I#7|L?Z}{`|_{I@`;4=6B=G%Sj?~C=wHJc-#6TA3Xx(u zX`(xq@ZFT~-Rjs+a@kIVewV)}7hMcQcb3I;qH&+-N^Sr((vT!K3lo;Ou4D1NhW{C= zjr$zh^%AtsRP+nmlZhZ7@_-ln&JZE@kThqV_B;mg_zEWRb|nm7 zI$^>+)cQ(WA!^uKSHN&?2O$$jX};MrQ6`EetJyPBCaTOv7dj_zD6p|N$o_9}q3v~i zWlX}E=CXGFT^u4Ar*ONfaC-oC`FC$=Z}5hLd8T;qMnSjxSMeayzh$I&FlxUUt5*f; z`2S}q!2e_&?*C0s@C3%U)Bh{(l{5cOX(A7IW-ZPCqa&o~c=_rLUM)?nE4bg#HPkjBzv;Lk1_&&h#tA8gnd$4qKuf&H961-oB9BF-k!Q4x;_Bg52eHy1YH0pP=Yi8u z`OlnU3}OUg{9r;5Dh!DjO;E^piV2DIFcuQyk6aYKycb!4I_ytp*k zEd??uGI{n-7LXG;SO!2tksahj4`u;d1FS(nkP3(u2Huzg%mbzdA%iVIOaL7a0*FwI z*cb!i3i>1lEC8{Du*9$g*JB$Kfbjs9~ z3BnG@lkmiV(1E7O1Y)4b;6q^VPpAaQ64(oZnuF>{eX$|703)eKIIs&~OZ*WBd;{2$ zd_)C%0DHrrejpOkS9FLJKv?n-0sKz(iUolM;R5|bp)MdJ(ryrx4a@+jBkvA{@_`8e zj^y1TP%bb(pile}`;*tPBf5VSlpnN3@%j;B01_sDMSx5L0z@Afz+32lW1(oE0P=nKRzC{eBobv>3KBhcN*++%q#A2SQTu-H~z(Gn7-VNS{xqHNWvI8uyifin=AB{rgJcidiJ!`4n0LTDe7<3jH{Ho+6%x?% z_xW*UW~q&kXY_dn)?jp*S z#QfM!)Rglgy}#U9m(P_;DaREOe>>0L4EH9yqn^i`&r)#|&5;lc(v2|&O5RxS*BHl8Pud;`vtNW8JmlSsWG%;$-}0Zyb;9HrjAoG2Ci znfpyphBk=e*IwiKFM8 z%h;TuY+TtN3LTnUVh>am;+Nu)gIm{5hODU=4=TA3d56~#ohr=<{JLyTA=gFEh3YHg zrlBg!7_>Z2A(KVV$?66puY+Q_60yeQugRcOHn=}4bi?KxL@A@@vct4-hK;TwUihD$ zSa(`uaI#$^im@UUMZMhh8aWb~qdn|b_!10OIFoYE@CgfQGpN7lis?z^jH*)SF?io` zr@+VIPev|t-O1fC?Cae2lC)LiRphlDJ02gd%`=ym8Jb+PC26I1kL__%*RgvAk7mhl znp|@Qyx9M}C%W*H60Q^IU9lj)do8Lqa18XeiVAyQ!+Lz5G zRE?;lRiRP&c|^wCb6_!FjgZLUI?3zB657JYG3?Hbu zTD9qReZ{G^Pa1=O{OL*nZ&px@R5+z*#lmC6sHOewulT{0Qe9r)-l!2H{-`G` zSBUXxQAS0gS6S@o%6T0uu-KNgEkV7)Vl$o9gQOp5$crgdT+&1R5lX2Y9+CE9qu4*D z;*GN?$9#3S|7+K3Nl$Yvt=8q9?xdLa+4|fh7?>PNgNQ>QO3Eu*Sv{I=Q zo6d@@qTBb|qiQxAP{g~IWhEHr+^mvE1~F34a>!ccp*8W_Nn3`>57#7i(f&Ue6IfC= z9og(-u{tgjQ-)>9(P1tGHwy;Ux`sLenFA5*Sq_XwJJ6gM38@g3zw-u;`u(eT((Xh} zuLg&3!x^`h>~oxd)))jZC(g0FGxXj36}|Lvz|pVj6`h5wscBYV&ra>^QQRS(dfNFT z#EP#r3`i_tc1nE5;GIfY!=2ip#G&mu%*FC0*gTwz&r^zS(wjggB(iUgTRKu zgfG{$R@@|*ylY)*$&$Hu*Yj68k)WxUJJ}?pI3|k=WB*ur%zRizAF~B3E0pyMgzFE{ z@gWybTZ*^D;5sRwvU$|X@;YT@WkO<@Mt^e6OkTw@lnG*W*H!8?|3*vbHmR>Oc>GI{ zzaLXkLu}n#vJ3O?hYDg8=*O%=7>RV1=n%Lk+J;{B_OR?ClV4+{?itvwJkp4@ndY@o zB>hCvGF?LGoc6T8>|K8X?VN+vdhOkIe?{Xb7O2O|p#?jCOJvzKj^xWOdG7N03^Fzi z5E%K+jfSdhZsHzdg_dMU-7FJE=R9J~?QAgURRw0vVBFaolFQ;rn7^6iY_Ffd-daDx zsx+665^k$WMBxvb8sZrA1f5jT(ZwBvRLqPQH+>afD^#>r^N*H8)=dREbFeJrR)AI& zMxa!6zIRxK=j~Vv(k!l}?`^;u7EK(aR!Z>S+QE@qb&x9xmmtHOViU-e~Ol z7%Ge&Xj0%QN=JQGg=hw)9NMbJX4F_txlJ2Bpwzgn+_f0v(cm#rJ7qs?O-wAZvZ>bxjV{VMlxQAr!F1Uh7!>|CD97#o9u{#;gA-SDO!y?F zpjcy?n)dZ#8oNxgy%OKqy-?L&dU1Wl%}!0@T=zgFw3y9>W3tWmF6rql$@DdU#W+f0 z^kK^%b#$7!iZR~W0(z&cslclzm(b0McD{PLS4C01Nk7l@d4_QGaA?DyLTm9B(fXj8_n?fl zoLJj0_|1?vemCgL<37$m#qYcL0v<)Z$=w@Y8o2aUjgbNF-e%X`fh8J zsVR3%7KD@I_U3TD`d*GRvmH~1KMsET#&VnW-6_rK)v3nXHi(;&(oh91X`~zHGMZh( z>g=Lmjl*-cd=Can-9d+p!NyU?s)N5b;M!PiI6N$G_R~_B{BBySuO3(0JVO$ksP_|d zjHb&Y>T`XKL%;tpO6A1F!fMQ5Z{3Ae6;|;%Z2#f@TI^r=<51nw<|3QV!iz42^f=px z{bk+yK^>K-qvcgGRl0sd<-A2~F@~2tg#>Uwl|8w4$bT{AHj295akt*68kMM6LHwF| z(kEcN`332ymn9{MomC8IaFYs+Q*e@OQFu<2;CxOOV2>J)ztCR=6IqU}PBADs%Q7vl zb;cTb{gd?~ld=O<{e{b`8EN)Q@4R|lXq)BBymxOrQ+G6(>N35vZ*NiI>;AoET;ka= zc4#hqwE>ZwG_xx1@AthK`ZYnRtZqGOt8NpGj|LNtc>H1RhCdD;&vj+E*lgn~6)*3F z=Jo{%o)jT@oNzg3R{mf=CN8a?J2B%JCq$h+U~Yt96l*(D^3#nH|H5lHti!0%4U!`I z0hv*QP1(AT_!?wg9ohY?>yZgj4hP~d2j|~%?r!U?zDPrxT5DcA*;ATJ#S(DfZ!oP< zKNOc`>NB}Ex>52OE#s8k+5IVXn(n}BnTnOC=sz7RGT1PD zN-|hC!Zww8+7Axyh&`ebcVbRQR)}Vwmz|l)mPr(|*mO-8#!@VQBrz zpeSuEDM2Rnp+mJz7*Dq+k}uG%cjO^;iRoqkux`hUt7lT+5?gQ)t8d{E;ld3~ys=#? z*+I=BsC7?~hdXg9fe|1TleCx<*eF!yGbp@t55%Xeb*$X;?~fCA?2gaC*}CfxOtPC$ zqMjhXrS;>R)0gHPER#F}QO4Wt)p$}azUoREc-uy&W;cxKExw+L%$njSzW!lS@e-|U zla?#9aPnna?u@o6V>IvPfR)fo8QfPlr5C2tD{B`6`p_Xd9no|kZB4_j{4)EHH1=hN zHccz*n%$Sq(+BgfHvR7&Pg)%0VZe_wh1CNxxtOOSvaf>X@h4GXpI;vnR07zN z^GgO!U%;$5rb|sPaHeEI?ZyW55>Cfv$pOqVf7Fr*yu<$BG|rPCyjYJViqf8-NrnCc zNAhG!i!c@+aD>^|!tc{anj2~6ojQ3ugxTH;CrS>&(>V8=`_L8KsQB1{(PZJlpPVSq zyM<^T;@E;C&fI-}VO&%0uORK3;dj)bk3<;!Wb4D^-GBG^R#O76AK(Z420jK*iX9IK zi@-zwO<#WvRyPX5;pXU4x&YOwi&O!GNHIsDR=ms5 zoypah8n_A^SyDU&pOGafOWzX%;J@uBwPc90r2w8rW6qx6RVU@=a#SDQi+d9$uY+5d zs^xnb*0r97ae38e=}OiE`c!iDF*Zj7ke`g~awKki>)zV*Gqm2O^#=@3VDActcdZ{7 zcit0J9D(m)@~dg<_vUSWgZ4&lYfJ0*Zf$-8_FJxNZR_{;ZGKX^=PIw4e1(0bDrI5d zgw>(XdC+nx!Pli~|04g>j~Tu3X=?m8$^WaeuYjs@`QAnZX%T6V?(PohZt0TlZUjY; zPU-HB15yVhM7q06-~a;BeI&ob^?JRR>;L}Nx7Rw0dDof!%zkIyGw-nX%zoekGY&RU z;J)o<1a@0`w!0~!*G0?==-Z_Nz258WyD75O)h~{>0ir0i^F`Tg$Fhsvw%F~@2ci}F z-4x;6rRw(`6{+f`RtYaZOKK9G@{ywC?e7Z|-6%~p+0qGfi>~+XR*>$j+_9c34*~8$usi!&4fPAqHEx4!Y_5@-szOKxp0aL6wVP)%L z?v)L}jKIev4W+eyn|4z&IgL6&PZ!&@#a$G)nRC3fN<;Q+2^3t2w&8OwwXK8q%mEY) zEw1FF56g0c87m_x8zy)IH+`on#Zapv$zFX}r)n7ZM%l1{_++=rPYktEL`*|dKukls zSq!xnvP0E0AcW8iK-DleCv@UKCvpN$m*PDzzRWkajAyKSi8IZ;`ig%w#XvXK&sxS| z7h4w&W?H!Q6sFZx%0WQcK|tC;K+8cu+(AIifdETa5nXrOZ##IIm$p6^aGwSB?7zTj8B;77h-312X!FWAf%jO7bf_XR(MKD32C+=V_Q zfIduzKGcIgT!cOpfIe)7K70**cny6BsqhZ^5Dpd;1Oq}v=s-p4Ai@fMPWr@0mG~w} z=*rO-j1GNB1q+gd0ZGDwAV9{@hlMa8MWl`>qz=X4?Kcw4H)RG_c?MT;23I_-V9Qo8 zZY%iM?+_aXvJxT)~q6ybz3D?F6*XYsLKBSk0q?fSK*Eu~m$vrn8 zdu{@H-bkCY(4TpU@0^#+>~mBuZ5y?4b-b|;z5ep_vYFw`OLFI2wsNVW<4p_J<#iyt z?HPbG1^njtZnE_;%z4f1kFpa z+<0|rtEOj5A{K|#cX!-@DeaNwrH{|}b-vG>+D!I-GN%hmA6Dn|$^?9^x}3Elyo400 zAI@1l@X7*URUyq;pXat>_~ETqDBGJo4}z>EY1c1SA#8c zgLt@|a<0yRhj`{;X#HX6YJ>)PxCVKIMqaqa34R3*vp$PO69{G%Q?!dtfnDD*<}fri zLL<$n38cD;*$yL(-w>Qe8Jq_jjV5fO`UE#ueD{;OdpubwXJ3h84 zDlpL$_G}4Fi<(D|(U;s)z@Pd%&KD^^?Xw)dt_az`l=EJ)2VFiuUqVd*f1LofsiP*t zZ>+f$sfuDOqozV_kk`$rr>#HU2wR4yv`#8Bbs~?=O?qZar{LEOc`BAGA%p0V2H-}$ zunDZnS>@aFdkRVVZZK06}p$m6#hH zMF4J^E}KrR%3<|1tW_YW$%CIR&LGAl#%OHVfGz9cj6@WW2!-!6y zpm6S+mQ|pwxaWj>3V=HHVhot0`whPm)AYqs5r8`L0)mJ;S&3OV5dj3H@!HWTl%$5w zo7i;rx>f_Y8|@(9OqT(;TNGwO(QSs*mvSlX>G}Ylq;-_tPSfq^`YJy80jS$ALV-EY zw&@^G`c9m%6QmPt&23I!Afop-S@7TfZP!God^IB^1o4+Z=+OR1Z3anE=HP1cYilDE zl&j%1`(M={g`Z>tKWnPA4FjnN*#}8_4;E5c)7C}_(!$^KZ^f%` ztItb3$w29Pn&^O5_cW$}26m@rnX=hmBxRzEm{rQiUW^U^(x1Q(NP-U(5&zjZ^Q-XL1zj|seuMnc1dwP6s zCq<7Q7*vD9mg>Ysyj}ETZlMY z2F};cPe^5eCI%-<7`lB^Oue+Ws%9{W+}F~xP>J5W?nuSKlebL=6MEAOeRPGQQ zH`OeUWs`?ntFyOp-9Ykyu)VincXdrZfU_Z<<^@1F{qugiEa!-*xvI7OnPXHR`rt^a z$rRvG6*pnAOUn%d`(}upO7DrwevX{2Xz4g7hd_LW*Z%8WsSfFI&5^l@+EHJN@08k9 zDo)y6U&ZTW9(VDXnx&LNNfkz!6WBs5>`XpprzHqJ<4@^ zo2_!oEL{=&SlP>UQN`oE!ZpY(wrJZqiTHdm7?|}ERdYX&?d*;4ntzBmXjy|E)=LGzh0#CE za{{QSu1=Ea&TaG8k3PICV`m!?%!N= z%!Rlu@F|vI1SxzCHjwd zBIKs+BEAdF2dWLHxiFHt1J-LJ#OEu&O}J_d+7&v+RB>^*71{E9$=@v@Kz?w1xOPkV zmJdan3!eW|@p`h^CJMkgC*h`4s(Bu#qTx%t`c5U72LGMo)tOuyzua;tiV=}yk_bNv zn*e{92czF}A%3D(_a_Wu2YManq+rpGb22bl2P!GpxFZbh3IUW4uP@Q`w3Vh~3;su#OWlB_o!F9A|&rSM|@~HmV&B~WgrYd z9CRPBdo)PCpsov3mrm28ie^eCp~OD-KXRq^K{iEsgP4b9gcA8sOY*Xm5MO{Ygg_H6 zbU~V^906dR7U|jbalD@4;NTJR+FVa_SN#r^eE1bY9xw5NN(q9YQ1N3#g!~kYNAa{& z1BYj{t9k>XI`$gptKAhH~CTR>tB5TG0al zd1{sjb@QVBSf@N^b))b>CtT)h=PqoIy)aae6yLY-fzROsU`d{| z>eRdzqwd*c=i%$U??VC`jqdx;Z*LB<-#UY7BUkHZ!ZaL02KiWYBgy=vVZ{jxF`D{U zF<~_>4+zU?sA-bSECM&GZN4UXrlSv@8$IBf@p>uD6DhtBzKZqLxTxd6SI9;0Rf8o0 za{T_c^Ao@P>C%98l0a|h3irS-pmPA)@J+T|r%YOCtFL_VSaBOH zd9O1{put;xjxu{7*Qh{&kjO?bqh;_(Rv^fX!Ob>B2Yz~i)^+Zn9Y*4@BH4(s%_gPg zxK8{RIoYulxwGeDyM;vrjuv%t2`~yzcz3NAy3kR+wdx$XtZti1a^(?8Pj)8m6d3pL z#Gdkv>J>RR)rL;LS9g3`s2aW;CuG$kl>arIZ)~L=;Xx4?lJbYyG2sx+HqLUUymyPz zSX23sUz# zVlg7-taTts%?P^xj6V@NRvT`Wv=Q{XP2uMtZa)}E*q5aEZ4ehTBKS)xx2zVA7iACQ zroh2$RLyfVtwjmNJ=i!C7xdyYZ=}jR5i_J_lViZTi!~3f`GNZhfrwlc<2O1F!qpQ z;;k!(m3P(l5p!JN^}_26^kz~#3PK^+8jnHVU+MG3;%i zUQc%Bc{Gy?MU*>5(0MFXL(Eo`eY8&=XB&G${SJ1p^}LiF2vorh)P5rYbbSPadPIX# zt4Py%sDm>ku;gErBls+kkyeKWOoP6|CkCS42@mvojiX`1nC-H-Y?d1-+ZCm zg1DfH8HC9++n>lG*^22-LRrxOu;%=fgbpO66z2_6{MTSY?Gy;c2M6_@)U~G7Z8ad# z>cbQ3D^W4KJ2qS{Bpq{dL1b~VH)Ee%UNjZU=O#LB-+RgH^_Twh4D&BuU>2xT6;PMw zOwNiKm&}LG07`G=_QVB;<$f#k(u?^5{T5IMgB_vIWQY#ttSz41v_la7>W9t{zR6>2 zt6Rp}hWQBN0|@n|(dQ8Rq75z%?|u}fPXNQl7*9pqz0TKoZgGaBdm2or79L8<{A(Qw zT$HPJRICa+Dj+wyR)U%xbj5ys#n8t1BX zUomp&YNS$Tv{hJ;s2Mq7u9``he@-+VVtx9eM2{TR9)H^4+%>cJuPOv~#tQh}e6k=V zh=GNy=bJP+LSa>NNp3uZ9YKeD!z4;KW z^hPDMu}~4+^bn$d`8J6n1iN&iHu%yWcK;fCjd!)fim(1uIr{F?he?&x_$;k$K*I0UxkK0sc z{&!XU!AufFib!mB~`TEILUX5n`PMi(5}s zHN@ZKp+%l|z)NF?Z20GXJc_f+V2CJ;HO!^Ru^QGH@O?$0+|9}yTN;Yd6q&ziauY?3 z*g2lNiVe<>e7OQk(9)$X{9&3Mz4bG(%_*XY$TTJ@+#^2O*A=ta=`m7W?exhFGX@{? zT*`zs9p*0MnKgwSQ>x&@W>vdFH3Ug!B|{T~vq*wM6iF;hlPSK`k;H-2xxXX^;}xuw z9-lgqVR5})<81Keee+I~m+`X*K}%;CV$#x<2LclkrF+Ngg!E4~iDv=T5mVCyiro#= zaRU|0YQSN`*}_$;CdwrC1XhE?ua_@J}B&w99ECJ z`mJ09+4kr*n{QG`2Qb?=o)Fx&wYXlv-A*1d-W0A1Jj0UnB+^r77EIL}U>AAM;eS{V z;3NhzPc>5C9KBK_&^VoAyC!S=){~xM1eoq>6=4Phzs*^@NU_=0%}8gL5e@N2Gak=S zwjsy8CUs9a+<9zx7?qbQ&=;QjC?5l<6Hl5Ou0GtRiX$a7ySAuPvTxXa-gE1?{OEB8 zRx%R5IBFSPVDdVJ=Ua9m>*bkn(XY=mN=0_SN1WYaY>9exjFDNYU1_ z^2}3DG~_6Tcr-RcJwyu5zU&qnxkf$>E4m!8!8vjclhsy{x`C=Bq6vFXlnbRCNAv zm5$9R^#(R-{HnT%xi6|vzy!FSC#-rHvZY{HWY1`DoR>^|+q2&!7!RwiSsloXBTcJxK7` ztdpJQ-RgPkymDeI!X-0{g$A<;GtDN>=Pmti!Zhlcpl=4nbC8?}=;TG7wbut89AA6X zn|0gY+*j47UfZtxCv*dw20^!pB9-jQ2R7`0-? zAIZ1X@3v=pfI+d--Ov4YTI!ZFqq5DBMHlf%mpfs_ko?0?=!PA6bWWGuV{b~Y;D{=0 z;)qk^7tisMtFPtqwk5#8FYaaM@%LEHu*IwKoi-XhT=|kiNNsGP3rq;=v)CEa7bpxW% z6szICGD_^F=mr6R-xBkwtME_x%EtN=3uXcx^-|ZXYMB*yhwJ2?L+w6*nagW-dyX&p zsL(DzpC>kK90&^CimztnZqD6<>cf}&GvN-$g zJ>Y(4>e9A77c~hCWUaVFkQ?B9@N}Ts+`XWbKypQ4T-|K;L4DKSYm0Bo1%)>F3bb;$ z-)Ya&L}_+LcS`YP1oHbz_#QJ+InU~|N7sDJ9kN~uIpVD_rn+)vbIU2QgELkg{4(EN z<`r9gv*LY5(1shHjO0cW^n!LdK}NOTLoOa6i9&xMI)q!2GFwYQtWh=hg+d#}f(}FM zD8&mfjTh^M2_9!C5tl5(Ui_<__fTg&#U3hVAj{-{cTT(+iI1MeupKm{1#poEbD1)J ziFQ6HPwS70l&F-AtvC6!IYz&lFHYI#slotYmB*4wr;mG)uQwF;IGHTWBtuuIB%gmP z&Q6O&Ihn#zivoY0^rHl0^!B>SM`gy?!K%5EnB5Y%J}mEr6!i%!bUMG)*aZW5W{R># zGjHhWN|CQw8LzDfjvJGYN2s(!AM5j(?igqsxxneS7HV2^o^@lF(ey-89X4^?av!i~ zbfT=1$GI& zA!Oajyn=YB-cW)VAaWF22vJ=y2G95JS5Z;J>)pflOAoRTE0DR_mxF~!Oui*4V@gXH zwDa>6Vo!i3+{+ST%J(OD<2kjP@n`6j$`3>zX5b${N3)UWPQ%j?K#QN;2#3Cvc9k}G zY0M#_Bx@%}YiGY(+siBx&3aR-sp#)g=G*-)*m)Z?awfBj9L~Pr@Qn<@pWE z1IMio;PQs6o(l_fDZ^^!j^;ojTHM(~F+<3PIh53nO@zj7o5;mY-cRpq`e(OrIgPce zIt8Od%FMGVNG+?46UlV1$%?F=J@N%;`Jz)_3kbltbrrSpI8*yDr001`wksNV^%dn8 z8KGmXFNscAL|P<3`N9Tg4kEjenH>0_-Bw9e8xZ#k6GBZxV-%hx81T&M_-=3MKYkrI zwuo7uon5LlHNv4eJ%UnSoLy(YmhV`jMP9d}@U$CiL4L|>s{!Sl;{xtOZZ>Kyu<<}j z_MF{?NDc*Hv1QC4FfvA^eW5B_n#fgB;5TGEDhCk#9)UNPd;V<)V`k?-%3jaqS!|ScKmL8;%7370)SNl)N^SyJ){iP}| ztRO8R{z8>eUgEzR|JgJY)Lr8Z5Cq7bLwf7~HuuL(+%m3X!_9GdO`=0+U0Jw(@IC)j&huruuPS>tI)+Y=vHsy=_+|YM zDC#-OgFr}hXavHqcbC=Tr{wv*Cb(zC9n}5F>lfU=$L=nY^h54$N`&_BaDS3m|Ln;h zw%n(&{;8hlYyWTMf0A1Nvf~HTeg4~DP`;43*ssq0HyiGKr28C%zmOy$zm9uIzZeOB z!Th^pAg7Z5l)H{85%@dI57wc7_RD?Vp`Y4$zEl6w{TmC>FB5+B$$i$GUobD9-#6i3 z96I;G?x!dG1tzNgTd@D1C+99B%MZEhplrkYfPdv@`DZ`f&(QJ{B+qx^|AP2?zLsCN z`0pXRn>c^Sokfb4_bvKy2K}Gr+&_i>6Cuyn=ePQQok{;ML+%ci{g69DP96Vc$lWos zf7)^XpxIA=JYRCB->CmQcJ>Pf>W=`&Pqn+hcj4q8a%V+A=nojkH1}t4`KJND4=?}H zthlH7N3i*)GCb7p!p%P$&huUPxANU&cQ5$->o$HLr}>3<9QDuJxF5{E7qz($eBbN) z3-~7Xzk&bZ1HKP?e?j>R_9F9lu>bWt``vQj2j1NcFj^S?n`+PRoI*%{jWn`RXM zu9=mglcn817aMy+6H}-E=;gnskn4ZYiq%@4ZkVOrb@V+-nx6w%o#9ji&;()KC5OF<$X#A%{ z>`2>I+Hk>~2ZBiH3FaF4cXPT=9*pQQgCjWPFkfZMsxqQ&spUl0$)=n-6MYU`NpS^z|`yo zxVNBdkFeabr6jMc+rOGdT7?0uU<=7+MYyAV3|Y>NvSEKwFBx!JNS75|wHaL{oxRG= zTx5sYOoW~Js-C5|FuDS0!%VNXG(}Kz7+27WXiBLwlWa49+Az~zMZ$LdrT5G!W=`9F zu4oSkQ!~35YUZ@^BwNM@DCVPfm}N!ValQHifT#8dtXs|7<#0vQW6P@Yp*_SZCsg=N zDf-@k=syM$xOuLUdvM}*m}KXoq2L@vc-MLcR?F3a*_%EF+?V5F!*}kNcS?BJ&yuC% zKY!J}@&$_rDYOq+u)1jJQMV`b*p?WFAiuTY2B6v$1rjSnT0pKCrZDC1t1y_JkLN+8KmY(s!2jvN|6Ys|{}VA9Iw?6j8O!{K zz)55c?JUhqon0jD%&>UoC6AHiBVNv;$q_T{|Y;MVg6RO9150Rof<3TxK zO37A^oL=-%Khxfe5!s@F^IRo_v*e>Vn^8zkSpK;$lU(t<<@ZqH4}DE$5;inB2of7Q zXgf}X8_8@@^ZUCeKR$fGnu4?iCr1Leh5_eC8kW&FJxB&Q0W`6YCy00H#9&RG>9X;x zS29zcT$-_q?lJ%BnP;?z)~;A|5erCRJh+6SK&Z017mYSLW*cGT$R#>NTo>lJuzpVZjk?Nj0D(k2}bTB*^dMO4Bgo6?> zWW!8yMUKF%L_u+L1c)I)ZL`K_fbl$g32%EEvfCxnOTBA%k+!xrHnv?>Sl}?Lc9mt8 z*>snCWnX>w-p2i3W?*0#pVRcSe;?2Kyytn(ckX@8bH4C=p9-5PL=+%EL4m4~UJWGT zGsh~5!^4j4CK_~h+gO-cYBs}0!!s9-x^TDZHoI}S(H{3u-a)3qTYa@AR%!+p=6(!$ z&!AB1*=dG%DHJd&ZqXiENshYm*Q8WY3N;M;MjD=9PbB*7+%3P$=oAnoM_8J(+fKaA zmd@cY;|8)OmYwP%p~P5*ku)$ikTac{mQV8r$u2YcUHxV7U1LK|DJl>uGLx(rS;sBq zJ8UCMQ1elg9U=#kC@UK*uY$8SZQ#koU8ZLfwK-(9)#%WcammH6m;yg3DYfw#BK0Y3 zZi%s!ilm#tUvyg2p>-0SQFzl@VBZAd1X>4VXwWS@tI89_H+!jt zjxM$)*k+@$yLQV)cS3vz;tA@KYx?vKo(6E%th&E7B2}U65EOV3rQL;BDvVgy9Eyv( zoiETe(iXEeljI}7q#EIPREr1Be)+|y){KFV4V*W*#lz3w5}7=kDnQtwA`H)M@dKjw-%><&_i)n{Q z(UeJ6Q%<+_GNUptB31sdLw!47um^)&i*>0b-O#k$q^n&l$<{jvbM@$!Idq4xf#pG7 zti4rxn6trrmK(Aytck!EcTm~#M&HDqxK64;5OGm6ZR0LXVw!QqQaz{G_OEmG+hj2f9C-H<@hRW_v3zl5qJ4M2ZyD zuiz;B9WmZQ!_oJ54seea=+MDdqwZT|RQ{2firLj#VNE=2OZz=EO8-dxMog}0e{u%` zZOXRUQ$1||z#YnuI{LZTW6Ptj5RJ2tK}a^5;n zpg^BovbkI$J6rzbJ=GH<({9ZT6mZyW2QH*hMFRC@V*fIAhi%v!C|j({bSc={X@luy z+c;gOhm~F9kvmX4(8nLg5qNGs)V|R7`M;uyyBJb(P6`7$VeK$Fu}plcEdamtNB)#& zhJ2+{oOI<;(TxD99Vn_DK+z>qj@F9!K8yy`ygtsas{>RM%x%|>Zqj%vWI1iH+MX7rJd8e zo2OCcvXeWP$f4z|Oo4Q`h};|n345I)-5{o@(K0KV4*AfQT7Mf zB6hrNN80afjkf~0eZnWCZ8naXE1oe-d_V5%x#Ec&jDh4{;}5+OhhfJR_0;v1a))2o z=%_o+AVr_#ngkK3M*A1{^B%#)0{8Jc^O*GqUu_&LDtcE^;z zlE2fDC;byuKvorl{hU-M@BDeQpR%^{vI4>n910L2D5XM=_Q@Ky2qLOQuK=JZaEuPu zu(5=^H5cI}N#(Kq!}>)`5Ha)TMGXIxqr8?>;pu32&Q0F#_vRF%H;Mjt>M%THeAkAuy{T8r#2r!Y?)tFdWagv1G^5NG*-DOHht zAV{d;gOUx=K6IELsP2Us#)3??y=pvMXLmWiRt{kiXPDh-r9k02z3`9svhjq)?=B)$ zdGnQ4$_EiH*klD~qOgt%LA@`Fhv3Y^L7TC@!clMw%nMF_ICC6f-F38>1Wxgu^b%C|o`vC@dMqGM%Xx!{kD1e>-0@ zfiV^&iWU-o+dkzZByHQe26%VJ9enemD-|Xyhk9FRg3n}akHZxkWM99^v>;|a#&=Jaw`<$ z_M@>}=yqcn2xCw*qK1vu7!TU03Z0_l?fYq{xY{7|!i@Vhst^@JNw#h~{4@)d?UpLB z@ceU9AZVo;h{B!H-_+Z>@#q0o&}$;5Aq-nHasl&j4f!N4$+QJwb9&4B3%!l6q)Oz8$!GSE{)DYSK&~&~ zWe!j|fiaT0M6~KoV+2Hk1Pgcw83`gm@JZr`CI6H=p%Ptqq*5TH=iFg;aP&t2wMxwE z1{ik7YS1HOQiRFo$@&i8nC`^L`-~+C$nvJEN!xB z4c@_O{mc2-8$}`HmLZ8`9$`%LMiFQSJ(IRMG8okQMnRsUj3MkE*r*ktl3D+M`Ri4= zclysi`L`A4NE@U!17aeJR?uiN z5(cUZR0dilN=nKVJt668%+gMQrfIt_?#IvO&(!?|`rDYWaWl{0&-gFW<>z}0f|3{4 z;X66$=Q)3Jn$P$4e>}dZi!g*Gg+myQKf22(xZPM0&iqJOY}rxztU1s6PPggsxqtJ`nChWf)Qj(qjd?MF)jqi3)>C4jT+q=X#c8OZzG17 z3{q>$C2A*rMlzz^Z2}Uizw`GpU*pwN?QqV!igLE_rYCS2`ZL8`K6_tLCK(^g`%y$! zsQ|&IL!zTDz0UkqS}ryWczDoH;;BU%N7YGA{%lCy)R)P$+S&ZF2-0i)E6^Z=!N-pZ zKjG$H{^!F*aU7v=*j!H8(I*HIb~psuyb#QeaC8_#Xc|7)m3xO+N2=9K#(t8d7>sEG zsViv9tpEopSHAt|7-QTPmTb@?y*iM)LwdnYl*4{n_CmT9a*a_kA||`(#1}aK2#~(w zz0Ztu5YtV1`-{iQtlT&Xyqw4kh9`;la;UZSjpf?xa8(bio2oylNrz<7qSIz3Gp zS(-Z}(T#PBHFFsG!}ok1Q%jKu4d&z#)!jhVQ=2-(hT9^#a!`KtpwX9hyewRAxZF6B zKJjlGR~{lk{Yg}yYK>#2K!}yB-`{Ok%Vv&Wkmr3Gr{-eTeZwO`)s)leg`mSw)#!;ew)t0x-*NHy z_jJ$L5&9a@g=zEnC>#+O;h5e?=$aSyg?9i+0ZAt65&IBOrQ)O00J|L+M#CDT*qvl9o8wRXxb;4JBpT zL+vyp9L&=R*t{bJWi1P-=$u+Y#5`&>`X7*g*}H)S!pr`jaEcN9-`V?L>G!`v;{PiG z{#UU3e@C_dTju&-%jf^g-eQKvF7{5I{}pVg=-ML*qVNKzlum1X8dk1tDQQtaZ>?Tn z%j!prgvXNACS7bd$Xq6ww$IU#{h<7Ul35j#@qHe|Gwo?Y6o7pdWZwAfde3*h?M(Xp zK7LRqbwqz*A;H87xX~VZ+=)`u=#e++@FOjq=dB(uy;wd0?IA94L6-jcJHi)Ra_~LA zbMGO<)`<-I6dQ&z>=fUBmNx!f_tLV9ELTD}s}N!Di>T>rgxM4~KD-d8iNSV5DQ9d| z!EBP_eD{emrqEI!MEd)jc-_6oIBaGLSGH*+!5S2|AeoR8NRx({gxcH+5vB@^#RS8- z{W6*?*iU=Hy!Q&Cc{6aR7k#35{%A_Yt4P+$jIy{hu2QA*&7!iMY<`7%Sw1MhRdiVe zhxW6SC=42W;R?{A^x0D7O%-`&?P4{C7ogWWqSX2dNPTa#&zhA!fxaOI z#f_pp;L3F>zNb-+d$bEy$c#lYiP0?YI5n-aTjM*jrhU>^@Lu$ZN1eWbzohjerqi;* zSC}-A085_YDTTQ~+~r$DVF+!Cvyh>bjckRix?*(2{hW-Uh#x;KS*-CUDaCEb^X4$s=FFh zO92E02KXL#VE!D2dj7>+5HJvMGO7}CQF=Op@h1-qK>0-u1#eS%gwV^GSe~J~U=o@{$jA@~+Q|`3uJtjLf`{k$ZkswQkxP{VE#w1KGX>{U=&C6jLI4-k?FAi25fh%wvk$)22VA#-mhR zoZ7GO<8KluubSPZQSvEmCn+fD`THPtD=!Ry+@==@L~v5ST>;>Ws>I!^rN9j;Wo~_& zVqel3f0fHO%F8ITOLw0j=mGA-E2z@D?2KC6nBFRY<%gJAXnju_BS+L2oe32Iw=mHA zUtSJr&r*~tY%7jvp6i(_Qfrj?=Ca10@}u1BIe!QZqgiBadB<4b+fcfc`i4QjN*8s@ zS=`%D`{QQzjQXZa%v9Ne1DwI9NRpKKH6J)cO;1mW_1y+(*B7XVx#$Pz8Kec1F`z7@W}`8SXP^8tB^~09KBVBC ztWRpGuU5Y5`kvR}*6~T@#e}#s#PT2Il?8EMQ}_ooXc7UID*4Ybd%LUSO<=Mj&{3q=3z0FGGm$xw#89rl#^9BmfsxmJtNtV2LTRq^R#QnW{t;`os^})RgHsD^P)4 zgeOv?Wb|pOWF4XE6d4uNVm0#E+Q=l;GP@K>eRApbX)J^ooL8timx5fBmb)W+^aYVX zG=E*U&dXE%xwSlozZB8Z)uW4ZS4*0`ZCv+#3Uw9Aq+`2qYC2O)nhd35Db1ni;Ru1V zm94F%%N6ZAI+u;8fqp1h1D(Dcd^?}j2%5gB#N#fj% zYAH^z!dZ%soSyp5Vm<2bDjtU7$p-=rgDn%^TM7X4R;xJU96}xd8b&eMV#59`cq%x%oDekc098?f4F0i_UC&m&WQe0SQ50p2wJp~du zf;)uK3TX;GxH_2&eHJ3}??#la3j^uF(5h#pBRy3TF(gagCxVn%#X^kLp#W(-!Op*? z6Hz3*Qhyx`LioEPVMJcjl>3qz5KlTdjcZ9{QISYC=nd#jWDtj>jl77)E8VB$_( z4GXVI3F;lYT9meW2^rH+XIP)71M`+2qcuY5Lj&o?PNT9UT-kPfvO)v7i?n=)6wkT) zl?^y*+Zj|91FMmKPZqNak%bFUGp~@yS*`0WP$K{I;L2ow8^|=_QaV)*ewz4hf!uXM zOY{CFcPyg2gEiv-E+HPrx6Ny))q;8pMQXYKqUf znu&n&WQPh9!MPol=}#?3&H3w8se_m1%sx|ra4?q6O%KuQ#0Sd}k2rTT5~(${Kd=&D&3z=!|QBmg9;|-!%v_&l+#wWd`eGZuCT-| zm9j0OGmpKS&~3@=fH@S1F^A2^G;S_|Cq5EQJl^w%eH@;PTQ(>ONhTOGA>R}nnR;ig zCFI`|*cs&#XHAZq>zsc9YftvJ5oszs7VO9YVV@J4LwelHkiXVH!^q+M6??1E->cCe zop6T`EEv?KG81M|VkE+LWH~j1{0Ab`1#A1y?emTl8 z;oZ-UScgS~6-ne}%rqX}8)=oB=3^nWm6QtdH#*C49>=BbH6xpkYwS0_XA*T5_ckO` zx`j*GnFypEl8ro%L?}AiWsZx<74KZtl~74iK(|OhD3G5ifvmr&8qvlQ6Jon%m}sak zjHEIhbbN2754X6*09i8#x->A0Whq;x1>=r?Qm{&b&Ot#(LvYi*2?~&Y3!=5QG zr+tvrhjSat#3a_f*f7g<@U*h>#XT}KhlS7?*b6|y?8na(yF`P75s~X-B`BkzC>KLv z71PiE$>DJu4{8V-a&9IcH9Q)w>Q$uDqTFJ!o|aFmQji!e`V?7%t~=KZE|~`7+L)C0 zNJq`;{0(vbey2H^)8Zt?sHNy_pa#Ko$w!*i?gy92`8xJO?9@pOt9w=_i^7-LS9m1K z`b$srd&AQ89gUaaZ7iT zw_B(hBcny{8Y=3Q8)%;N&KQSyJIOzv>5b~DS{zA z&g%&Vl(&WU<4Qx-WIi13j62X9IxhVg3m83Kx$vNP{}YYVeX*)mteG+Uhh-@fzgFz_ z_aFqe{Q*-s+OA`iN55wxy)ij3TRcGrd8T*v1|s435AD&u=PHup+KD9jg8-hS%WC)bX!xjc3cHV%N6^15j`?V z5bHEY4~PO}9ds}&JcLjCE3`M;LKVDH#=5^?`4}5%Q`HuKvDnJSQj*?+hCsrvH*vQ< zzZEO(SpN)jNuC49*C|2VhziB=AnYu^vpKj*L>=1XiodoWvcDG=+Ys5T#yJ_~g0aDh z63i*$t9vV@P@_4CNF=tC+@2C=oyX@GgJ&LI$6cT<$d3q&Z$b?4r#00!u70m*vsz=c z&TOcgSK|8iMHP6b8+%gshB+8vwk;=Cdo^ zYLx;eq9DMZ47`A*vTqsP2~dYHT;~rHA^c?Q@4Gyy&V3ZKez|_KouFdwM|cmoA9WE6 z9Flf#^0H;TRCT_-qZeA-5Z#C?KdEf@&%8Cxx-{*l6P#o`%{;=np$tA1~#F%rYI z`a}x!x=;grq}Xd~vNHPf5{3@r+#T>N7UULdTVX>)sTX(qd!|R8jA>-T=#s;+Q*9Nz z@ZF0_Guez$n2D=_$PWSeRMS`WeC;t=Vt_N3#7tCl7CW~7h1plE1KMA8xf{-`8^7xX zXOqS9N3L4n>=k3bzO=0;bqvs-iA>42CGTmDNtckI+izIaDZN+Z+ALY0XY>mg-w5uK zCyj*CJZ&wLpydb0{Tn%Z-gg4HpH42KmM)fnBPw*!3z@oj9IeEgc$|^=ld#&$4B{wb z86RD@&3{1?y+OayC%uYQO{1mwry4pUw%c84J^ZO0I7U-=JXA_UkFuHVb5)YCS=0>g zk4%OyV>0h~a5E#@yvSo1=p!)J+?+*BWw5+cEL)}7oq&aL3xQN1dwKfhT%%Gj#Ueey-^B(Ur|8cBeM4UJvIgE(X%YPk0!F=j;>H2iMm3wf;q zrdk60Pz#5c$UNj8v-4Y(-ZMbAKjUYhl>4+^lq)G9xlWm9=HP1+lW;uqur zf}6y0f0y~xF2IZ8>_xJ#JDJl6lImqC^arfi$@T#!OJwy3LU1LnIM;(c{C_oxfx@TF zpSyRpsFuT@T`?1?noHw)OENI-bea+e!&JEwh44FccU590m?b~tYml(xd1(N2e97!S zUnI2LDJ?(OTJ+)X@5AwdRKl-do%j6m+_%ABry#doq?L`Z&{1lk zcPFh(Uvr75vyI}n6w4pqefhJBCZmi-gw(HWfsKEk8j3(ptlBwRMbC@IjNL`ci<&Bj z&x)WRzgIL^d1w@4{DZv{zK2n;?eMY-Nc#eLz-oc;MJ&E<5r#@Q5(s0ivS*#zm>1tt6n<#gZXhd4!OyzUh+wtajoUC7XjQ7fS7Qqt$Mr4>Zlp$ z5!z4-E339z9_)@aUE0n9HfBRo zxXPG62+g)hnQ&Z^3AJx0^%buaH4v7$4inj3IAdkdM7X*YcXmo$)ut+Us@fou`I;4K z&L;vg0;rx(BV*Or+dfhn(&EE8NTeL0weRcZ$|Oz^K-YQEBkK^x$TV+qJNR|k!eOaS zgGcmmS=^^gBDPUL|ZZ|9g+s5b8d-CvZ{hG^$TP@aC zA*-+3_y{JMqKby9uS};BF{VJ^GgaAB8#Cmc3Ky0;;=D;MoE8Fi%DE=&Jln{4w>sof z_)S#A=Lxv<62=wy6n)HXG&S%luz^SzOsuu$xRJq8E~v-hwm@S@}f^l!PcjJ+S!sJar4 ztc+8su2f(EMgdXQY*OnPrt6VuEWCtu+j1moP5#c~a{B6TiS~`nxfm z_0UKEzH+Y2h!P`W8Oku8Im|DRqR8Py(&5Mm02B;elvUSq9b@4WWTFo|03fWWdsx7x zGeF2~4#-ibb*7Iu`gsRH7Tg2JF@%d&E}+dG2QQ0LuMkWYST3~sIHfl-!Yga52dI5$ zaVzr8r(DQ0l5>M#(sAro33Trfv9zu7tyQ@(pWpbK#?t_3h#JTmFA=h;Oo^yF(zMN` zu;4+k!-12O74SBZKKnQT_Mj_H{sEU7zq`{`CfKv0%$*;DEwhQVb0 z70b$3=}t|Oi6yhGTwjg85P&^P#!p|Ppr@JgB)FNBT6R>i_#LN(6DC)|6|`Fa{+_v1 zUC6Zgkx^Ny?#8vmBSzwaVp9nrp zS-;vm1hLH6Pkc{Y_y*&{7ndK;*U#g`TsSF1HA+s%boyW#Fv6*H29U3zaYpJQI5l~9 zi9+a5KSJzv{)?gSVK@~NW+gMsc3MOKY|3JGFzTtRl$LG!2CTPi^jKvFT7QI-SbBpb z;skbv=Nw;HeWUxMbbj#|HFqDrfEck^ewaIdy8Z@q^Ow|xb|~x3Rj}<)nnr{G=hjMs zq1(6t2_h^FJ;I?wXdrY^u7WkM2f#&EF+h&tsxGF7Whe;Yd)j6v#vZF9H|k(y)^xUJ zTr>0waekgGWL~bd2n;9uJX`qv8XmRa0_&m@ehk9C?I^~&TADTe&PE;*LC{-b1_y>zI!FTow}sF%Wr$lvRqJ#BA*NWau5<=vz5 zI%JV;SX#0UtmlO!ZqJ6RgBZJFM9Jj_L6SApXfA}JRhqwOsA?oQd)dYV@fc%SqYY`* zgPQY`h(mUP`LHD}!S%)Y*f;3TZuLGW{1?@`#3Y@C;B_3OG24Jr29BnppC4uY|(#v0y>+= z!BL;>QI(JlG%DjEj}05q^dKn@KEzH$_p1Gq*72pU@D zp@l^Ut4%wBTBl`vF-u!kE)91B=`9-r6@K~^_#S2Sz-G`>IoVf;0S5;+<|IRxI2+%I z_nzotk@1D1woV1wk|(ZEx7?En-49exREbRZVmgQVrBg${*hE~Vdp2aGxwC?~I^f0w zo>|r{d0l_Tw=1tX0OLf?&jQ2ZXbjP&x1-vWY1x6W^%E*bmAf?IXUm79r#7WSbPMi? zz|V`);xF>%+|imNbZeRrgGF|A9$`2Yr9JbLgN{c{N-a|GWvjmaTnk{lc5ljhBelrw z%pHQYi7raRZeF_Dy`$bpTmNk^@++Bd7?8H5@Rzo2g6UC(WeM%A&)*PPMG4{F>L!n_ zg0qlg&Ff+#!|pz+)5R3Hzwev(+lP>1ET88oXGv&ff!FT&9m_P&@S=VzrXPH_E<5`Zn3@!{XYO zZh3Diw|ks-rrkG;;d(`%*%NslFN^hZj|$Qx%BlyT+dC$o==ePGUq_iVFm zdbvE=96`}zJdS^)C&FurV!FX>fB#nJVfo97gqR~xztqTw_91a(iw={6%rHa+)29f{ zH~dS?asRkBaM%0jd(u+>&*aK|K71}lKBvz?gzPWY)daj$H0R|5j34~PN*e={Ga zw{^Q?(lh*tHrA>IfOg&vfOPmL0Q9E<$L&UQE2SO#i80#z4Q2ri;QJY)Xv!`#Wzi8Qj(KKd?bV#xFaw%Y6ONJojO97WOYhL1r3VQYgBBDD8>6TrpbNR z{se8Kb?v-vIsX~ge$N}<)Avmtclx{m9<_B1Sr)_Z%K052k z)CZ;*v~;BG&IPZQ9=e8asOO^u-XP*U@iZnaHBH;D3n^)~#8GgIXH~s1?e?Hq zO4YDKs3qNW>x80C<6cgyZC=vYwFOr)e`!iVpH#2lFm**0MLIpdWYJw3GwRO0S6GPr zI@+_gc*P05ZAuyO_L5)L?#4J=%BeB#Dp8gm74wv<*@?gHO*|;9EJZU3X*6(ujbP7E zbbD(?^oRrpUX#VDt_K&Ub=3E+bMlx!d?FS|^GR%fOQsSReujMcp)LhuzO>PZM!Ekf zq#H+D{4>xB#F{4bCt|*PE`n9Jn$`J*bq$@Jw`$Zn@}@XxSe;Om(14UHk$jiDMDo7* zl&$P!GEChjLlWq#Q|1>DHh8HN!%IwtHR^p7g)tO@5S=V!b3kM-;<@k9TREN3;T{IcQVq{Hxme&6TotP%7zwO zuACix{U_{Ip?$d5#=5{KA^(g%95kpa$`%1GqK%Y%jGDqnpkG1El+z%7)NC^#-VY~+ zXoIcrW-Qy>`1Q4oG8hXy!uqhEgofsNlVRL?LIXIDcPC~jmhsei(TL|XEi8}N&|?Dx zuy6_=y=~9CGdFXf6+_;cOfE+2cTtVg#{0Y5#;39iwrn3)7&HF-rNP)eI;x9;zNxr? zu_FN&`2ggAR7RI+6k)sMSI91tAxDUctVu-((^mWC_0+9{3)?p05^nt(as>dk^(-lR zu>p=j9lu8QM$DgC5)uUBV6~ceY3vQQWffU7HXX$sP$}U?G3DoLL|m#VH)G(&1{M;- zYPSYE!rAfEoI#!$o=03rUmG|Iz5R=2S-ZO&*HUfDWFpn~4Z68$qO{fljrU=`qQNWo zvh#H7e(G6Oh#Z)nOSg(F_5Hr>d%jX2bz{Rya;jex>{%SsHQ<6s4AW-#CDy&UX zB#AtG0whfa^&{cff*R4sv9Pf;_SoWW|636C_zpU0F)=^c_W`LO}ZgxuWc%(iJ!^oILIyt2s=MtS-UHlXt`-$t+t z$}nOYq$lZW)C&ci27j|F{t0Jf?OJw7-Eg_G>&=KFa&?R%E(Ku)%LJK9LZafNfc$x4a{2B!1FCZL)Q@EMpY2x4g(%X>@Q#FAJgJkdC!6T)!HFd8%ldMGL7ep zHkPx$kE-*ARPz(ROkvK!Un>85>cwE*ev#7SEaTmoaa#D8@JTK`LY;orumB^Jv;X-7x%gNVsBW}Cb+F{;?I=1Z1IkXVmHba z)7lKK;%k(Z;k(mCF2iaZIw*B={7cas_!~Q-EyUx^wvS)3P1XayD$eR7*B_@SBXS9@SK+jX8z90Y77Q!f0NK{lqqeLnXKo( zHnT@6rJu5d6et?GZnU%59A1OaAw-4`OkvL0UwHyfJf~I?ciEMM7A*&Ha?OF%vnnuH zzncbWA!ZLGOo=#MVb3j03L#kvzf)?)-z&(QEZ+2%Loj{lcLK6^qz7Om4L@*!%PZo# zBTfbm!U%km>Cle@^|!VSzoIR;2KKOWtXbFU-NX8q~{eRBg?D*0^V~c}SPx(lb2nQHBGGT_hkC^hI2YLb3fAE(L`a zPOYkTemjgHw7p@kvig*}9=cVY^=)WHsiYh2CYyFvd{O&P4m9sl3hL|ML%?xELZ6xz z@P&DpB>2AB=PH(hPdk(?8JH^g?lI=1_ZFm1_{ZFaPUJML?c5tq<65`gqPBST*_$5j z-PrsJfx-?RjzR-X27xQfo4~@|-N;mT5qp<%L;3QcR=Xb}4!J(G?fy--iuJBx@<6@p zk<$?>1Gww-jw8u|X|b+2UlqIJMPl$1?>GS1E?BtYnhJSv%Rk+5e})vE7K_TU)$$}j z1uW+4NhryoRNcWrbLtWBRXy{ku3*OEqc9 zGmlT)12T1V@<43FKvk;Sf@kOKp5|q8-IhOCkSUppQD3~-QH+Q`0(;d)b{a0FLlvz_ zlzx-A+A`-_jFV>Hc%~)C?DQapAOB3u3ja=Vr1aMoHh+1(Lk+ih zI?BANzMNe3Biy5}DHIL1(u3uHMHvCBvPSjUTZ2U)sE z*c*RPl|!?dY5&}@ag7CztY@d{g6gdFMm^;G4rGqd?DlI+%Rs4_`*%W&^~qFwYemd` zsA;!fZ;WvT^bhEN-#v-&FF}m8slDyL^-uOfB$@vK1p-Qe{P+IJ{|SrQo4DGV*}43$ zXvbGoM*~L<^{+g=tYnz7un1it8)~2tamISZKJHRoDCMIoL@qfsQ`>!*o~ zd5ANpz?SmB(DLpVRGN@YMx2oGjI(=AI*o#rj$E&}5w>+32Th}P3q)GcL)?4T#JA)b`P>=bpQEvlpjIfcfP z@h}(AK&i#at54BBn=2jtp$HpN&hH+3$T^h;65maiD*|C~>M}X*CFCbJ-dVJs^BGA)sZMpN*6b7?OF3uG zM{4>*xWLD;gwA#94*f`(4$>|u;*!YEVHVDCKovD@!o0nsm>3+!`9OZ)=#%Q{oF@BV z6h6Z9W}ede6$<}nQPSCvTo054+4@wFZ`5%%dK+_S5;z01mFnw`y+r zBV_oNNPQ1&T0Da(3oCi`NARI-oHzV^Jcl9*Y(~WE9VzMF6%Ho&s&cKam^XkQZK==e z%9oXy;_-YKbxxtwUs#?Y>92tjVUg&)dCZx2v*dQMNDpVr+JNF!&PD<$ z(*U`ixnuQl38I9eG9>{KiGxnLr)B{0;?(;Uk`pv6EDwIfrU-X@;fb29nzG3r(9M8uqOp6;aXi?2%`_T319O zCqYHI;jAO6r|ae5Azs_L^l7{Pr5P@Vqn%L+G7-zdGjUD3D-i^pnIS(C-xOc+lS}wigb#Fqp)5uF zp<@|3rPxDc;+i<+OdL*o6d@`cP?0OJaE%Th@DFwIlS7kBWMoWxq)kBc^N*QE(0S$E z>W_~_clQn-nUU8s?x`{8o9K9Fbl;5NboZW*O!#yki$K|99H92O0d5&R)4_KSw?FlL z2nz|zo-ZQ#Yh}_ESA8UL=7p8$R`IM@VkK+5W5F_kk$tkHI3Pdd_!7ZivJ)*TL~fZ6 zA%OXOvkJ##q5qz=FW_vfo6@H z@|2TdAo&+mu2NAhksnY{-p&_&yR<#P)46#J$XvLM9GdP=_mifJ3SuSu`FQm!MG^xI zW+Q(#ZbwK~I5N&FsZ{EzhSW{_{joYuyNIOM5hH4^Bu0L^`3g7&THpOc5E}-O7WVQY zu4B15>0<(y9$-IZn7(5!e$W_#F{GbEeu>f=A+6~uG2n6+-i(n@6%!hLOG`z1EN6Of z=^mvbu_3AxP-`CY*aQ-%WkU6;L}I){O>f(Yv{00IsIH4@GfWO{-Jm{zMSj_!KY(td zc1P4o^#(;CL%A!k&I$g?;t$zM^9GhrZE>K-(khd&zeNC0H%SdjmEF*44JO-IG;Irl z)4Uup2Z(3?jT%GcjgdfQ{hesAR};jL*@ck{NLnKY2J{a80l4i8f!E6R4scoJ zM;?j{c=}{_w7nPZ@%S(p+1>PpPLbnBW_BjlVnR1|k$C0+RZ^aG@%W_*K(6{R%Y}>!;@+4Vh)dW%Kgd$5i z=a-mvOy#kuco1-lpzhw5-E#bFKibTt+sM>w}Y@yUcd8OQo3Rt+VsDzGCw#iKrT> z`HWhOczl>-lne!ebF?RoC>&;Y(rZ&Y1?y5H!&+8Ajcc%L9(bfV_`>Izs&w`6!+??` z#=sBhjq(8f@7eK2c5^M3MDs>K@FLm~lcSj+s~cDa1pNo_FGvOv{BUH|OYwdA#jsf` zJ-`i&a9CMFLMDYQHHGXBXLlW`Pq*BFvwnc3IJ5(rR^pf+qp>_-$9lZ{r!FjJ2Tw)l zn6}xIx?&T;S5S~6$)CA)O82rlhzd1EuogzWbWf(x0Tb=QHKoEwy~Y{XKAIl3qvU92 zw=|{|{R(v>ZE+HT0l;33T6kG;aIArvFV25U&)5-maB?(*V)L5)@$u1 zL(iYS%TLFR2lsK$ebR1Ibzax))il@!AvniqsXXE+Qx4o}<%&xUZwMBff1hc3dZ<&{ zu~nWV14Wf)jFASRTlHu`!}vuJAN-I3gJ_IVf_NGPMkRApwKTm0HrHI}r$kT##jQ8Q z2zB8XaAxMPZX--paeFi&jDkwC++!M@bfNh3{D|=fTuh;Qm|z)>J;Arvc;vT71a8r7 z?cFOW*HNJ><+kF;KsA(GoN#HY+Sopo&NA(W3_L^n_XC#Aag)I;gkwwB;I)-vZ8t-W z!xWtB`9U3lgcO8!x~O01rrxfbqhxPpw`b}tpFm;nQfaH}q^oW2u(XlXFVXpYu)$6U zq?;@kp|zUF$JouXA@chDfCL7V$X76_64IgD$%kqwp2za!dNB>83)(JkR2hGxr)E}d zam>zScCO-U!cH;AoCb0_#{O142{_w`5GWVO#gf1rQ0VuMZ29kftDK#u=-z*zs) zipkrXn*HaWAdPc>91S!+lX%u7-bg(P=>tvq6v1fPO*A;x02CZtEh(`cBOXWL!b;j$ zTe9CJ(k5e;C}~N*>*;hRlS0K5K}hE*O9IKwqzJEg%nV?B_7V0#kGB?L=xiti_@{H- zcX@7i9&fsCXR|MVJRhil+79#ipAIU*{=6#&7we1Od%@Y?4Upy9KM7U4@R#h%VaIvi zH6XZpG$HVJiw)`Ud1MRj(zm<6MR=D-xKG?EA?#cqfASIU&{VuedWZtWM|t!?5+ryM zJnf0#`>X{Y7V(iEkTCyMLLxwUJ~X}!L3rk*s#Rfj=!DPjrx43Qb`<{LCp%aIp_1A) z7xhuk;ip&Ur#Og-n1i{2aeX761-#`n_mUn=5$7Q~>WgX(gCiN-?-fn^C=Zdr8K~`@ zSm4;sy9*qC2A`z}O2naB- z@OJRRiFvTFm|)JYj^Z*Sp+yL9uFq{YuGAHAthR^L#GI*u!%!+!Rc&ZA zaiYem%MjuS3Z89)^iVnn`lCz-Bs0WmO=NMjRD|3uB7baUytO}_LMO%tI?kul#s^gG zxQ*v1q~=PDHe9|6Jua2&pUwq~IKx45=LT|A6PPFO<&^1ch08~vqhNo z8$d3jXUJl^Gk>{Ry=8@!qb{SxoNv__Nl4frpK_~8W^?@JGDcmDl>GqSJORMqw4g|h zSv%GT!NF`nh6vN=vc(Q|yW@QdUcg1G#BnwH6rHz2*6*J^ENC?N8Er7OG4R<=e;)X) zH5l4`3C?FsEu|(}p_Qe(>JBWyCsNk~E@)ysyW{E)akzUU?awoYQ{p}o6oK$G9OcH^ z#C#x8xa+1eh-z^k0Nru7kgh%$yC$BTRfcAa*(|{*vdyZDxp35)XgRZJF$G+y;}Fj4 zB}6?zKfQ4Td*R%RoCSw|jIaWO@vdK@AAV8!=WiX&Wr-_yFnE2af22x6HrwNfW$_@v z?`W_*Ai`b0w6*&N>|MX)mq|Pnhi+ZJfL|{>fR5fIzNE(T$r$~S?lqA7QSNIZ`VN`b z$5^mTm=mF;9nYFQ{szlvHnV}M<5_6>EJ8JRE_O)zG+4#k^=RFw-ySnViv6C~VU-Q4 zHPyt>_K^;a0k2jtx18fzNOo5L-@TEd21j zQ~^b>pyyPH;S+R99zBYujn(;fsBN#AeKP0RgS=*NQB-S$r`5{d9H|z~oBT2j ztl1v@W{H$_RNBMK=N;;VYau~wU*}h!Z`2YmREF%)QvbcMCG-xoq5)7^S#4(#cU#P< zvawtKb(XZz*?MBjr4-qdYUyO(C|GSfpW!G;yipRtaR(B>G9is@U8&1#M#}O+aSVYIF4vv* z^dO=aPCnd_tP!E-|^ zP`&snocckhfk8Fp!{HF)n(rjgqVuMHM2*r5bc{>gMvx}s{RU;lg*5K2E3!?teAN}O zF||)opf95GhOE21eOmatvhkb?!M@)W8HXn??3SsfJ*3k&_5-}8eajKN*8z)0Msudo z%e+QtbXZry8LO>f-xi)%S^RJfB-t^0Li-^hTTw5=O`WYRy>SD$F=nGcy-xG2RW~T! z=L;0i_RpTBu1e5`8@@Hq#+-@Xn3gv-OdsFOoF$vnIWo2B;*sFneFG8BHD_%Vt$sC~ zqmWHn($`LT zw8$eXuX+&~0D4=W?AWOV8=mJJvjkSm_|F3&BCn zIcNy-1f~W;NGtR^BWFo(w9L}_$w#JXQE*BKe_GgTY>GAC`)xe58+y^=(nfE-*QC2= zB)Ea6-~lGvdsN`Mvf4)y$x|EsjG*1C^~kP{-tYjo$TRzC5FC2eF5AlIq^-j}2{*22 zEV@SR1J@Zb4UJ+0ntN}~BhnwU;|8D;vj>RKGy4raTe&54m0OmlN71A=X5E@{u59jY zVDd{mJleEGl}=7ahXY+fcrmUo_!ma>r(`7$%HS}xs>bH;xS3-= z*}itYKWb85&pEmGdM)U|=A=!7I%?-;)s@Lzw&1TRYF=-D2F;^u-DUh9xrWR0=Z1V1 ze>2I^=fOO9YC$8kL@N6u<+5SY6rNRVS}6wYTWpHqI5*QT9K@~CZLmvtcUa)Xy#N;2 z)d`C5@lgdZnuqwQ)W3wINrHYr{`))|{J*#u?nVy(mS(H|olmF?3&;sua?)ZjcqFoWQ5vd6-7iEVc1NcZl`b@>e%&A z7<0N@#^wGfSN@l>>Xl3JBbanIt;{Xgy{Dpm6}sc=k%>T{e}vN4sJe;} zFT0o?;GuXg|3pW)-D72S`igO#<94cR)xr%AUZOo)TilW>uR^n;6U)L8#Q`AlF@s_* z5X3|)v<{}!HoFlT%Q!p(b7tV4*b2WfmoJ3OfLyTrwc(%P3C1_c8#c=rUre4sv7j=& zbcS`J^@RJ#>lNsU)HB>2qi>`yR?k#l%#p!y&hQ2LuNUE0Mvz~Q4g~a<4hV?g|9uhv z@?)F}+9PG9<#hJL`~ihL7VzUj_E%YxU=ezo z1&8g*2DN4=;dQeWo3?ooIB;!{Yo%Uut*vdX@Al`%&gG@IuZ)b>?Dy@DIdYgf|4Cj~ zj`!{QT!+6t*XJ_|km8u1U2ynX5wk}EUD*k;6@BTi$kY|Yn$l63*m!IKHej0Sroft; z>hv{b9L+UmY*xjloUExDn@~77?)K=>ZRAbSWnHFVZ$RGdATX*j8?mSHZ}i3B&xfjk&A~5^|cx-^e%#nxe*l>m9MC;N?xZ z9?Ivs)HVFbks6zb@uQgFXq{#Em*+?9`2$q;6fq{N#=C$xi}8GZdBYsCZuC z!#62w<(6MqG`#YvTVgZY%UdLkbBju^i+j$?pS;gE$!p)NoPsk#G~WFXpX(T;FNCoK zMJI?%PHO-KDVrE5e&WV(GB;IYgOs&&8$@NQX{ATANZ-&s5@he?N&KdPZ5t#ugVGbn zjW4k0(b_91oGl6K*T!;-59?*`tk#p-8bdP_^%q#s%~ZTiw^m3FFcCgj+}uB5uVI%a z`)`K63gl?92>P>z>N>>#gO0Zhio^%rbytwV8FX=XSlpe(-CY)UcVA#|cXxMpTZYAb zac6L6a9{54!?{)W{?9p8sp?eH`IgH2q|=?eY0zF~Eks*$z}a!4ESG3qjL1N6;PN{h zqm?*;(M*AfoYqL20+D@T+(RzWrWQ*=NNz3>fi9nCSexVN&z}*)cqjXaXwJr6^GKlG+!j>Sz zoq2POx=W_qSgymTrT=`AA(un-SH+~oKnAU(D97^7N&i?})WbadB{fC%haPzvQIsva z*C(6dsM{(#28numPabUI(E{G0aa#`57&Jit5#X6+bG+2ESGtSwMGz5>;_;iMn$#-i50@KuFk4tLe zdjF7=Z(tqm(o>+zo~tOYXl~J5Qf=)4mQrpK?NWM*%BY_LrZi=dqz06=i^Er^WO<58 zc!Jx@%%Fntm?hDEt_}zY`aiS}PE4+zXuebDggm5%QY>4{;}P>kIsk2smSIAuig>mQ ztrWfUlneh74ia#M!e2AGDkLP24&f8Z4l8$#InmeN;S6=T5-NHAL@>uBlPmaCMe9qO zG%Z7SB5rpTgPA6;mN;xiXG@FudQy{>g%Oh$_nD1Gk0;9JWK;`wD}LM>sW?bV=B2e% zi7^wK*Rz%aFLYg(2csn9nX(9`yo*d@h)mFYx|%mXn0~(M2&>%8zK-WZb@poU?+{FPV{n;+6v0tCoIKUlmVAUX9PD7sx{!i+(Y1-=h9FZdC~jX??T6@ROsw9^KS zJ7FlYT5aTxQ4*Y;g@>Dr*)eLSOQS4Z8EBHoATM00Zju_b^Rr{=Q8opLD3w`f3QqKW z|3Qq%)`M!wCO<0?T^4~jOfl}{$u-|wjUA#(xyfoiF4+@5VB-AT=l^>8z;xv4xW1y( zZ#R{-crPKd9y6Mfym3^-&1lfolE=I}0i}3ieL0seY_agXP)*p>Qg%51CJc8g#+UMI z`3IB-a+i&zEexAP9p0+Eso@JKt`{1+Do!q6&p<4J_U?jU&os=9SVhS-Z#rZKE!oZfTv@f6p zt|{9>qWr4YP|n}rb05VSWG?-dHj5p!SYg0)>L41gK#fV)BhO&rrba5$PdS(jO-ap7 zTg7{5njFtSF%XYm-IVZf6=lIugBxU3N&(!R%a(+JkHH$Nl?(!4hsb)lQAv<>vW_D` zls)*88j-QG$n*&3N-661R)hsq;fb{hbt`dIp9^h>2z%L;|N5BA#=L&?T;l;h1Xk^^ z9S_snO`5LDqOZ-M-s2f4UWstjvD&LB>w`Ogm)4=XEFoZ%q}f>H4CA`qEK}pz_;PnF z)17#CIQ#v#iIMPH;-Zr5Da|vBxIF>!;lLO>h<9wh-U|-gAs8%}QoTEOb1IhUAI

    LNbwA?h>tnF9LRkj%)n{iH1 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 z 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%0Asd_F9wiV1!#_ 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 parentWidth || child.getHeight() > parentHeight) { - - int viewWidht = parentWidth; - int leftTopX = child.getX(); - int ViewHeigth = parentHeight; - int leftTopY = child.getY(); - - if (child.getWidth() > parentWidth) { - if (x_change > 0) { // move right - leftTopX = (leftTopX + x_change) < 0 ? leftTopX + x_change : 0; - } else { //move left - int rightBottomX = leftTopX + child.getWidth(); - rightBottomX = (rightBottomX + x_change) > viewWidht ? (rightBottomX + x_change) : viewWidht; - leftTopX = rightBottomX - child.getWidth(); - } - } - if (child.getHeight() > parentHeight) { - - if (y_change < 0) { // move up - int rightBottomY = leftTopY + child.getHeight(); - rightBottomY = (rightBottomY + y_change) > ViewHeigth ? (rightBottomY + y_change) : ViewHeigth; - leftTopY = rightBottomY - child.getHeight(); - } else { // move down - leftTopY = (leftTopY + y_change) < 0 ? (leftTopY + y_change) : 0; - } - } - child.setBounds(leftTopX, leftTopY, child.getWidth(), child.getHeight()); - } - } - - - public static void main(String[] args) { - // TODO Auto-generated method stub - new Main().init(); - } - -} diff --git a/src/com/applex/main/MainFrame.java b/src/com/applex/main/MainFrame.java deleted file mode 100644 index 8095ef4..0000000 --- a/src/com/applex/main/MainFrame.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.applex.main; - -import java.awt.Color; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.WindowEvent; -import java.awt.event.WindowStateListener; - -import javax.swing.JFrame; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; - -/** - * - * @author applex 2016-09-29 - * - */ - -public class MainFrame extends JFrame implements ActionListener, WindowStateListener{ - - public interface FileOpenedCallback { - public void openFile(String path); - } - - public interface WinstateChangeCallback { - public void windowstateChange(boolean isFullScreen); - } - - private int mDefaultWidth = 640; - - private int mDefaultHeight = 480; - - private JMenuBar mBar = new JMenuBar(); - - private JMenu mOpenFile = new JMenu(DefaultValues.OPEN_FILE); - - private JMenu mAbout = new JMenu(DefaultValues.ABOUT); - - private JMenuItem mOpenFileItem = new JMenuItem(DefaultValues.OPEN_FILE); - - private JMenuItem mAboutItem = new JMenuItem(DefaultValues.ABOUT); - - private VectorDrawableFileOpen mFileOpen = new VectorDrawableFileOpen(); - - private FileOpenedCallback mFileOpenedCallback; - - private WinstateChangeCallback mWinstateChangeCallback; - - private boolean mIsFullScreen; - - public MainFrame() { - super(); - setTitle(DefaultValues.TITLE); - setDefaultSize(); - setLocationRelativeTo(null); - setLayout(null); - getContentPane().setBackground(Color.DARK_GRAY); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - addWindowStateListener(this); - - mOpenFileItem.addActionListener(this); - mAboutItem.addActionListener(this); - mOpenFile.add(mOpenFileItem); - mAbout.add(mAboutItem); - mBar.add(mOpenFile); - mBar.add(mAbout); - setJMenuBar(mBar); - } - - public void setDefaultSize() { - setSize(mDefaultWidth, mDefaultHeight); - } - - @Override - public void actionPerformed(ActionEvent e) { - // TODO Auto-generated method stub - if (e.getSource() == mOpenFileItem) { - int result = mFileOpen.showOpenDialog(this); - if (result == VectorDrawableFileOpen.APPROVE_OPTION) { - String path = mFileOpen.getSelectedFile().getAbsolutePath(); - openFile(path); - } - } - else if (e.getSource() == mAboutItem) { - showAboutDialog(); - } - - } - - public void setFileOpenedCallback(FileOpenedCallback callback) { - mFileOpenedCallback = callback; - } - - public void setWinstateChangeCallback(WinstateChangeCallback callback) { - mWinstateChangeCallback = callback; - } - - private void openFile(String path) { - if (mFileOpenedCallback != null) { - mFileOpenedCallback.openFile(path); - } - } - - public void windowStateChange(boolean isFullScreen) { - if (mWinstateChangeCallback != null) { - mWinstateChangeCallback.windowstateChange(isFullScreen); - } - } - - public void showOpenErrorDialog() { - Dialog.showOpenFileErrorDialog(this); - } - - private void showAboutDialog() { - Dialog.showAboutDialog(this); - } - - @Override - public void windowStateChanged(WindowEvent state) { - // TODO Auto-generated method stub - if (state.getNewState() == 6) { - mIsFullScreen = true; - } else if (state.getNewState() == 0) { - mIsFullScreen = false; - } - windowStateChange(mIsFullScreen); - } - - public boolean isFullScreen() { - return mIsFullScreen; - } - -} diff --git a/src/com/applex/main/MouseActionsListener.java b/src/com/applex/main/MouseActionsListener.java deleted file mode 100644 index c01a047..0000000 --- a/src/com/applex/main/MouseActionsListener.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.applex.main; - -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.event.MouseMotionListener; - -public class MouseActionsListener implements MouseMotionListener,MouseListener { - - public interface DragCallback { - public void drag(int x_change, int y_change); - } - - private DragCallback mDragCallback; - - private int mStartX; - - private int mStartY; - - private int mDragedX; - - private int mDragedY; - -// private long mLastClickTime = 0; - - public void setDragCallback(DragCallback callback) { - mDragCallback = callback; - } - - private void drag(int x_change, int y_change) { - if (mDragCallback != null) { - mDragCallback.drag(x_change, y_change); - } - } - - @Override - public void mouseDragged(MouseEvent e) { - // TODO Auto-generated method stub - mDragedX = e.getX() - mStartX; - mDragedY = e.getY() - mStartY; - drag(mDragedX, mDragedY); - } - - @Override - public void mouseMoved(MouseEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void mouseClicked(MouseEvent e) { - // TODO Auto-generated method stub -// if (System.currentTimeMillis() - mLastClickTime < 400) { -// mLastClickTime = 0; -// doubleClick(); -// } else { -// mLastClickTime = System.currentTimeMillis(); -// } - } - - @Override - public void mouseEntered(MouseEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void mouseExited(MouseEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void mousePressed(MouseEvent e) { - // TODO Auto-generated method stub - mStartX = e.getX(); - mStartY = e.getY(); - } - - @Override - public void mouseReleased(MouseEvent e) { - // TODO Auto-generated method stub - mStartX = mStartY = mDragedX = mDragedY = 0; - } - - -} diff --git a/src/com/applex/main/MouseZoomListener.java b/src/com/applex/main/MouseZoomListener.java deleted file mode 100644 index 7207cd8..0000000 --- a/src/com/applex/main/MouseZoomListener.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.applex.main; - -import java.awt.event.MouseWheelEvent; -import java.awt.event.MouseWheelListener; - -/** - * - * @author applex 2016-09-29 - * - */ - -public class MouseZoomListener implements MouseWheelListener{ - - public interface ZoomCallback { - public void zoom(float change); - } - - private ZoomCallback mZoomCallback; - private float mZoomChange = 1f; - - public void setZoomCallback(ZoomCallback callback) { - mZoomCallback = callback; - } - - public void mouseWheelMoved(MouseWheelEvent wheelEvent) { - // TODO Auto-generated method stub - if (wheelEvent.getWheelRotation() == 1) { -// Logger.out("zoom out!"); - zoom(-mZoomChange); - - } else if (wheelEvent.getWheelRotation() == -1) { -// Logger.out("zoom in!"); - zoom(mZoomChange); - } - } - - private void zoom(float zoomChange) { - if (mZoomCallback != null) { - mZoomCallback.zoom(zoomChange); - } - } - -} diff --git a/src/com/applex/main/SizeLabel.java b/src/com/applex/main/SizeLabel.java deleted file mode 100644 index bd8e14c..0000000 --- a/src/com/applex/main/SizeLabel.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.applex.main; - -import java.awt.Color; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.RenderingHints; - -import javax.swing.JLabel; - -public class SizeLabel extends JLabel{ - - private int mWidthValue; - - private int mHeightValue; - - public SizeLabel(VectorDrawableOp vop) { - super(); - Font f1 = new Font("Dialog", 0, 12); - setFont(f1); - setSize(200, 50); - setForeground(Color.white); - mWidthValue = Math.round(vop.width); - mHeightValue = Math.round(vop.height); - setText("default: " + mWidthValue + " x " + mHeightValue); - } - - @Override - public void setBounds(int x, int y, int width, int height) { - // TODO Auto-generated method stub - super.setBounds(x, y, width, height); - } - - public void showZoom(float zoom) { - if (zoom == DefaultValues.UNCHANGED_ZOOM) return; - setText("default: " + mWidthValue + " x " + mHeightValue + " zoom: " + zoom); - } - - @Override - protected void paintComponent(Graphics gs) { - // TODO Auto-generated method stub - Graphics2D g = (Graphics2D)gs; - g.setRenderingHint( - RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - String text = getText(); - g.setColor(Color.black); - g.drawString(text, 1, 31); - g.setColor(Color.white); - g.drawString(text,0, 30); - } -} diff --git a/src/com/applex/main/VectorDrawableFileOpen.java b/src/com/applex/main/VectorDrawableFileOpen.java deleted file mode 100644 index 73045a1..0000000 --- a/src/com/applex/main/VectorDrawableFileOpen.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.applex.main; - -import java.io.File; - -import javax.swing.JFileChooser; -import javax.swing.filechooser.FileFilter; - -public class VectorDrawableFileOpen extends JFileChooser{ - - public VectorDrawableFileOpen() { - super(); - setDialogTitle(DefaultValues.OPEN_FILE); - setFileSelectionMode(FILES_ONLY); - setAcceptAllFileFilterUsed(false); - setFileFilter(new FileFilter() { - - @Override - public String getDescription() { - // TODO Auto-generated method stub - return "Android VectorDrawable File(*.xml)"; - } - - @Override - public boolean accept(File f) { - // TODO Auto-generated method stub - if (f.getName().toLowerCase().endsWith(".xml")) { - return true; - } - return false; - } - }); - } - -} diff --git a/src/com/applex/main/VectorDrawableOp.java b/src/com/applex/main/VectorDrawableOp.java deleted file mode 100644 index 99a1f1d..0000000 --- a/src/com/applex/main/VectorDrawableOp.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.applex.main; - -import java.util.Vector; - -import org.xmlpull.v1.XmlPullParser; - -import com.applex.logger.Logger; - -/** - * - * @author applex 2016-09-29 - * - */ - -public class VectorDrawableOp { - - private static String INSET = "inset"; - - private static String INSETLEFT = "android:insetLeft"; - - private static String INSETRIGHT = "android:insetRight"; - - - private static String VECTOR = "vector"; - - private static String WIDTH = "android:width"; - - private static String HEIGHT = "android:height"; - - private static String VP_WIDTH = "android:viewportWidth"; - - private static String VP_HEIGHT = "android:viewportHeight"; - - private static String ALPHA = "android:alpha"; - - - private static String PATH = "path"; - - private static String FILLALPHA = "android:fillAlpha"; - - private static String FILLCOLOR = "android:fillColor"; - - private static String STORKEALPHA = "android:strokeAlpha"; - - private static String STORKECOLOR = "android:strokeColor"; - - private static String PATHDATA = "android:pathData"; - - public float insetLeft, insetRight, width, height, vpWidht, vpHeigth, alpha; - - public Vector pathDatas = new Vector(); - public Vector fillColors = new Vector(); - public Vector fillAlphas = new Vector(); - public Vector storkeAlphas = new Vector(); - public Vector storkeColors = new Vector(); - - public boolean readVector(XmlPullParser xpp) { - String arg = null; - boolean ret = false; - if (INSET.equals(xpp.getName())) { - arg = xpp.getAttributeValue(null, INSETLEFT); - arg = FormatNumStr(arg); - insetLeft = arg == null ? 0f : Float.valueOf(arg).floatValue(); - - arg = xpp.getAttributeValue(null, INSETRIGHT).replaceAll("dp", ""); - arg = FormatNumStr(arg); - insetRight = arg == null ? 0f : Float.valueOf(arg).floatValue(); - - ret = true; - Logger.out("insetLeft = " + insetLeft); - Logger.out("insetRight = " + insetRight); - } - - - if (VECTOR.equals(xpp.getName())) { - arg = xpp.getAttributeValue(null, WIDTH); - arg = FormatNumStr(arg); - width = arg == null ? 0f : Float.valueOf(arg).floatValue(); - - arg = xpp.getAttributeValue(null, HEIGHT); - arg = FormatNumStr(arg); - height = arg == null ? 0f : Float.valueOf(arg).floatValue(); - - arg = xpp.getAttributeValue(null, VP_WIDTH); - vpWidht = arg == null ? 0f : Float.valueOf(arg).floatValue(); - - arg = xpp.getAttributeValue(null, VP_HEIGHT); - vpHeigth = arg == null ? 0f : Float.valueOf(arg).floatValue(); - - arg = xpp.getAttributeValue(null, ALPHA); - alpha = arg == null ? 1f : Float.valueOf(arg).floatValue(); - - ret = true; - - Logger.out("width = " + width); - Logger.out("height = " + height); - - Logger.out("vpWidht = " + vpWidht); - Logger.out("vpHeigth = " + vpHeigth); - - Logger.out("alpha = " + alpha); - } - - - if (PATH.equals(xpp.getName())) { - arg = xpp.getAttributeValue(null, FILLCOLOR); - String fillColor = arg == null ? "#FFFFFFFF" : arg; - - arg = xpp.getAttributeValue(null, FILLALPHA); - float fillAlpha = arg == null ? 1f : Float.valueOf(arg).floatValue(); - - arg = xpp.getAttributeValue(null, STORKECOLOR); - String storkeColor = arg == null ? "#FFFFFFFF" : arg; - - arg = xpp.getAttributeValue(null, STORKEALPHA); - float storkeAlpha = arg == null ? 1f : Float.valueOf(arg).floatValue(); - - arg = xpp.getAttributeValue(null, PATHDATA); - String pathData = arg == null ? "" : arg; - - fillColors.add(fillColor); - fillAlphas.add(fillAlpha); - storkeColors.add(storkeColor); - storkeAlphas.add(storkeAlpha); - pathDatas.add(pathData); - - ret = true; - - Logger.out("fillColor = " + fillColor); - Logger.out("fillAlpha = " + fillColor); - Logger.out("storkeColor = " + fillColor); - Logger.out("storkeAlpha = " + fillColor); - Logger.out("pathData = " + pathData); - } - - return ret; - } - - public static String FormatNumStr(String numStr) { - if (numStr == null) return null; - return numStr.replaceAll("dp", "") - .replaceAll("px", "") - .replaceAll("sp", ""); - } - -} diff --git a/src/com/applex/main/VectorDrawer.java b/src/com/applex/main/VectorDrawer.java deleted file mode 100644 index da0f3fc..0000000 --- a/src/com/applex/main/VectorDrawer.java +++ /dev/null @@ -1,531 +0,0 @@ -package com.applex.main; - -import java.awt.Graphics2D; -import java.awt.RenderingHints; -import java.awt.geom.Arc2D; -import java.awt.geom.CubicCurve2D; -import java.awt.geom.Line2D; -import java.awt.geom.QuadCurve2D; -import com.applex.logger.Logger; - -/** - * - * @author applex 2016-09-29 - * - */ - -public class VectorDrawer { - public static class Actions { - public static final char M = 'M'; - public static final char L = 'L'; - public static final char H = 'H'; - public static final char V = 'V'; - public static final char C = 'C'; - public static final char S = 'S'; - public static final char Q = 'Q'; - public static final char T = 'T'; - public static final char A = 'A'; - public static final char Z = 'Z'; - public static final char m = 'm'; - public static final char l = 'l'; - public static final char h = 'h'; - public static final char v = 'v'; - public static final char c = 'c'; - public static final char s = 's'; - public static final char q = 'q'; - public static final char t = 't'; - public static final char a = 'a'; - public static final char z = 'z'; - - public static boolean isActionChar(char ch) { - return ch == M || ch == m - || ch == L || ch == l - || ch == H || ch == h - || ch == V || ch == v - || ch == C || ch == c - || ch == S || ch == s - || ch == Q || ch == q - || ch == T || ch == t - || ch == A || ch == a - || ch == Z || ch == z; - } - - }; - - public static class VPoint{ - double x; - double y; - - public VPoint(double x, double y) { - this.x = x; - this.y = y; - } - - public VPoint(VPoint vpoint) { - this.x = vpoint.x; - this.y = vpoint.y; - } - } - - public static void drawVector(Graphics2D g, boolean isSmooth, String pathData, float scaleX, float scaleY) { - // smooth process - if (isSmooth) { - g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - } - // correct scale value - if (scaleX < 0) scaleX = 1; - if (scaleY < 0) scaleY = 1; - VPoint startPoint = new VPoint(0, 0); - VPoint curPaintLocation = new VPoint(0, 0); - VPoint lastControlPoint = new VPoint(curPaintLocation); - char previousAction = Actions.M; - try { - if (pathData == null) { - Logger.out("pathData error! It's null!"); - return; - } - int length = pathData.length(); - if (length <= 0) { - Logger.out("pathData error! There is no data!"); - return; - } - if (pathData.charAt(0) != Actions.M && pathData.charAt(0) != Actions.m) { - Logger.out("The first char is not 'M' or 'm', use the start point defalut: (0, 0)!!"); - } - - length = pathData.length(); - // start index, end index - int s,e; - s = 0; - e = s + 1; - - while(e <= length) { - boolean isLastIndex = e == length; - - char ech = pathData.charAt(isLastIndex ? length-1 : e); - // got an action - if (Actions.isActionChar(ech)){ - String[] vars = isLastIndex ? new String[]{} : pathData.substring(s+1, e).trim().split(" |,"); - int len = vars.length; - if (len > 0 || isLastIndex) { - switch (pathData.charAt(s)) { - case Actions.M: - for (int n=0; n 1) { - double Ascale = Math.sqrt(Aadjust); - Arx *= Ascale; - Ary *= Ascale; - } - // F6.5.2 - double Arxry = Arx * Ary; - double Arxy1_temp = Arx * Ay1_temp; - double Aryx1_temp = Ary * Ax1_temp; - double AleftArg = Math.sqrt( - (Math.pow(Arxry, 2) - Math.pow(Arxy1_temp, 2) - Math.pow(Aryx1_temp, 2)) - / (Math.pow(Arxy1_temp, 2) + Math.pow(Aryx1_temp, 2))); - if (Afa == Afs) AleftArg = -AleftArg; - double Acx_temp = AleftArg * (Arxy1_temp / Ary); - double Acy_temp = AleftArg * (-Aryx1_temp / Arx); - // F6.5.3 - double half_sum_x = (Ax1 + Ax2) / 2; - double half_sum_y = (Ay1 + Ay2) / 2; - double Acx = cosϕ * Acx_temp - sinϕ * Acy_temp + half_sum_x; - double Acy = sinϕ * Acx_temp + cosϕ * Acy_temp + half_sum_y; - - double Astartθ = getRadian(1, 0, - (Ax1_temp - Acx_temp) / Arx, (Ay1_temp - Acy_temp) / Ary); - - double Adiffθ = getRadian( - (Ax1_temp - Acx_temp) / Arx, (Ay1_temp - Acy_temp) / Ary, - (-Ax1_temp - Acx_temp) / Arx, (-Ay1_temp - Acy_temp) / Ary); - - Adiffθ %= Math.PI * 2; - if (Afs == 0 && Adiffθ > 0) Adiffθ -= Math.PI * 2; - if (Afs == 1 && Adiffθ < 0) Adiffθ += Math.PI * 2; - - // left-top point - double Altx = Acx - Arx; - double Alty = Acy - Ary; - - // convert radians to degrees - Astartθ = Math.toDegrees(Astartθ); - Adiffθ = Math.toDegrees(Adiffθ); - - Logger.out("Astartθ = " + Astartθ); - Logger.out("Adiffθ = " + Adiffθ); - - // in Arc2D, clockwise is negative - Arc2D arc = new Arc2D.Double(Altx, Alty, Arx*2, Ary*2, -Astartθ, -Adiffθ, Arc2D.OPEN); - g.draw(arc); - } - - private static double getRadian( - /*vector u*/double ux, double uy, /*vector v*/double vx, double vy) { - double dot = ux * vx + uy * vy; - double module = Math.sqrt( - (Math.pow(ux, 2) + Math.pow(uy, 2)) * (Math.pow(vx, 2) + Math.pow(vy, 2))); - - Logger.out("dot=" + dot + " m0dule=" + module); - - double θ = Math.acos(dot / module); - if (ux * vy - uy * vx < 0) θ = -θ; - return θ; - } -} diff --git a/src/com/applex/main/ViewPanel.java b/src/com/applex/main/ViewPanel.java deleted file mode 100644 index a5a1121..0000000 --- a/src/com/applex/main/ViewPanel.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.applex.main; - -import java.awt.Color; -import java.awt.Graphics; -import java.awt.Graphics2D; -import javax.swing.JPanel; - -import com.applex.logger.Logger; - -/** - * - * @author applex 2016-09-29 - * - */ - -public class ViewPanel extends JPanel{ - - private VectorDrawableOp mVop; - - private int mWidth, mHeight; - - private float mZoom = 1f; - - private boolean isSmooth = true; - - public ViewPanel(VectorDrawableOp vop) { - super(); - mVop = vop; - mWidth = Math.round(mVop.width); - mHeight = Math.round(mVop.height); - updateSize(); - } - - private void updateSize() { - int cw = (int)(mWidth * mZoom); - int ch = (int)(mHeight * mZoom); - Logger.out("cw = " + cw + " ch = " + ch); - setSize(cw, ch); - } - - @Override - protected void paintComponent(Graphics g) { - // TODO Auto-generated method stub - float scaleX = mWidth / mVop.vpWidht; - float scaleY = mHeight / mVop.vpHeigth; - scaleX *= mZoom; - scaleY *= mZoom; - g.clearRect(0, 0, getWidth(), getHeight()); - g.setColor(Color.BLACK); - for (String pathData : mVop.pathDatas) { - VectorDrawer.drawVector((Graphics2D)g, isSmooth, pathData, scaleX, scaleY); - } - } - - public float zoom(float change) { - // TODO Auto-generated method stub - float targetZoom = mZoom; - if (mZoom <= 1 && change < 0) { - // if zoom less or equals 1 and change less 1, targetZoom = zoom - |change| * 0.75 - targetZoom += change * 0.25f; - } else if (mZoom < 1 && change > 0) { - // if zoom less 1 and change greater 1, targetZoom = zoom - |change| * 0.75 - targetZoom += change * 0.25f; - } else { - targetZoom = mZoom + change; - } - float targetWidht = mWidth * targetZoom; - float targetHeight = mHeight * targetZoom; - - if (targetWidht < 10 || targetHeight < 10 || targetWidht > 1000 || targetHeight > 1000){ - return DefaultValues.UNCHANGED_ZOOM; - } - mZoom = targetZoom; - updateSize(); - return targetZoom; - } -} diff --git a/src/com/applex/main/XMLReader.java b/src/com/applex/main/XMLReader.java deleted file mode 100644 index bc245da..0000000 --- a/src/com/applex/main/XMLReader.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.applex.main; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; -import org.xmlpull.v1.XmlPullParserFactory; - -import com.applex.logger.Logger; - -/** - * - * @author applex 2016-09-29 - * - */ - -public class XMLReader { - - public static boolean readXml(String fileName, VectorDrawableOp vectorOp) { - File file = new File(fileName); - XmlPullParser xpp = null; - FileReader fr = null; - boolean ret = false; - try { - fr = new FileReader(file); - XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); - xpp = factory.newPullParser(); - xpp.setInput(fr); - int type = xpp.getEventType(); - StringBuilder sb = new StringBuilder(); - while(type != XmlPullParser.END_DOCUMENT){ - switch(type){ - case XmlPullParser.START_DOCUMENT: - System.out.println("Start document"); - break; - case XmlPullParser.START_TAG: - ret = vectorOp.readVector(xpp); - break; - case XmlPullParser.END_TAG: - break; - case XmlPullParser.TEXT: - break; - default:break; - } - sb.delete(0, sb.length()); - xpp.next(); - type = xpp.getEventType(); - } - System.out.println("End document"); - Logger.out("ret0=" + ret); - }catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - ret = false; - }catch (XmlPullParserException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - ret = false; - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - ret = false; - } finally { - try { - if(fr!=null){ - fr.close(); - } - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - ret = false; - } - } - Logger.out("ret=" + ret); - return ret; - } -} From 0381b6891694e2ad5db95660ff24e3ecb05e811b Mon Sep 17 00:00:00 2001 From: Applex007 <13167178850@163.com> Date: Wed, 16 Nov 2016 15:51:03 +0800 Subject: [PATCH 2/2] update jar package --- packages/VectorDrawableViewer.jar | Bin 75837 -> 75866 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/packages/VectorDrawableViewer.jar b/packages/VectorDrawableViewer.jar index db4a3e9b7ed1c84589e38808af5dc11a2d747c91..65edbb842aaf1bfe7a4498f49cd1006ca41bf69e 100644 GIT binary patch delta 1650 zcmYk62{hDO9LML*jHMY_hYVx>W*B5COZcfqynzr|(3c3C28qBxH32PY*_C1J9g97nIg_;j|-=!AvQmt<93^G_W>29qZ zv^aY`-%|CZUV)SJI_}l8;Xm^1R0`DT)N%e~aCgx8gyqY3n_jfYKfS;jnvXsTdaDasJYYHoUPaw68P<*TZd%=%iy69reG#)@-G-++qb=6;lNnoTLG1dmQD1&dF{|yGQn<+%r`^ z+nj)WxJj#2^gtQ2e#$u#o{5d$UO}D0%cdKw-7_5vuW*5(eG@}v zX@%v9mV#L*s<)utri<8Y3u)DD5ur2qEu3e%&%&Fp&~CI{=&Yzro=`ebW_>vP0wrn@ zn&~gr&5-fuSI7F4B;>n&zJX>H8qakoN7gRnRW*R(MkC{CjaF=6jRU>a4Z7F}g{2my z&tMgr@L_h(P|*~Ok-eN!fNIj5#YN>UM~v~mnBa$3-E-*_&|`uaC20+}x}}%IH!CB{ zjcQ}nt>&5eOa2?!k+kwT!8s(b9$9H10doXODL@le(gNCuWu^rj5jd&^yb*Y*1%eT< zAcF)1YRDi20d)vOAaD`_(FjaKAW;JMqqIRRke4*pe=P@prT}+Y$(p1%*p>>^(BxLO z;sS|n(W(sh>HtOfEEQ+~I((Z77+@5hrGg!3l~-^e4XlBgI%31*^}mJ!JVFC%@JAh> zf#wL=8+dB$$v!D|i;xJjB%v6(Vn^efe;ja{E?}Vh`u?`@@F!hhh#nhej}BAdY<=+o zCz?3-E;xV&0?}ckk~}(+6sBm>1Y2{0yi%aEo_Lcp9HjQjpMzkBZaZkg}R9UDM544_3loKa|L1O|gaL{TXD zqFpF~u$5uqX$piv0J^YJfHAD+fQ>-!4uEq=7^vuB00T)l6AMF=I28qhvJ__n)?}`4 zgm1_XmoXH05{%47V|q{cu(h-Wqb#<-tpA1(Zm$it!|Aw-e~NT!s&8K2&>hU?il>#N zlfwAi;HMf*tyVE$%bE5w;uF^-;tMN6lI_Ayz3*#?&gr)xH6^XDU?;Fj3XTRoIXE_F znQD03;SeqEuxb8gF{I^t&AJ2vb-q*9ulA%$$E}5A`ae>;@O0<7Ud!tRBu^dbl+Yc7HXadMzBx9u0as+J)qrw&u#68_lw>VvV|eH%)Qnn0N#j z-1K${yV~oYm#1ziDIfNxE?LKBGD4mhx7f#YjAih(0zKu{*0nP1AT8?ydEKXPxgS??_2XD=l{%*b;<$9%1}@ z#_9!c?AutqI)m1C`%0db`5Zg1)v-$cYifI<@kie~_txG?HsZ^>50rE{e-Pyq+Pv-; zsv(y@B6k!G**9o&>7Dy$)J|=+G4|5)Zg7fB(|T~EJ6k@?t@4@~&UP$oUyWm1n@^9D zuW`A*`uR9cv&(i1I>N(w6Q;z_tJ4IDK=4qEts{7bX^Rn^>Mpfg+5+<4++%%PrnV#Z zi)vVCYx>GrLsbItQk8g`>tcsU4#mETDgE)8Udc_ne>p0Z{m_iLx@(Vi*x#v9FN&)Wgx)RY&9itJ%tE7E&t0U1jL=07 z!uDVttAQcbf_jmHoewtAk7)F#-M7bqwGDBz+TubX3APoa4rp4p&F{Xe)g8Ie^bDbJ zy9vW$iGr+gcS&;Za`rsBG5TE&DRyS?@OY$v3Of8Afry5zR)~qQ%c;hPB9#Ek3f^5{|nNH?bqv>1q*Lv}~^}KYWCJ@jxGT*m$r58AXBW zRRJE-Qv@ooyH63=!f;6uP+;IHf?ycDl|VEMy-MIH3}j^x0z;`XI0=KK3WyQF!%P(r z0mQ2JQ=ESOW00^KaJ#4h(D6hX0~mll$bi7#$#j};n{4FT3H+S%4Bt?PP()yWT%To_ zep1>vY9JBdfHssw1QaB0MQ{&1G)Dwx$i;8)fZ@aw-$)+So