From 24428c5be7d4d0502e8a3c44aed3f77a2881d0e7 Mon Sep 17 00:00:00 2001 From: Alexander Kraus Date: Sun, 25 Feb 2024 11:27:24 +0100 Subject: [PATCH] Implemented tool for Linux and Windows. --- .gitignore | 162 +++++ LICENSE | 674 ++++++++++++++++++ README.md | 26 + example/__init__.py | 0 poetry.lock | 1154 +++++++++++++++++++++++++++++++ pyinstaller.spec | 76 ++ pyproject.toml | 27 + screenshot.png | Bin 0 -> 410982 bytes shader_minifier/__init__.py | 1 + shader_minifier/__main__.py | 130 ++++ shader_minifier/diffmodel.py | 210 ++++++ shader_minifier/entropy.py | 105 +++ shader_minifier/mainwindow.py | 223 ++++++ shader_minifier/mainwindow.ui | 186 +++++ shader_minifier/minifier.py | 244 +++++++ shader_minifier/scheduler.py | 110 +++ shader_minifier/team210.ico | Bin 0 -> 318 bytes shader_minifier/vcs.py | 134 ++++ shader_minifier/version.py | 115 +++ shader_minifier/versionmodel.py | 171 +++++ shader_minifier/watcher.py | 131 ++++ tests/__init__.py | 0 tests/simple_error_shader.frag | 10 + tests/simple_shader.frag | 10 + tests/test_minifier.py | 45 ++ 25 files changed, 3944 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 example/__init__.py create mode 100644 poetry.lock create mode 100644 pyinstaller.spec create mode 100644 pyproject.toml create mode 100644 screenshot.png create mode 100644 shader_minifier/__init__.py create mode 100644 shader_minifier/__main__.py create mode 100644 shader_minifier/diffmodel.py create mode 100644 shader_minifier/entropy.py create mode 100644 shader_minifier/mainwindow.py create mode 100644 shader_minifier/mainwindow.ui create mode 100644 shader_minifier/minifier.py create mode 100644 shader_minifier/scheduler.py create mode 100644 shader_minifier/team210.ico create mode 100644 shader_minifier/vcs.py create mode 100644 shader_minifier/version.py create mode 100644 shader_minifier/versionmodel.py create mode 100644 shader_minifier/watcher.py create mode 100644 tests/__init__.py create mode 100644 tests/simple_error_shader.frag create mode 100644 tests/simple_shader.frag create mode 100644 tests/test_minifier.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..20ccceb --- /dev/null +++ b/.gitignore @@ -0,0 +1,162 @@ +# Profiler output +*.prof + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..c9822d1 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# pyshader_minifier +Shader minifier interface and validation library for Python with a neat UI. + +![Screenshot](https://github.com/LeStahL/pyshader_minifier/blob/main/screenshot.png?raw=true) + +# Build +You need Python and poetry installed and in your system `PATH`. Before building, install the dependencies by running `poetry config virtualenvs.in-project true` and then `poetry install` from the source root. + +For debugging, run `poetry run python -m shader_minifier` from the source root. + +For building an executable, run `poetry run pyinstaller pyinstaller.spec` from the source root. The executable and a release archive will be generated in the `dist` subfolder. + +# Use +pyshader_minifier can +* Find and download all tagged shader minifier versions. +* Interface shader_minifier from python. +* Automatically validate input and minified sources to detect problems quickly. +* Watch a shader file for changes on disk in the background. +* Display the minified file sizes of successive iterations of a shader file and their relative size gain when compared to the unminified source. +* Display the diff between the current state's (minified or original) source and a reference state in the history to obtain fine grained information on what shader_minifier did. That's a neat way to know whether or not your newest smart optimization actually decreased the minified source size! +* Change between tagged shader_minifier versions quickly. +* Create a commit with the current crunching state by only pressing a button in the UI. +* Export the entire history of your crunching session to a JSON format (maybe you want to save that specific version you skipped over quickly?). + +# License +pyshader_minifier is (c) 2024 Alexander Kraus and GPLv3; see LICENSE for details. diff --git a/example/__init__.py b/example/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..b30b35d --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1154 @@ +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. + +[[package]] +name = "altgraph" +version = "0.17.4" +description = "Python graph (network) package" +optional = false +python-versions = "*" +files = [ + {file = "altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff"}, + {file = "altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406"}, +] + +[[package]] +name = "boto3" +version = "1.34.66" +description = "The AWS SDK for Python" +optional = false +python-versions = ">= 3.8" +files = [ + {file = "boto3-1.34.66-py3-none-any.whl", hash = "sha256:036989117c0bc4029daaa4cf713c4ff8c227b3eac6ef0e2118eb4098c114080e"}, + {file = "boto3-1.34.66.tar.gz", hash = "sha256:b1d6be3d5833e56198dc635ff4b428b93e5a2a2bd9bc4d94581a572a1ce97cfe"}, +] + +[package.dependencies] +botocore = ">=1.34.66,<1.35.0" +jmespath = ">=0.7.1,<2.0.0" +s3transfer = ">=0.10.0,<0.11.0" + +[package.extras] +crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] + +[[package]] +name = "botocore" +version = "1.34.66" +description = "Low-level, data-driven core of boto 3." +optional = false +python-versions = ">= 3.8" +files = [ + {file = "botocore-1.34.66-py3-none-any.whl", hash = "sha256:92560f8fbdaa9dd221212a3d3a7609219ba0bbf308c13571674c0cda9d8f39e1"}, + {file = "botocore-1.34.66.tar.gz", hash = "sha256:fd7d8742007c220f897cb126b8916ca0cf3724a739d4d716aa5385d7f9d8aeb1"}, +] + +[package.dependencies] +jmespath = ">=0.7.1,<2.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} + +[package.extras] +crt = ["awscrt (==0.19.19)"] + +[[package]] +name = "cached-path" +version = "1.6.2" +description = "A file utility for accessing both local and remote files through a unified interface" +optional = false +python-versions = ">3.8" +files = [ + {file = "cached_path-1.6.2-py3-none-any.whl", hash = "sha256:63ce7e69e4ec8c9fb577314ac53098b3ccbecced2596a7a921dad53976ff6e5a"}, + {file = "cached_path-1.6.2.tar.gz", hash = "sha256:c9cdccb7b0ca039c10c092a18275480d18e6fb295b5e2c1a10ee5c82dbbea39c"}, +] + +[package.dependencies] +boto3 = ">=1.0,<2.0" +filelock = ">=3.4,<3.14" +google-cloud-storage = ">=1.32.0,<3.0" +huggingface-hub = ">=0.8.1,<0.22.0" +requests = ">=2.0,<3.0" +rich = ">=12.1,<14.0" + +[package.extras] +dev = ["Sphinx (>=6.0,<8.0)", "beaker-py (>=1.13.2,<2.0)", "black (>=23.1.0,<25.0)", "build", "flaky", "furo (==2024.1.29)", "isort (>=5.12.0,<6.0)", "mypy (>=1.6.0,<2.0)", "myst-parser (>=1.0.0,<3.0)", "packaging", "pytest", "responses (==0.21.0)", "ruff", "setuptools", "sphinx-autobuild (==2021.3.14)", "sphinx-autodoc-typehints", "sphinx-copybutton (==0.5.2)", "twine (>=1.11.0)", "wheel"] + +[[package]] +name = "cachetools" +version = "5.3.3" +description = "Extensible memoizing collections and decorators" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cachetools-5.3.3-py3-none-any.whl", hash = "sha256:0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945"}, + {file = "cachetools-5.3.3.tar.gz", hash = "sha256:ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"}, +] + +[[package]] +name = "certifi" +version = "2024.2.2" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, +] + +[[package]] +name = "cffi" +version = "1.16.0" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "filelock" +version = "3.13.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] + +[[package]] +name = "fsspec" +version = "2024.3.1" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fsspec-2024.3.1-py3-none-any.whl", hash = "sha256:918d18d41bf73f0e2b261824baeb1b124bcf771767e3a26425cd7dec3332f512"}, + {file = "fsspec-2024.3.1.tar.gz", hash = "sha256:f39780e282d7d117ffb42bb96992f8a90795e4d0fb0f661a70ca39fe9c43ded9"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +devel = ["pytest", "pytest-cov"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +tqdm = ["tqdm"] + +[[package]] +name = "google-api-core" +version = "2.17.1" +description = "Google API client core library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-api-core-2.17.1.tar.gz", hash = "sha256:9df18a1f87ee0df0bc4eea2770ebc4228392d8cc4066655b320e2cfccb15db95"}, + {file = "google_api_core-2.17.1-py3-none-any.whl", hash = "sha256:610c5b90092c360736baccf17bd3efbcb30dd380e7a6dc28a71059edb8bd0d8e"}, +] + +[package.dependencies] +google-auth = ">=2.14.1,<3.0.dev0" +googleapis-common-protos = ">=1.56.2,<2.0.dev0" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" +requests = ">=2.18.0,<3.0.0.dev0" + +[package.extras] +grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0)"] +grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] +grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] + +[[package]] +name = "google-auth" +version = "2.28.2" +description = "Google Authentication Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-auth-2.28.2.tar.gz", hash = "sha256:80b8b4969aa9ed5938c7828308f20f035bc79f9d8fb8120bf9dc8db20b41ba30"}, + {file = "google_auth-2.28.2-py2.py3-none-any.whl", hash = "sha256:9fd67bbcd40f16d9d42f950228e9cf02a2ded4ae49198b27432d0cded5a74c38"}, +] + +[package.dependencies] +cachetools = ">=2.0.0,<6.0" +pyasn1-modules = ">=0.2.1" +rsa = ">=3.1.4,<5" + +[package.extras] +aiohttp = ["aiohttp (>=3.6.2,<4.0.0.dev0)", "requests (>=2.20.0,<3.0.0.dev0)"] +enterprise-cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"] +pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] +reauth = ["pyu2f (>=0.1.5)"] +requests = ["requests (>=2.20.0,<3.0.0.dev0)"] + +[[package]] +name = "google-cloud-core" +version = "2.4.1" +description = "Google Cloud API client core library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-cloud-core-2.4.1.tar.gz", hash = "sha256:9b7749272a812bde58fff28868d0c5e2f585b82f37e09a1f6ed2d4d10f134073"}, + {file = "google_cloud_core-2.4.1-py2.py3-none-any.whl", hash = "sha256:a9e6a4422b9ac5c29f79a0ede9485473338e2ce78d91f2370c01e730eab22e61"}, +] + +[package.dependencies] +google-api-core = ">=1.31.6,<2.0.dev0 || >2.3.0,<3.0.0dev" +google-auth = ">=1.25.0,<3.0dev" + +[package.extras] +grpc = ["grpcio (>=1.38.0,<2.0dev)", "grpcio-status (>=1.38.0,<2.0.dev0)"] + +[[package]] +name = "google-cloud-storage" +version = "2.16.0" +description = "Google Cloud Storage API client library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-cloud-storage-2.16.0.tar.gz", hash = "sha256:dda485fa503710a828d01246bd16ce9db0823dc51bbca742ce96a6817d58669f"}, + {file = "google_cloud_storage-2.16.0-py2.py3-none-any.whl", hash = "sha256:91a06b96fb79cf9cdfb4e759f178ce11ea885c79938f89590344d079305f5852"}, +] + +[package.dependencies] +google-api-core = ">=2.15.0,<3.0.0dev" +google-auth = ">=2.26.1,<3.0dev" +google-cloud-core = ">=2.3.0,<3.0dev" +google-crc32c = ">=1.0,<2.0dev" +google-resumable-media = ">=2.6.0" +requests = ">=2.18.0,<3.0.0dev" + +[package.extras] +protobuf = ["protobuf (<5.0.0dev)"] + +[[package]] +name = "google-crc32c" +version = "1.5.0" +description = "A python wrapper of the C library 'Google CRC32C'" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-crc32c-1.5.0.tar.gz", hash = "sha256:89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7"}, + {file = "google_crc32c-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:596d1f98fc70232fcb6590c439f43b350cb762fb5d61ce7b0e9db4539654cc13"}, + {file = "google_crc32c-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:be82c3c8cfb15b30f36768797a640e800513793d6ae1724aaaafe5bf86f8f346"}, + {file = "google_crc32c-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:461665ff58895f508e2866824a47bdee72497b091c730071f2b7575d5762ab65"}, + {file = "google_crc32c-1.5.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2096eddb4e7c7bdae4bd69ad364e55e07b8316653234a56552d9c988bd2d61b"}, + {file = "google_crc32c-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:116a7c3c616dd14a3de8c64a965828b197e5f2d121fedd2f8c5585c547e87b02"}, + {file = "google_crc32c-1.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5829b792bf5822fd0a6f6eb34c5f81dd074f01d570ed7f36aa101d6fc7a0a6e4"}, + {file = "google_crc32c-1.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:64e52e2b3970bd891309c113b54cf0e4384762c934d5ae56e283f9a0afcd953e"}, + {file = "google_crc32c-1.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:02ebb8bf46c13e36998aeaad1de9b48f4caf545e91d14041270d9dca767b780c"}, + {file = "google_crc32c-1.5.0-cp310-cp310-win32.whl", hash = "sha256:2e920d506ec85eb4ba50cd4228c2bec05642894d4c73c59b3a2fe20346bd00ee"}, + {file = "google_crc32c-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:07eb3c611ce363c51a933bf6bd7f8e3878a51d124acfc89452a75120bc436289"}, + {file = "google_crc32c-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273"}, + {file = "google_crc32c-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298"}, + {file = "google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57"}, + {file = "google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8485b340a6a9e76c62a7dce3c98e5f102c9219f4cfbf896a00cf48caf078d438"}, + {file = "google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906"}, + {file = "google_crc32c-1.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f583edb943cf2e09c60441b910d6a20b4d9d626c75a36c8fcac01a6c96c01183"}, + {file = "google_crc32c-1.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:a1fd716e7a01f8e717490fbe2e431d2905ab8aa598b9b12f8d10abebb36b04dd"}, + {file = "google_crc32c-1.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:72218785ce41b9cfd2fc1d6a017dc1ff7acfc4c17d01053265c41a2c0cc39b8c"}, + {file = "google_crc32c-1.5.0-cp311-cp311-win32.whl", hash = "sha256:66741ef4ee08ea0b2cc3c86916ab66b6aef03768525627fd6a1b34968b4e3709"}, + {file = "google_crc32c-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:98cb4d057f285bd80d8778ebc4fde6b4d509ac3f331758fb1528b733215443ae"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd8536e902db7e365f49e7d9029283403974ccf29b13fc7028b97e2295b33556"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19e0a019d2c4dcc5e598cd4a4bc7b008546b0358bd322537c74ad47a5386884f"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02c65b9817512edc6a4ae7c7e987fea799d2e0ee40c53ec573a692bee24de876"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6ac08d24c1f16bd2bf5eca8eaf8304812f44af5cfe5062006ec676e7e1d50afc"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3359fc442a743e870f4588fcf5dcbc1bf929df1fad8fb9905cd94e5edb02e84c"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e986b206dae4476f41bcec1faa057851f3889503a70e1bdb2378d406223994a"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:de06adc872bcd8c2a4e0dc51250e9e65ef2ca91be023b9d13ebd67c2ba552e1e"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-win32.whl", hash = "sha256:d3515f198eaa2f0ed49f8819d5732d70698c3fa37384146079b3799b97667a94"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:67b741654b851abafb7bc625b6d1cdd520a379074e64b6a128e3b688c3c04740"}, + {file = "google_crc32c-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c02ec1c5856179f171e032a31d6f8bf84e5a75c45c33b2e20a3de353b266ebd8"}, + {file = "google_crc32c-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:edfedb64740750e1a3b16152620220f51d58ff1b4abceb339ca92e934775c27a"}, + {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84e6e8cd997930fc66d5bb4fde61e2b62ba19d62b7abd7a69920406f9ecca946"}, + {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a"}, + {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:998679bf62b7fb599d2878aa3ed06b9ce688b8974893e7223c60db155f26bd8d"}, + {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:83c681c526a3439b5cf94f7420471705bbf96262f49a6fe546a6db5f687a3d4a"}, + {file = "google_crc32c-1.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4c6fdd4fccbec90cc8a01fc00773fcd5fa28db683c116ee3cb35cd5da9ef6c37"}, + {file = "google_crc32c-1.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5ae44e10a8e3407dbe138984f21e536583f2bba1be9491239f942c2464ac0894"}, + {file = "google_crc32c-1.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:37933ec6e693e51a5b07505bd05de57eee12f3e8c32b07da7e73669398e6630a"}, + {file = "google_crc32c-1.5.0-cp38-cp38-win32.whl", hash = "sha256:fe70e325aa68fa4b5edf7d1a4b6f691eb04bbccac0ace68e34820d283b5f80d4"}, + {file = "google_crc32c-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:74dea7751d98034887dbd821b7aae3e1d36eda111d6ca36c206c44478035709c"}, + {file = "google_crc32c-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c6c777a480337ac14f38564ac88ae82d4cd238bf293f0a22295b66eb89ffced7"}, + {file = "google_crc32c-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:759ce4851a4bb15ecabae28f4d2e18983c244eddd767f560165563bf9aefbc8d"}, + {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f13cae8cc389a440def0c8c52057f37359014ccbc9dc1f0827936bcd367c6100"}, + {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e560628513ed34759456a416bf86b54b2476c59144a9138165c9a1575801d0d9"}, + {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1674e4307fa3024fc897ca774e9c7562c957af85df55efe2988ed9056dc4e57"}, + {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:278d2ed7c16cfc075c91378c4f47924c0625f5fc84b2d50d921b18b7975bd210"}, + {file = "google_crc32c-1.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d5280312b9af0976231f9e317c20e4a61cd2f9629b7bfea6a693d1878a264ebd"}, + {file = "google_crc32c-1.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8b87e1a59c38f275c0e3676fc2ab6d59eccecfd460be267ac360cc31f7bcde96"}, + {file = "google_crc32c-1.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7c074fece789b5034b9b1404a1f8208fc2d4c6ce9decdd16e8220c5a793e6f61"}, + {file = "google_crc32c-1.5.0-cp39-cp39-win32.whl", hash = "sha256:7f57f14606cd1dd0f0de396e1e53824c371e9544a822648cd76c034d209b559c"}, + {file = "google_crc32c-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:a2355cba1f4ad8b6988a4ca3feed5bff33f6af2d7f134852cf279c2aebfde541"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f314013e7dcd5cf45ab1945d92e713eec788166262ae8deb2cfacd53def27325"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b747a674c20a67343cb61d43fdd9207ce5da6a99f629c6e2541aa0e89215bcd"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f24ed114432de109aa9fd317278518a5af2d31ac2ea6b952b2f7782b43da091"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8667b48e7a7ef66afba2c81e1094ef526388d35b873966d8a9a447974ed9178"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:1c7abdac90433b09bad6c43a43af253e688c9cfc1c86d332aed13f9a7c7f65e2"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6f998db4e71b645350b9ac28a2167e6632c239963ca9da411523bb439c5c514d"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c99616c853bb585301df6de07ca2cadad344fd1ada6d62bb30aec05219c45d2"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ad40e31093a4af319dadf503b2467ccdc8f67c72e4bcba97f8c10cb078207b5"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd67cf24a553339d5062eff51013780a00d6f97a39ca062781d06b3a73b15462"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:398af5e3ba9cf768787eef45c803ff9614cc3e22a5b2f7d7ae116df8b11e3314"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b1f8133c9a275df5613a451e73f36c2aea4fe13c5c8997e22cf355ebd7bd0728"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ba053c5f50430a3fcfd36f75aff9caeba0440b2d076afdb79a318d6ca245f88"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:272d3892a1e1a2dbc39cc5cde96834c236d5327e2122d3aaa19f6614531bb6eb"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:635f5d4dd18758a1fbd1049a8e8d2fee4ffed124462d837d1a02a0e009c3ab31"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c672d99a345849301784604bfeaeba4db0c7aae50b95be04dd651fd2a7310b93"}, +] + +[package.extras] +testing = ["pytest"] + +[[package]] +name = "google-resumable-media" +version = "2.7.0" +description = "Utilities for Google Media Downloads and Resumable Uploads" +optional = false +python-versions = ">= 3.7" +files = [ + {file = "google-resumable-media-2.7.0.tar.gz", hash = "sha256:5f18f5fa9836f4b083162064a1c2c98c17239bfda9ca50ad970ccf905f3e625b"}, + {file = "google_resumable_media-2.7.0-py2.py3-none-any.whl", hash = "sha256:79543cfe433b63fd81c0844b7803aba1bb8950b47bedf7d980c38fa123937e08"}, +] + +[package.dependencies] +google-crc32c = ">=1.0,<2.0dev" + +[package.extras] +aiohttp = ["aiohttp (>=3.6.2,<4.0.0dev)", "google-auth (>=1.22.0,<2.0dev)"] +requests = ["requests (>=2.18.0,<3.0.0dev)"] + +[[package]] +name = "googleapis-common-protos" +version = "1.63.0" +description = "Common protobufs used in Google APIs" +optional = false +python-versions = ">=3.7" +files = [ + {file = "googleapis-common-protos-1.63.0.tar.gz", hash = "sha256:17ad01b11d5f1d0171c06d3ba5c04c54474e883b66b949722b4938ee2694ef4e"}, + {file = "googleapis_common_protos-1.63.0-py2.py3-none-any.whl", hash = "sha256:ae45f75702f7c08b541f750854a678bd8f534a1a6bace6afe975f1d0a82d6632"}, +] + +[package.dependencies] +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" + +[package.extras] +grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] + +[[package]] +name = "huggingface-hub" +version = "0.21.4" +description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "huggingface_hub-0.21.4-py3-none-any.whl", hash = "sha256:df37c2c37fc6c82163cdd8a67ede261687d80d1e262526d6c0ce73b6b3630a7b"}, + {file = "huggingface_hub-0.21.4.tar.gz", hash = "sha256:e1f4968c93726565a80edf6dc309763c7b546d0cfe79aa221206034d50155531"}, +] + +[package.dependencies] +filelock = "*" +fsspec = ">=2023.5.0" +packaging = ">=20.9" +pyyaml = ">=5.1" +requests = "*" +tqdm = ">=4.42.1" +typing-extensions = ">=3.7.4.3" + +[package.extras] +all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "mypy (==1.5.1)", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.1.3)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] +cli = ["InquirerPy (==0.3.4)"] +dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "mypy (==1.5.1)", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.1.3)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] +fastai = ["fastai (>=2.4)", "fastcore (>=1.3.27)", "toml"] +hf-transfer = ["hf-transfer (>=0.1.4)"] +inference = ["aiohttp", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)"] +quality = ["mypy (==1.5.1)", "ruff (>=0.1.3)"] +tensorflow = ["graphviz", "pydot", "tensorflow"] +testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "numpy", "pydantic (>1.1,<2.0)", "pydantic (>1.1,<3.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"] +torch = ["safetensors", "torch"] +typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)"] + +[[package]] +name = "idna" +version = "3.6" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, +] + +[[package]] +name = "jmespath" +version = "1.0.1" +description = "JSON Matching Expressions" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, + {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, +] + +[[package]] +name = "macholib" +version = "1.16.3" +description = "Mach-O header analysis and editing" +optional = false +python-versions = "*" +files = [ + {file = "macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c"}, + {file = "macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30"}, +] + +[package.dependencies] +altgraph = ">=0.17" + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "packaging" +version = "24.0" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, +] + +[[package]] +name = "parse" +version = "1.20.1" +description = "parse() is the opposite of format()" +optional = false +python-versions = "*" +files = [ + {file = "parse-1.20.1-py2.py3-none-any.whl", hash = "sha256:76ddd5214255ae711db4c512be636151fbabaa948c6f30115aecc440422ca82c"}, + {file = "parse-1.20.1.tar.gz", hash = "sha256:09002ca350ad42e76629995f71f7b518670bcf93548bdde3684fd55d2be51975"}, +] + +[[package]] +name = "pefile" +version = "2023.2.7" +description = "Python PE parsing module" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "pefile-2023.2.7-py3-none-any.whl", hash = "sha256:da185cd2af68c08a6cd4481f7325ed600a88f6a813bad9dea07ab3ef73d8d8d6"}, + {file = "pefile-2023.2.7.tar.gz", hash = "sha256:82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc"}, +] + +[[package]] +name = "protobuf" +version = "4.25.3" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "protobuf-4.25.3-cp310-abi3-win32.whl", hash = "sha256:d4198877797a83cbfe9bffa3803602bbe1625dc30d8a097365dbc762e5790faa"}, + {file = "protobuf-4.25.3-cp310-abi3-win_amd64.whl", hash = "sha256:209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8"}, + {file = "protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c"}, + {file = "protobuf-4.25.3-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:e7cb0ae90dd83727f0c0718634ed56837bfeeee29a5f82a7514c03ee1364c019"}, + {file = "protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d"}, + {file = "protobuf-4.25.3-cp38-cp38-win32.whl", hash = "sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2"}, + {file = "protobuf-4.25.3-cp38-cp38-win_amd64.whl", hash = "sha256:c053062984e61144385022e53678fbded7aea14ebb3e0305ae3592fb219ccfa4"}, + {file = "protobuf-4.25.3-cp39-cp39-win32.whl", hash = "sha256:19b270aeaa0099f16d3ca02628546b8baefe2955bbe23224aaf856134eccf1e4"}, + {file = "protobuf-4.25.3-cp39-cp39-win_amd64.whl", hash = "sha256:e3c97a1555fd6388f857770ff8b9703083de6bf1f9274a002a332d65fbb56c8c"}, + {file = "protobuf-4.25.3-py3-none-any.whl", hash = "sha256:f0700d54bcf45424477e46a9f0944155b46fb0639d69728739c0e47bab83f2b9"}, + {file = "protobuf-4.25.3.tar.gz", hash = "sha256:25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c"}, +] + +[[package]] +name = "pyasn1" +version = "0.5.1" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pyasn1-0.5.1-py2.py3-none-any.whl", hash = "sha256:4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58"}, + {file = "pyasn1-0.5.1.tar.gz", hash = "sha256:6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c"}, +] + +[[package]] +name = "pyasn1-modules" +version = "0.3.0" +description = "A collection of ASN.1-based protocols modules" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, + {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"}, +] + +[package.dependencies] +pyasn1 = ">=0.4.6,<0.6.0" + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] + +[[package]] +name = "pygit2" +version = "1.14.1" +description = "Python bindings for libgit2." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pygit2-1.14.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:404d3d9bac22ff022157de3fbfd8997c108d86814ba88cbc8709c1c2daef833a"}, + {file = "pygit2-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:141a1b37fc431d98b3de2f4651eab8b1b1b038cd50de42bfd1c8de057ec2284e"}, + {file = "pygit2-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35152b96a31ab705cdd63aef08fb199d6c1e87fc6fd45b1945f8cd040a43b7b"}, + {file = "pygit2-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ea505739af41496b1d36c99bc15e2bd5631880059514458977c8931e27063a8d"}, + {file = "pygit2-1.14.1-cp310-cp310-win32.whl", hash = "sha256:793f49ce66640d41d977e1337ddb5dec9b3b4ff818040d78d3ded052e1ea52e6"}, + {file = "pygit2-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:46ae2149851d5da2934e27c9ac45c375d04af1e549f8c4cbb4e9e4de5f43dc42"}, + {file = "pygit2-1.14.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f5a87744e6c36f03fe488b975c73d3eaef22eadce433152516a2b8dbc4015233"}, + {file = "pygit2-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fff3d1aaf1d7372757888c4620347d6ad8b1b3a637b30a3abd156da7cf9476b"}, + {file = "pygit2-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc3326a5ce891ef26429ae6d4290acb80ea0064947b4184a4c4940b4bd6ab4a3"}, + {file = "pygit2-1.14.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:15db91695259f672f8be3080eb943889f7c8bdc5fbd8b89555e0c53ba2481f15"}, + {file = "pygit2-1.14.1-cp311-cp311-win32.whl", hash = "sha256:a03de11ba5205628996d867280e5181605009c966c801dbb94781bed55b740d7"}, + {file = "pygit2-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:9d96e46b94dc706e6316e6cc293c0a0692e5b0811a6f8f2738728a4a68d7a827"}, + {file = "pygit2-1.14.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8589c8c0005b5ba373b3b101f903d4451338f3dfc09f8a38c76da6584fef84d0"}, + {file = "pygit2-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4f371c4b7ee86c0a751209fac7c941d1f6a3aca6af89ac09481469dbe0ea1cc"}, + {file = "pygit2-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2378f9a70cea27809a2c78b823e22659691a91db9d81b1f3a58d537067815ac"}, + {file = "pygit2-1.14.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:acb849cea89438192e78eea91a27fb9c54c7286a82aac65a3f746ea8c498fedb"}, + {file = "pygit2-1.14.1-cp312-cp312-win32.whl", hash = "sha256:11058be23a5d6c1308303fd450d690eada117c564154634d81676e66530056be"}, + {file = "pygit2-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:67b6e5911101dc5ecb679bf241c0b9ee2099f4d76aa0ad66b326400cb4590afa"}, + {file = "pygit2-1.14.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c22027f748d125698964ed696406075dac85f114e01d50547e67053c1bb03308"}, + {file = "pygit2-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b6d1202d6a0c21281d2697321292aff9e2e2e195d6ce553efcdf86c2de2af1a"}, + {file = "pygit2-1.14.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:230493d43945e10365070d349da206d39cc885ae8c52fdeca93942f36661dd93"}, + {file = "pygit2-1.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:760614370fcce4e9606ff675d6fc11165badb59aaedc2ea6cb2e7ec1855616c2"}, + {file = "pygit2-1.14.1-cp39-cp39-win32.whl", hash = "sha256:acc7be8a439274fc6227e33b63b9ec83cd51fa210ab898eaadffb7bf930c0087"}, + {file = "pygit2-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:ed16f2bc8ca9c42af8adb967c73227b1de973e9c4d717bd738fb2f177890ca2c"}, + {file = "pygit2-1.14.1.tar.gz", hash = "sha256:ec5958571b82a6351785ca645e5394c31ae45eec5384b2fa9c4e05dde3597ad6"}, +] + +[package.dependencies] +cffi = ">=1.16.0" +setuptools = {version = "*", markers = "python_version >= \"3.12\""} + +[[package]] +name = "pygments" +version = "2.17.2" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, +] + +[package.extras] +plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyinstaller" +version = "6.5.0" +description = "PyInstaller bundles a Python application and all its dependencies into a single package." +optional = false +python-versions = "<3.13,>=3.8" +files = [ + {file = "pyinstaller-6.5.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:81ec15c0deb8c7a0f95bea85b49eecc2df1bdeaf5fe487a41d97de6b0ad29dff"}, + {file = "pyinstaller-6.5.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:5f432f3fdef053989e0a44134e483131c533dab7637e6afd80c3f7c26e6dbcc9"}, + {file = "pyinstaller-6.5.0-py3-none-manylinux2014_i686.whl", hash = "sha256:6ffd76a0194dac4df5e66dcfccc7b597f3eaa40ef9a3f63548f260aa2c187512"}, + {file = "pyinstaller-6.5.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:a54968df2228f0128607b1dced41bbff94149d459987fb5cd1a41893e9bb85df"}, + {file = "pyinstaller-6.5.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:0dae0edbe6d667b6b0ccd8c97a148f86474a82da7ce582296f9025f4c7242ec6"}, + {file = "pyinstaller-6.5.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:7c76bfcb624803c311fa8fb137e4780d0ec86d11b7d90a8f43f185e2554afdcc"}, + {file = "pyinstaller-6.5.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:6cfee8a74ea2d3a1dc8e99e732a87b314739dc14363778143caac31f8aee9039"}, + {file = "pyinstaller-6.5.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:9d828213aea5401bb33a36ca396f8dc76a59a25bce1d76a13c9ad94ba29fbe42"}, + {file = "pyinstaller-6.5.0-py3-none-win32.whl", hash = "sha256:61865eee5e0d8f8252722f6d001baec497b7cee79ebe62c33a6ba86ba0c7010d"}, + {file = "pyinstaller-6.5.0-py3-none-win_amd64.whl", hash = "sha256:e1266498893ce1d6cc7337e8d2acbf7905a10ed2b7c8377270117d6b7b922fc4"}, + {file = "pyinstaller-6.5.0-py3-none-win_arm64.whl", hash = "sha256:1b3b7d6d3b18d76a833fd5a4d7f4544c5e2c2a4db4a728ea191e62f69d5cc33c"}, + {file = "pyinstaller-6.5.0.tar.gz", hash = "sha256:b1e55113c5a40cb7041c908a57f212f3ebd3e444dbb245ca2f91d86a76dabec5"}, +] + +[package.dependencies] +altgraph = "*" +macholib = {version = ">=1.8", markers = "sys_platform == \"darwin\""} +packaging = ">=22.0" +pefile = {version = ">=2022.5.30", markers = "sys_platform == \"win32\""} +pyinstaller-hooks-contrib = ">=2024.3" +pywin32-ctypes = {version = ">=0.2.1", markers = "sys_platform == \"win32\""} +setuptools = ">=42.0.0" + +[package.extras] +completion = ["argcomplete"] +hook-testing = ["execnet (>=1.5.0)", "psutil", "pytest (>=2.7.3)"] + +[[package]] +name = "pyinstaller-hooks-contrib" +version = "2024.3" +description = "Community maintained hooks for PyInstaller" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyinstaller-hooks-contrib-2024.3.tar.gz", hash = "sha256:d18657c29267c63563a96b8fc78db6ba9ae40af6702acb2f8c871df12c75b60b"}, + {file = "pyinstaller_hooks_contrib-2024.3-py2.py3-none-any.whl", hash = "sha256:6701752d525e1f4eda1eaec2c2affc206171e15c7a4e188a152fcf3ed3308024"}, +] + +[package.dependencies] +packaging = ">=22.0" +setuptools = ">=42.0.0" + +[[package]] +name = "pyopengl" +version = "3.1.7" +description = "Standard OpenGL bindings for Python" +optional = false +python-versions = "*" +files = [ + {file = "PyOpenGL-3.1.7-py3-none-any.whl", hash = "sha256:a6ab19cf290df6101aaf7470843a9c46207789855746399d0af92521a0a92b7a"}, + {file = "PyOpenGL-3.1.7.tar.gz", hash = "sha256:eef31a3888e6984fd4d8e6c9961b184c9813ca82604d37fe3da80eb000a76c86"}, +] + +[[package]] +name = "pyqt6" +version = "6.6.1" +description = "Python bindings for the Qt cross platform application toolkit" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "PyQt6-6.6.1-cp38-abi3-macosx_10_14_universal2.whl", hash = "sha256:6b43878d0bbbcf8b7de165d305ec0cb87113c8930c92de748a11c473a6db5085"}, + {file = "PyQt6-6.6.1-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5aa0e833cb5a79b93813f8181d9f145517dd5a46f4374544bcd1e93a8beec537"}, + {file = "PyQt6-6.6.1-cp38-abi3-win_amd64.whl", hash = "sha256:03a656d5dc5ac31b6a9ad200f7f4f7ef49fa00ad7ce7a991b9bb691617141d12"}, + {file = "PyQt6-6.6.1.tar.gz", hash = "sha256:9f158aa29d205142c56f0f35d07784b8df0be28378d20a97bcda8bd64ffd0379"}, +] + +[package.dependencies] +PyQt6-Qt6 = ">=6.6.0" +PyQt6-sip = ">=13.6,<14" + +[[package]] +name = "pyqt6-qt6" +version = "6.6.2" +description = "The subset of a Qt installation needed by PyQt6." +optional = false +python-versions = "*" +files = [ + {file = "PyQt6_Qt6-6.6.2-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:7ef446d3ffc678a8586ff6dc9f0d27caf4dff05dea02c353540d2f614386faf9"}, + {file = "PyQt6_Qt6-6.6.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b8363d88623342a72ac17da9127dc12f259bb3148796ea029762aa2d499778d9"}, + {file = "PyQt6_Qt6-6.6.2-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:8d7f674a4ec43ca00191e14945ca4129acbe37a2172ed9d08214ad58b170bc11"}, + {file = "PyQt6_Qt6-6.6.2-py3-none-win_amd64.whl", hash = "sha256:5a41fe9d53b9e29e9ec5c23f3c5949dba160f90ca313ee8b96b8ffe6a5059387"}, +] + +[[package]] +name = "pyqt6-sip" +version = "13.6.0" +description = "The sip module support for PyQt6" +optional = false +python-versions = ">=3.7" +files = [ + {file = "PyQt6_sip-13.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d6b5f699aaed0ac1fcd23e8fbca70d8a77965831b7c1ce474b81b1678817a49d"}, + {file = "PyQt6_sip-13.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:8c282062125eea5baf830c6998587d98c50be7c3a817a057fb95fef647184012"}, + {file = "PyQt6_sip-13.6.0-cp310-cp310-win32.whl", hash = "sha256:fa759b6339ff7e25f9afe2a6b651b775f0a36bcb3f5fa85e81a90d3b033c83f4"}, + {file = "PyQt6_sip-13.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:8f9df9f7ccd8a9f0f1d36948c686f03ce1a1281543a3e636b7b7d5e086e1a436"}, + {file = "PyQt6_sip-13.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5b9c6b6f9cfccb48cbb78a59603145a698fb4ffd176764d7083e5bf47631d8df"}, + {file = "PyQt6_sip-13.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:86a7b67c64436e32bffa9c28c9f21bf14a9faa54991520b12c3f6f435f24df7f"}, + {file = "PyQt6_sip-13.6.0-cp311-cp311-win32.whl", hash = "sha256:58f68a48400e0b3d1ccb18090090299bad26e3aed7ccb7057c65887b79b8aeea"}, + {file = "PyQt6_sip-13.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:0dfd22cfedd87e96f9d51e0778ca2ba3dc0be83e424e9e0f98f6994d8d9c90f0"}, + {file = "PyQt6_sip-13.6.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:3bf03e130fbfd75c9c06e687b86ba375410c7a9e835e4e03285889e61dd4b0c4"}, + {file = "PyQt6_sip-13.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:43fb8551796030aae3d66d6e35e277494071ec6172cd182c9569ab7db268a2f5"}, + {file = "PyQt6_sip-13.6.0-cp312-cp312-win32.whl", hash = "sha256:13885361ca2cb2f5085d50359ba61b3fabd41b139fb58f37332acbe631ef2357"}, + {file = "PyQt6_sip-13.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:24441032a29791e82beb7dfd76878339058def0e97fdb7c1cea517f3a0e6e96b"}, + {file = "PyQt6_sip-13.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3075d8b325382750829e6cde6971c943352309d35768a4d4da0587459606d562"}, + {file = "PyQt6_sip-13.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a6ce80bc24618d8a41be8ca51ad9f10e8bc4296dd90ab2809573df30a23ae0e5"}, + {file = "PyQt6_sip-13.6.0-cp38-cp38-win32.whl", hash = "sha256:fa7b10af7488efc5e53b41dd42c0f421bde6c2865a107af7ae259aff9d841da9"}, + {file = "PyQt6_sip-13.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:9adf672f9114687533a74d5c2d4c03a9a929ad5ad9c3e88098a7da1a440ab916"}, + {file = "PyQt6_sip-13.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:98bf954103b087162fa63b3a78f30b0b63da22fd6450b610ec1b851dbb798228"}, + {file = "PyQt6_sip-13.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:39854dba35f8e5a4288da26ecb5f40b4c5ec1932efffb3f49d5ea435a7f37fb3"}, + {file = "PyQt6_sip-13.6.0-cp39-cp39-win32.whl", hash = "sha256:747f6ca44af81777a2c696bd501bc4815a53ec6fc94d4e25830e10bc1391f8ab"}, + {file = "PyQt6_sip-13.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:33ea771fe777eb0d1a2c3ef35bcc3f7a286eb3ff09cd5b2fdd3d87d1f392d7e8"}, + {file = "PyQt6_sip-13.6.0.tar.gz", hash = "sha256:2486e1588071943d4f6657ba09096dc9fffd2322ad2c30041e78ea3f037b5778"}, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pywin32-ctypes" +version = "0.2.2" +description = "A (partial) reimplementation of pywin32 using ctypes/cffi" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"}, + {file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rich" +version = "13.7.1" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rsa" +version = "4.9" +description = "Pure-Python RSA implementation" +optional = false +python-versions = ">=3.6,<4" +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "s3transfer" +version = "0.10.1" +description = "An Amazon S3 Transfer Manager" +optional = false +python-versions = ">= 3.8" +files = [ + {file = "s3transfer-0.10.1-py3-none-any.whl", hash = "sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d"}, + {file = "s3transfer-0.10.1.tar.gz", hash = "sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19"}, +] + +[package.dependencies] +botocore = ">=1.33.2,<2.0a.0" + +[package.extras] +crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] + +[[package]] +name = "setuptools" +version = "69.2.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c"}, + {file = "setuptools-69.2.0.tar.gz", hash = "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "snakeviz" +version = "2.2.0" +description = "A web-based viewer for Python profiler output" +optional = false +python-versions = ">=3.7" +files = [ + {file = "snakeviz-2.2.0-py2.py3-none-any.whl", hash = "sha256:569e2d71c47f80a886aa6e70d6405cb6d30aa3520969ad956b06f824c5f02b8e"}, + {file = "snakeviz-2.2.0.tar.gz", hash = "sha256:7bfd00be7ae147eb4a170a471578e1cd3f41f803238958b6b8efcf2c698a6aa9"}, +] + +[package.dependencies] +tornado = ">=2.0" + +[[package]] +name = "tornado" +version = "6.4" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">= 3.8" +files = [ + {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, + {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, + {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, + {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, + {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, +] + +[[package]] +name = "tqdm" +version = "4.66.2" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.66.2-py3-none-any.whl", hash = "sha256:1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"}, + {file = "tqdm-4.66.2.tar.gz", hash = "sha256:6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "typing-extensions" +version = "4.10.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, +] + +[[package]] +name = "urllib3" +version = "2.2.1" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.11,<3.13" +content-hash = "51d8cba4c8367f8b3181bb739ab6e3e0a1e2b91635aff75006eb045669a81a58" diff --git a/pyinstaller.spec b/pyinstaller.spec new file mode 100644 index 0000000..84e6a48 --- /dev/null +++ b/pyinstaller.spec @@ -0,0 +1,76 @@ +# -*- mode: python ; coding: utf-8 -*- +from os.path import abspath, join +from zipfile import ZipFile +from shader_minifier.version import Version +from platform import system +from pathlib import Path + + +moduleName = 'shader_minifier' +rootPath = Path(".") +buildPath = rootPath / 'build' +distPath = rootPath / 'dist' +sourcePath = rootPath / moduleName + +version = Version() +version.generateVersionModule(buildPath) + +block_cipher = None + +a = Analysis( + [ + sourcePath / '__main__.py', + ], + pathex=[], + binaries=[], + datas=[ + (buildPath / '{}.py'.format(Version.VersionModuleName), moduleName), + (sourcePath / 'team210.ico', moduleName), + (sourcePath / 'mainwindow.ui', moduleName), + ], + hiddenimports=[ + '_cffi_backend', + ], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False, +) +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) + +exe = EXE( + pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='{}-{}'.format(moduleName, version.describe()), + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=True, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, + icon=sourcePath / 'team210.ico' +) + +exeFileName = '{}-{}{}'.format(moduleName, version.describe(), '.exe' if system() == 'Windows' else '') +zipFileName = '{}-{}-{}.zip'.format(moduleName, version.describe(), 'windows' if system() == 'Windows' else 'linux') + +zipfile = ZipFile(distPath / zipFileName, mode='w') +zipfile.write(distPath / exeFileName, arcname=exeFileName) +zipfile.write(rootPath / 'README.md', arcname='README.md') +zipfile.write(rootPath / 'LICENSE', arcname='LICENSE') +zipfile.write(rootPath / 'screenshot.png', arcname='screenshot.png') +zipfile.close() diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..fe1f21f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,27 @@ +[tool.poetry] +name = "shader-minifier" +version = "0.1.0" +description = "Shader minifier interface and validation library for Python." +authors = ["Alexander Kraus "] +license = "GPLv3" +readme = "README.md" +packages = [ + { include="shader_minifier" }, + { include="tests" }, +] + +[tool.poetry.dependencies] +python = ">=3.11,<3.13" +PyOpenGL = "^3.1.7" +cached-path = "^1.6.0" +pygit2 = "^1.14.1" +parse = "^1.20.1" +pyqt6 = "^6.6.1" + +[tool.poetry.group.dev.dependencies] +pyinstaller = "^6.4.0" +snakeviz = "^2.2.0" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..2b482088020343ff2cdf5b3b72f337c02b1e6a3b GIT binary patch literal 410982 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
xZ(yFk@c9nD6Za zvB;>iPZUoXiZFV3(##f$h_VsBoa=DZM5Q$3GWuJ3!D5~&@KVTHiaSVTlU#jYm;Z_C z-uY+lP~6C7Xa7|4^a-LJ)IvN|DD=+q5}I&GC|!fjtj9-gd-H2-b*dy`%e26f8)jVW zwn&8@fcZIiEUXaw+#CJ*S;SnQ-p%tv%W2vh7S+~P%8zD(YCXxhfuand?198^ZO*jp zx^P4gxh-Yv{EGh_&@>O`crp>#bbA&p-&CyGBZ>|F?aLXbPAhpz(U`LX3agnjm_=%b zf=-#sI;wLH>!?RMcl_7L-> zr-%q(^G(9d7^vT$@qwuT!j>u20u&F!sy+kl{bsdHuHWTc^qq*Kax;a_yVgX89WOgrNmhJJeU^e#{kMm?>USp%Bb7sHiq76GAwwa$U z^N}^nbW65yHpZkt!1ytiPC?c*R~`BmwKiAvv-@ke(Nehz-an_m!Uj?;*w9zQt zmGx8%x(AFR8%$bvGZm@ zK_DH-ier@GdhD}7Y0C?Ue)SvH1xPyT>Q;MRcnjcVim6DT@aX!|Q4t*w9n@@JICT}M zFT#BXI=8)5m2F@a!+7#p7I%(@ry};)itMonWUTnZ>GBEw7UT?>#+`}_HFfB$Tv*T` zJU@CL-+AP(qwyOxKF&98jb~q7uwim-z7y<|0d6p^rXGcOf+Z45?#ge7N24AT2!Q#* z-b8xG3pG7<7xCJ{6*t*1yz&t^4rT|x)A6wc$qg6Dnzevb@_oECrDo=^SUtpyH=;51 zy87!k2*SkAy7I{pERU6}*aYAoG^4cKOxFm;R?;OIf%0f-EpPqpC*fIIs@AVcaTXcY z#JIRLB+Dzp{~6tBk&kZNpv|WY7wG3L*46=084pV$4Eh0lnV(`5vRRvt{6p9G!lDWQ z-2>Aj6;y5}R$P7^HcYvHy1=84J+%g2eo($LG4V1ao0i)eBo(%h# zFMjnc)RAzur$g4;bJ}G2M&gNntia}$p3rx@sRLIMn(K`w^aQ~3Nvo?vX{D~-`}yoJ zu)(jsCacZi50BUv&yi!UfT5QAC5I;?7IziiYD#SkBipxBoLA)C3fOh=DV#4NBG;#~ zf`7hknTXvesm=f0s!h!)>6|(MSIMRRB9nMLd^ht<@57Z;x8 z=2?1O_{n>scI$CiYxzPWpk)_JDE$ecd<@Z+gtZ;a)$GleJ~q#(<@Ki2Ql`bryKRl1 z;RDVx;-!J`pKMLGXw3UouxrljNTKM{r}_G7g;dxV1i9&#^T6`2t5DXwl1(U=I{tzbGz|NDNSY!ox-~i{hUk`aJomCm3CQDWdgf;F%_ylqP<201q%2t>1exgji7I!Ti zSx&qCTJ2vVUc{u&@0f$zhss;d6BCdY5;Ltg8s$UNFS-$vka`Mym5F_r*6e(JhN}G4 zxAF30IO^OkZebw+m?XK9tekjCYDiz9Qmh4jRYERapXvCr|_2|AFiYJFaN1 z?2UR*?Qv>uXR2#)E_7gRvf4j@^@m7@S=oE~d%myXvQHYvTod7W{f}BNV^}f`JkY4>4r|HZER@KVI!I}v@IO-+qg$8)_{7=w8!o@sq6n~oSFC) zD8BXpy2q;6Nu3|Y`Iv5F908b%c2{ouj#Qv8qSETqK(y)ln}xOrS6{18H<4Ip2(*A0DhCa0nlrPa2nc%tFaY$-zJc;cn zx}CgB+jCs~hsaF4(r1rjOFK@!szC@-68Ax)DObe^xl>ASQilBSKt7s;OVna3Y2~eC zph1OJqp?~xw?)E70W*}-nw+Q0Fe}Xn%?bGZ2_xjO4#;%nsZz+N3f;0W?nN&9Aq2DDkEwtYX|gc5 zm|{1higkZ7xIcbuC)SGcdb=9g@n(&px(^}0kku3%l(gMp4-eqQx|&`b*PcIdy2 z>|T71FrsO~$b8u=z z+8kl;H!`Za$YQro6ekH>4#=dR+AD)uZDK!R4Zr2(#oA=%3g>gxCAwMS7x9-!<=J$` zuU}v~xJmw79pmn2VsLWeu?`pT5MeJjMR@fXYEi9EoP1|hBz2TS3#dmi_3kj{&dQyb zW*LtRa0>u{XO~sau8t3&B>)0e97Bsk_T{N#J6uk7QkMFAC6)`C(Ra-a85cv(AA8y- z?Dn_-8KCy=bs!#XMQn0G$)>Y41$&*m;`>+9UbwBfbLRqhEhQmGhO#}&(XEbHM`4tw z;5A8hqVr`DoM8c2-Z9mEn(Xt{M#OPy9>k5if)!`@vH&se>GB2nAyk@psCi_$eaG|PkY!(v#{@D++d|`n2J3TVQ-*v>R`+I&+fiZbt>NgAvkma%MQQl z%Y!9rrdHZ$4c}XhpX;*J3EiDhGn5KJ!)t@Ns^(RhxQviooL5KRfJN|MvSBE;^=x4L zCuuXa5vY*3bYDi7sB2a4xQyA0ZAqWZZ`md(7B3dCLF8&BW%Zt=u^M@5|8_g_$Kr*0 zt+TH8vKyhTktQ?v-)=vcglSX_E{&INJlHgj02WQ0t|Y0L_GEfY=vZe3$k-$@wKRUO zS>+7ac(sxZh&;}~oJU*<-A#WN_f&~HJnG=fJ{YL;T=`07b>~`(OTR}lf%xrh2p$5K zxtk*VHeGHCcWJ3+p-Yn!gW471O24Ilh$Ad6iAp9q+feA^ukA7X+O}C>ew?xH{$$bU z?S6^?7J~e~+EA1TTb*SzF~mLAou1eyWkBF8ru_BHz_o|JbUYalwG1 z;ykXqspbp|Eq~qN`U4A45nd_sv*UAiNtzs$XcyMakuDE+c;lV8v%C8m0;pD|J@M5<6~KnZKS{9;`4#yAmm$os` zsyHY3zXOx{4#Ypx3W^m)0vkCU1$nYxj8UY8s3rft|4i=&RNvvmo(Lq*16t z6OY6j-_FZxtK>3YoIbI15L_S)e)cBeSaymTrJm7% zFc*x~S=&j=6F_2=jCC4X@;QFGC|sK_`KqzOqnD+;Jyzoz z+6R|jhd-3nd6ud*RLEW&92{J>iX@fLn{FOpEW|3XwJ24(|F18hp;#qLshIxvt;!c4 z^7j#nfM^82-G#NKyO{+=CK}m5+FE5O-;2sEK&X3CV4ds1FlF}Sq~5v+!)GWroe>Zo zh*LD_Z&D&K3v|tq=h?^Eiz>p|om&{8lhLd|Y6qR%eQUBB^x+v3C%!xum8(5Z_B)j; z@`A@M1yo}S;{G+c|J0-$t&SMT7FC9Wm}GkIww=-LJLlFqWk5x_)3* zk+gPvdY1*#Mc3?l<5~zv`N_Q5Y5dz;`3zbU#9jc=3=m18kMf!*XLCke2v!M}!62GU+ABaq*u}co zYNd7xyCqwfg>*$KZbJ{0wl;lf9hoo{Lg0!);gRM6FNiOt6%JTrQ?95cH}oMczB=$v z)pJ+#b>h$WZN^Sb7a6KH`~=bES(e6Q%S~^~Ps5)a9qXfeRLbTZ>q07`8?Qih#FN`u zX3_+d!(kg!Im>2LgNEXb(t^Y23vvl@^rb{47IsEO|5>Q?bXm`r*zfD#k5a;hep9j( z4hmx~M=*^VHz~xc#xdjWY_l%_s)(*WOp|@|&i}k;t+fz%*0H6b z7V7`C29==SmO?Y-9T6xF)+5IOMeXLJvC;<&tg0xpVR?d=cv3WoWv5 zMdjNY{Qr71LQ%OCswh<(Q z$C7lb?dV+)G0=IVtH6*9;xKR|HQag(S5z%pN&JS_U{JTNp>twBY#EB2k*Xs6j`VY$ zmlSY0ljachMOSs%m9+(V8AHe`y5yFkf+4)nqze!@IpccCIV>I~J|JA_;JeOXij9>j zQ32O(EM^Z0W14HbU3n>A40GSXA!o(lJ^vvM-nT#) z9Ez#k@~XsAL|%}|&2@vq!vWnpkafbU_m;Nb9cv%EO)htXY-K}fXaBCvLaQ6fkS#s6 zJs+R|sljQbfUFNi-M*Ge%gmq)IY;mrL1N~_x;8&2F&&2Y9N@Q{F+TECCypbXTkLWV zO?d33?U9PYe)%KDlE~PVJS3|qCQdDrnVLi~>ZpS^0QPY}E{_z(=f{Nu)yWoNY&8p< zJJBS&{+5jyEJI>POodPU$W1SZH51_lN-YrFDA&(Awyx{4QDB;IJZ+E2F z;+*Bd^<%fU0Zor5Cv9rj#U2l_C=N+%?S#^4O(8=S?}c&4G+6=1Nr0s*V3F6T^V&nV zrKOCV>r~sQ7F^j~yS#%-1T;y02JCIEs0(olraJnX^4`sE<{LN!?%%9bn9ah!_3*!? zp%p_T(btUM<`*ajU2>ayQ%+=7483OrpNc4FedK`l)b82>$*_GZ81k2q^YwL}e{+RC zKcK{Eizkv1e8UTKXVwc*7uKkqw~Y8rQD1Qq+RP*zku?xby;}eru%&0^RwMvp9x5B-bKMJ91SGw%H7f8;)Q!-t`IF`r;%yw>fCZffHPl$e@;5N+{92}98* zhV{Rl%Nk-ID3gKcAN}wP0^VNI@b(&g2++7EM}<>3dvMuQ^xp>ayn&P_^Qty28ht_5 zrTh6TM3{qxS%ru$Xh`n5?vhqQOXN3Q35oO~9banH|^v=yXC&PO3Vd z2H)yS>AOMkr`djW!JmN!L;^pPlzcXs!&7y+fVGz5a;ln&HjeaNUdKB26W0SVc-nO5 zl3$l$fKQPEIFt6{XbF!>Tml6Uc8k^{4p=ZMa&fv9mE@jKyVHlAP5ZQy?P!4k0kx8)!><$nX#G7!FTO zJ8 zB|eCDDKPMJ5_`*rB`qyRkzZ<_dL?;J2M2#IMdIZ}5QXBR<)a!B;?D$()S0NhJ2K zWe&BulZM#S3pd0ja%j924k~{Fezwzw26z@sQdVeiZYaVo_0id??jT~im{!^&OtcjUl#D@a0oQ8c9I{2Yw|=H z7*$QVt3+7pJ7vE@3is?Q`A9||AchAmIG?IrjY54|7Z!o__4QrQ1paRmc|xaT>3b?S zw{U`g^0J-5a5KL5oTYttk_7ckLSAO#6dS6%amm4CiU8N}m^Uyz!qK{e$F<_@HPnhR zAM&-nk?PZ{vgr9iR_Fa0=5H!EgYkV3VdyRSdRK%kh+#VuRrqeoyRZgt2#ay{r|S_# z`-=+wI1>ev|4&U>PU>Q_Ng*yzJ0xxmi^ixLF6XXm%nrVD0n2qUzmE5kLP>05Bn!-U zH)#3q&hZ})xjyqOZy*QtSRWY!>Q;q!G1e&`ePXcbrosyCr%rn_qH!+Y@cbptcR>D6 zPoF2}#B@mYUCV%M$Rg0Jf`P*rME95oKF^YkrEqdc(X31!wGp0}s>v9pd8<5{f>1~` zKa3N>?O+{0x3uXT-3UaqzB0SS>d>cc9u7|4wT$tSCOR@w?EC5S{ZAxu2?Nd3b@P6A zlOLHB(sA-OpIrA|kw7bn`+V8U!dE8BX%T$N@?&QSDO~?x0o+QDk>FRDAf?pEY-l?@ z73tmK@2x2LtfzUc08X;9h;_YS0}s&TbLJoO7Kd`4fhmHUEfBUiC2zSGAuA`!w{5+F zW14>b43Z1pvcU7GUO8EO{5Jom5gzf5ru+E`F0*C?##)#~9^njVm%f#8IGsJ{`RSD+ zE$QIbcm~zz$h@Dm&JSGtVXT0f$|ff>*a5&{UHOPnjAK|lPpBid?q)S4Oc`bFSKd6qUs~8xCg`(Mp%m2Fe8lY? zqvXbRITKTRceaHq98HcH-rNE+%<4tj><&Kt`H&gvLxgDU@IVvsO3>`)KOU2qt8K!`H(nv zz>T#R^`iE@52iWgzT{X|HpNEquyV-XnN*GS@``@_9dVvDJJLphCY}uERe?CNqH^vc z^8=X&S0ly2jrh{a`9nnEH=A(j@^ANoMW{|QQZ|o4L4;W~F!UBej$e|qopwy&D}2Mh zB6U)na0BC}h+;KE7)>23{7YCz{iqnjl0!uIA1gH>)(thFx=mEE?^7{W1jUt14~i^GtRB$hC2w5rZBjG9mEOGo^C<8kQJtK>jzX1 zxNQVIP{?i!Euu3e51nATGRa^65JQ{6E+Sa(MY<`qVur$IwYAe0XIo0**@}~0s61hVELVW- z5Z**T;4%{COKb^^K@nsYAC*UMc1Jw}fO+`*!nei$%Z!UoYHInK@q}sjt<$ju2)?>~ zu4YPKX`#GhFyaer@Qu4>H2BR&+^MP!y6<0TjSa@Tw~!1=^bI!5R4fY{9%_*RY@j`z z@-s{iRPQg0yhqa}eF zRFCOMQ2aG_!j1c5i_H;2fjPk*=AxGL_?P?M*3z%4LSkqyNTg*lj!fZ4ZS;I)y~LzS zad(j? zoff+N<_+>?UG#~uDWxVT59SltKavZx35vKxX8|Pw6GsDR4Wk>QPz$g``*=Ll;vwL6ZDmMn9>kv?Pl^cuF9nv8QFE zfM7m`kIz#036Vf+d6wGH(yze!2wiSSg|c=9t()YY1gK4ejAE3t&b85Plakg!cqI-t@r^s@jF}Vv{9;(LqP&3iJ00l)cJ~t4G2g@1^4p*3*%F|?>D5NZa zXn1ua?Q@QQ%fP&jJJ=aJy|;V_1&l7OB^2AVh;nztk&56;><&}_EtEDux5+2P^E4R6 z+8VJ@!IV3f79UHy?(tx-lDNvS1Z0)xd*O~)jpDk90-%GydlsgLKFKRsq06AN{efjc z3Av2rc^kdoPRsofbbKqa^yIXL-_8+9KNOLAIH1pfa4J5VKRYw0z8F`I6OO2?Yj8@c zRv7{7Tbr{wg}s_X>~ix8z%I2PW;Gcl5-?33biV>QHHlq+gs9o%S_WeRJUM|!`Qwp< zQK2)f)xP@4jRhsT_ROmKDyXFWQe%rU+eRD6U6qI^sv+H3@#==`Ef7 z!^0RF*%2!KG)CBZ?q%h650wjDFVAQPtKN-1x54rd=5jq!a3Pl6WOvmw@U%5D@`ABU zLUThxVmrrvG3%$mhK>$-?q+rdiYHUy7yc{DzqinI0)y=$m#a#i#O4KUF#VX16=jC` zwAia5WmpJms6s#T34w*dfBa(u%Wt_u7c*6Ikp-jy#^Tlf2w00(NzniW|0(uls2O`iyuqMlSXVf2o;Wtc-N&3DnG(O(k%rOvZ8R zO119Q-56qhOoe|2uZ=onyKb^VrC|zRdS!I;=zvAQ-vC?+7F)BK;FGm|Nm(#Jfb)kP zlrqSS+ubCHX)r<@2mwNmXaiH2UDU%LqzoY9s(|qvqS+o z-Q}hOYkNLJe26O8PpxNh+A~y(JwNwFU;!<-2JWL%x^j=I^XUHZD~&vxf$SPfK)n#m ze&N4teKGA69RQxFG);f?{{Sy#p~!NLW^N1ar?3VHOsQxQRg3Ng=+PXnK@o|ki! z`59*=J#=m-nL)#0kQMW%5;K>2!ATRciIV+$$0&5_o;tW5D*I*gX3{8F+Zs8G3^5-! zU~u?0!Zs_pkyjHBXJKAvhwk_X3?}Vb|Cj1hkW)`=EXxcvA4C01j662c>W@wfpf4+` z`Ps^~gZ_-ft(4NRa27Ck%iurE_#JCa27cFR5e$zmv!vneiFxH$v7$TQW!K8oMw5e* z1VflFRPX@xow>CTg9A*}AP?gi-r3u1k4{WR@l=sXUbo;U%3?J!!C<~Pa8dz{4e2Lz zfu^vzJmfW+=@>aYh7cO-X~S4^mCK;nw8-@ZO0z2(Lof^NG6&)*HqakqCjj*gFDoJthg=P_x16+ z-Kv_qq`>IKMxey~(tlpl+25U8V#Tot-9RH&9CxDdgYeV2^>!# zsj-HqAxd*fvpXjR!)c<+<<=U@f1J}!^3WYMquXR6$8}`x-B55yqV8GP`>@B^>F}M^ zG`{nb21?mE_N?^4W|;`JT3IbQ>gpZDdm}p3E-$p)f9kNmhD~ZuFVoG`GD)>js;|rS zHsl+P-GP3r%{{eet>kzPr3~A00x3*=I1R$BYhekKV0iXyG+>ulRf)fPG&yJULPwg+ z64wHjHJ)}9UHN2D0vvF^B-qL`VTc2dV)Ffm4G-|ijQ2K;r$Y% znAe&>`<%G?4m(BGIDRmvCa)toeddSOt<@L_Jg~bUW5HDZ^8l>(8D?)|#DZ>TfKzHk z;#+uOUXi1+V>Us8xsI8SRjiW+v1yw3j!y@fM4$bF!Y9$Z;FnXI(Rd#e8P`IDT`a?U zYwX}8;Fy1BR)=X2pZFYr4WANRk1JT2V<_aolAAIu0Xxs5vqXGG{--odU$o@Ln10N+ z-GaXgB5S|A@313dneP5!7>dm}&_+2GNtT9W&b{n7 zyBF78=ZAWl$bj6Y%jHjOHzx?g4)FNm^1YU;tEHNyCVLw8esNU$C&s4Rb<~IsH{I+Z z{me@e7ImPZ+?Oj$F@+*OIuUNN;1b^33O0;Yuxro+eh*DR8oae`nS3T0tZT&dJYW5} zcRkJ;tszp2RGg~Z8z1~xdq5;k7L+af2L>+`f}a4Ca~3H}uh~CL5!L*_0?zR=NmlXR zmxYwN%BSDigc?K4)4{ebz24c;T^^^5?lXD)o-7RZ!fKEbGqHW+|CAL!uslnyhoDVV z1%i8`lg#M&FLiTL@C@Qua%MZRmv}FV)bq%WUubgpOs2GkW?beQLUyk%=fXb=`Y)M*pZ6CwYhAuoZDwaL2aECqBp3X8J*J^u<2`j1DQ9v?>;8{oTm2A z!=muFRHx>iIEPk|i0o78BaZ^mse-AG4wATVY{)E&ZW*oEy~#|msZCE-_K{KOZC5MD zGn$|V0_#{GW8GPgr;Az+YqzTN8-q3_nB-OEgbangeIqW7)LzC@T&mVS;Z0BH+abX- z_AK!>xOreWY}Dv*M6Hxv=oLTQ6n7IH5)&691{VNH$v(`hLC(?sYl>hs!qHvAxC-@o z#Ubcr069bsmkl3eg8K5PkH!+;SaHT?&Zv7@ExNBIaicfGUeVZ}G#)yNkDPIy*|BH% zgi8%yC45;3gjb;+wZl|yMY*`TH}W6 z9jwp926Fcupq;MOl8aeWJkCIo{C6GZDqlw~L3^ri5-fBO9LJ`6-8cU8>`vdn4KEpALP=a-{VY6WphjN z6tTFqzh`cau;c3E?nv3FgWZLg2AYUfJ!LJc0NoA&0>itAfSOL=J#*q6yRHh|dT}p} zv(^CW;{lHa*?*jC?K_-d(?wcP%73T<#YnZf(L9vE$=Pl+h`oH!3@l}wwY3;TDXUm3 z$~TnbNUz3tbV4s21z$*PX-gn?5P4GkYecP)upwhc#iLc zFJkH8d}S<&fpP(#22ebksR{;VQAmH6&e86jn&eKVrI$K-Tw}JKjQSdHwHmC?7!+Km z^Zxn6O${K<_+nzGC}ZNi<8i-y4M*2)2awA3)*LkUy|{KF(bkxq7k?l{?D7iuCS|+a zI^Svq7y8_FBmWCGseNzu+Q5mfd(({tOkYIy0IlL9k#MC?qducXd7)^ZpOI{*z3a_!0+E4>5&i_FX=m2%7+M7GF{e+4R)j;l!*O6On z)tVrluR)2Snwdz%>4rG0p*}S<$uImX6YA;bi3?5y!e;uhsntlWWTNB4tgqyK3uGx= z7Eg~u+g2(#%#fRKQyy&JcsFWe6;zs<@6=GJ>I(ryda^9W-v%IY<*+LoU36GGa z1l=F8TlsW;uyD)y?Zbovhyr|{9CUvILk1_oKw{-3P>z0Jm&2LH}`?c;dBbafo4 z47TKY+`TtwcpR}SJQ-pt8deVpKG`mz&)ujNw0n&SuHTzMa4Pa$#5%(oXST3wxnp^I zS^R7$!6>_**emw8n@Oj^X}={_^hdL>&o%V8?q7Jf9;o2(I@8_1aH2ZGx+Y)xD63KS zZ&I=c(e8W#)TUDHSLbex+IpXoaMHHnH1@KAh4b9F$^^+s?D0t3OcK9>nGn4G0Vl@V zziEok=0of>dPa2hNxMHa-`yzs+nTtZjW>6+*9plj=hqgtmj_5kia;F>Q_`~}+wzAb zX(R~*btzGM@m|$@yoLw54>CzT!$Jl#&kX5;G((K1JG`f!&-Sueu6a$C{ZA+!0!uGYY@paO z#N#*6k>mZTh>?niJbMmcI2gS>__y!lmYO6`Zyo!aiV{6mls&b#VPeIq^ufH@tAwJz zBqqAYPrbN|5*Fl2aVSJ2df8xhtW1h`1Ca>?Tda9ck=t0h*mE$%+t-Z0m_JEm&3Zc=5g?l>>z;s{SUm(y>qA9>N5aGcQ6vpKF02#MuZmvjo- z8y~ojlhZc%S+y>reeecBD+-iu!ADbU$xwwx)k{5XdoN3Rukj4W47K+;ZLXiwK`iFy zNRi)VTcb7}OuOEeOdD&krX8{R;D9PUJ5_Zte90isfhDhmhWzP)#(j)yz?YbZ+-25i z7N$^Pzgn36aYXGjrR>4eztRYOy3CniH>5jVl&FrI*I1U=k8`4A(lpp&OZD4uD29@?RXy4M zhTs~@r>j7>dtogVU%vhrr>#s(;z>p5Kb2pHXP0`mhblxf$DMW-pI*5$|57u|)+mZ&i^wX%2%y(n%T+bwJHt*Z_WFR3ByOT9eQV zE+xHhf&=x~c;KzN4Dz?zAmgCtpj4gC^GDjmJomDVidxTl`wsm0o11EF#2#?yO(pSu z{vS^^(kuY96#3+iYHx|zGpWWXosn8&Y`_ynZcl&kYkh#aiyNj&aWYq(dN&aOqyzw( zcryKuvMQ+;ST91YYC4j9&&^ln%&LF#LPf*DT zn0_Np6~O$r6ypzgmZjuR++`#6YnPleh;SZ@?QK1#8MpftkXi8Zvbhem%0x=u-8~2h z?;=gh8jG(ed#b3@HDiW73qc)X6w4YV`AYt9SYSJ-_Mda2S~T!;X#qk+uB@R#(#)zd zyL+#KFdn0Giaq33)^$!E_Annjm#BTB)Ab}!tP-ffN)s`CqcnY<#1ib$0u8{oXw3~c ztqQ{3MGHfC8N|~^4K!{Ad(cCrh9|?if>svCJwF@HHjr7BZ8KaOJltE5(qhZ=$_yMj zfcNeQZ*YE;(QBFvB5aN4cyOWXImr7-YUs!a|8O3iQSiTm!WEPL}WdfoU zUP#2xfYrkjIlxoZ)_Hv6#iFv5@!ct4K|#Smn^oYTD8}9ojuXA$GDb*`iI9737Kh-$ z1AYGggkI0Pg}!lWW9)wB)|pcRNs=qv*1Nmfof}PdTcm#O+M||77ZMl^?aos~>(8S? z2%KNKaKD*4AHcgPpB%9jObU?C`%XwEiId+$m2uqs8yY1qj2ATF@-gJUfhxqQaRvk4 zo6?%BH`uHKc@=eHzl6B;J(y-h#@OP={M~UYR?rGt#(UTYaa{~BkZ~AwVVbEKJnY*| zAkPnU@yRBbtW>+Of7pmvVf?{mr2IfB1-6di-TncGEKX2j8nncJ8Q}`-r{k?EK0pD~ zy?za-#(19mpVP8HhilC;#UmTR!n!zKU-O3;^f%uRysaRHMAnVWy zHX%Ce@?8pF8(LPaJR|$XA8nEf``*>`d1HcMh)tDh`+s&)c(-1~ICmG1Jf_V<^+o|o z#3J?DU34N{EK&CsHcAV%H<5##hJJ-+++eGbg*1|5mVWk(?{9B2+UDo?os}1{LfMX? zzJ*V1aKxu=uh+*slF8FD3NmOWIMDa4XX5hi%{Z`!j!7ud(?)NU0)9kcJx>m=VRUHg}I>QWn{qs!15UrR!sk#e2 z^ShyBXer)WJhf}&P?AGeJS|0>zI3`IO=l`|mRop}`*Jgr8M70`e7Dw+_m}#LrICyn z8Mpr6ezr|DlcLN<){T0?WHK!}DJH@~g6FuK^-!qHlV1FJSO;3rf$X(g@+=XM#Lj}I zOOcrmzk{Fy{Oe+`8L&*Uz68TAzw~l4Z+&CmrfWgdhNc= z_->5e7O{$_U#4c@(chcgGZkjXs6jSR6Nb3^z7I;?1nE?8OJqeS@U9tw-DQdK47%af zg2>x1r&&B-2D(RDHNT{*$J%yVZPJYG6jc{Z9d9-M7j6Xp*I42EESP|)$L%SoSbGDQ z3F-!K2>u;b+Atjqcv#t{;7zEI?gx@Nela*gP!{hM~(HAy(VOt}n8Qk7JUheMA;7X2b&l z)y94KSC8h^kdFqx(gddOmWr2X;x{8&(DpwlB<%Mn<#g8iJJADlk~0YJMWKfP?yfm* zpP1Sv8gVdTXN)OIC>*=52);V?AYtwDnz$*Uv8JGz-B4i^yb!N4PxdvL6EiZ=B`2xa zq!j57k`ka_+j}yYMf#i#Kz$+HjyzA9AkvvbXNFQqhlt;c)c7($=IjB(Kj#bzKOO1h zz0v}U%I?VMBV?r|^-i@(=pTGB+bgLO@7_pV91!HSll$j|@2=n88k|4orUe%4Wi604 z>%vHrjV(5q#roXU@Luj1s(0tP7UuEz7eDL<x)jYZ_>)^SH^jZ929MzpHYcsPagD z8wY4UQ^TmJ?M$|9c(1ycXPK@ISvl#0F!S+m`@wY%p|9?+UcA>Nvr~41 zLUKRm%l>iaLb|;ki}j02M#XfYMd$Y9%}J)p=^`VV(@BkYEgN!-;#cFL;}r9*AJ{r$R)P(i;_zOLi#f8ao={32(kL#LXgTEINu> zmO6gE9i;b6VjWLwW3O`}$EUf~Qb+k`chL`P5C9`-629^EgBSy{?N$@zqX|b>I$=Z$ z?A%Y7Re;OQ-}&s7i@b#HX|FWsa=V|FDm9V2JCNHg0NFoL(u~GylyDs~_Drd!v1x@% z?Wge84ek1`4 zKNA%5bDc`3!BExie@PZ9`EHq?z0PI{?5}oqD8tq z!8=+)1ov2$xKoDs%|BFU?$hl66e#&TL&rpUu^(EGIKQbBdF6{w7dnT27oIfDj@Mg& z0<7`;DAlK(&&we+VVS_NSmZ^m&kW-Yp*I_jG-BPmD zC>+oFPt-dYaqOoq{SFpD?hEBFA4}bFLFQ%FKd9MS=r{+Z0ypa)|b@LO>b#~0}V}0GHLAe)+ zzmB~Mi?KpT6`2)xzbv^-&b~NvG$Qinaq)=c-N*iJ1IE!lQ>=L2vzf8 z=-iD&WefJ(5$&&wjvLmqR@)0@QisYoR_LaT&YXS(LoPCqe)N(1-62tRdIvwmWt>O& zZ>vPxIzlYHI?jl*;w=4S{0v|B!Gd z?UK=_Fp&r6V3w!CHD8^+y_jU5%vYq35|4T{Cmzn(kFc})Fs}t#Yqj0ugPpIU#Yp$| zx4DPlE?K0MF~<myJquS?2Z3}3(J+dt?(BhAQQUgtEDUQ9? zM%wPoTEr&M>XqdNaGMq0Oc3{el!9dO zS%nR|>w3Jo+eX~RGL>q&l>$8u!Z$=I%e{ypm4%rPsUj02Kx{wx){*fww}%~cLLgef z#-jWvBIj$azx!}r41{1dh|Ppx2!N>iwd)l+RNP|68FB|nntnCZVa#^PxmI6ACANVx zM&?Z$x*<519x5a@Sr@DsBRvUV^&Zsn%tSi{VE%0eoUL+S=Xgsg&SqsQ{P#!8X7qPL zn_rz?;vs~W9Y#Q7lTf3*o57|wPh6P3s8R^qt3zkCmk=*3w2YBby9#)vG8Qh^o2Pdr)S+(UBM<62Izp+rxY6cR5iz5 zK~O-Hk75|d1XrCk@-06#<-=ctM#Ca${aQ z9>J?)^so)|Pvf?5NH|2p_5`zOgI=@hwYh%=TSnubu{YhUS49?7&$-9(J)zbuJy{t% zc{=Z%+E?y1+~zblLE?d?8IQs>pDo6v{50`IY`NyRY&GOG)~bn?YZ(uO=L@z>TJtis?7U~v2Gwc&JTv>~yy)rzm~Xb-GkWphYTukR%XMQpSN__4^lvM5 zUCtbM9h%hr{GezAE}dx6=(zTh8oe-NwP?!>Ou`uA+|(^IQZZtK<93?fZ=@SH)@Tf}$ejgMq!heaYfma%PEXG9sr-D2zjs zUqFOn8le^fftD%UNqb|*?yRk})86Pe0(x7(vb>e>CYB{+5YM7w%*0eU@=qaVc`It zl>6t9_-f{6U;6tP<(bOE+hfXjMc6^}&H4Ud#*!O%unOVWo`8~oX#Vj)X6Nyp7c68T z?MRS!DOBH{j$%K!HwGRT^vBHB9TD=Y=SIP{7YhxfekqQ3rQowacnEJ9)0~kz!M?{y zRm|u6$>`x(U+r%XF6}2MXM9Z9y}OrdanIZMwR%&;A1^O20eqYZ7&B;&hx+Yy3s%QD z55HXxtlJ+KgUXjx#K+@?>OH0Q*X^T>%y@t-PPf_<_o!8eaWmEUg7LCzVYiQ@H-<#@ zVS=p-O8i;l7p5AVRdhFPDev99Aa|N1;=Zr}P_ZwN7L036g`B{5JppXqAZ6b4*1 zF|e{JzkYsUVdw5erABXnP7M-R8@S(Bpv^n3VvEGIgtPT!%B|UKT)P~ZW${O;@N2)92q)h^5H(ti*+$8a9?m9rjIDuL?wsN5 zR@R~86(`G-Gba_REHR$z|HU!3zZ?sy&jT(MRynzfAyDcJ_jZ=ewavHT`}J&c^T#T& zIz*{T*Yp7+@zI?E0)xq;2kckp@e{^(^2IlYI6+m z^)XQryvMckyNwZ^@P-5Pmc=`s_d7n@I^|z~R=|3gUJJY?iT zmW;I=!-<<(Ij2>ZeN9|IRqibyKzZIfw>(VNrR-v7qWmR2mw6wZI$)VrBwOuUjE@=9 zo`W0})@3E_=WLn;|6buvXdy}3deL{fA+7%PvJD4!r)AKrP84uV(eVsy)paM~WJjd( zHLLi$`Hb_l)g@_w+%w^fy4k;}3~TmKqxVbG{)eiW$=ct1RPbhuaXY-8FrK}_-&=q4 zwjWktY&DGn`BV^{u1Z}{Hk*JbxSpwe#p;C zyV!Y6KiPHyGfI^3ms@`a1i<(492Wn3-xGY1iSIHU)nZcx&0t}Mveg?!C_?$~VSK^5 zguZ6~{?qbh%DLV4rh$o1LnJD;ibx1>$+so^*Oav3`S(r#`htIeIfQ;mY|-?(&_vGT z)!B6*X;>EENJK~0@Xu(xKS>7v`_PY4=*g{SFPk;h7OpWo|DjMEaN*yR|3mcm*FW*` zpZ`mDhUP?X)^~#fY!In{)x#aD=>MJH$)OLWIFa?tiNo%%wf>$IjS3|vm5#4(1NvXH z^~28$Z`~n9rl9ixEGKwezi+8*7L%?XF+`>xnt!;mUU9yWQ}A7Qce=WwFQM{5V~_lY zUm0APab8|TK}ToN@1fk9&TwJohTWq7LwWE;(qJ*rmRY^h4+Y2Ce%BiK?^c`JZwy~o-2D90G#j9}i z9NxEcrXP@yki#Vdp@0Nlk_`SpVuZ*CMS7ZmjnD#nbEa&6Yi4>ZtGR zp|I7AtG%?8@`t^H!*?~nzIDuh-+rPhwJ1G$e=RjMQG?r1TG43(HI&v8Kyg`F-_hN- z!wEC0A4hRUfCodo_>^k&&H^rH)p1UvE819UO0(Wd)Eg_VEG|Z`l=|0>{CiY?t+VK= zE!)3Q^f!X~qeTACZ~`v<2gCoqJ&J#}JQXuCx1qC~qvMw0sq#luUFZJSCx*7VcF!s@9rW-uVDU}KHbW+~GO z_idZR|F^;ArvjG_gdmeU+da-$!(vwL$Z2?AF2iQE&yP=SHQ5DKxn-=Pu5lBR4=ihK zq!(>@Kg#W1u@cXOfJ)EPRM!eRPW56MM za+Q+LaE@N!-ctv1o}_!E(T8zH)96SfRKOW(iV(Z8yK$h%_7DcDXMVZ8=(k< zt4zbnEhDk;dHc^ zz!fN-lih#45dXap-}8j7NyH^v@iL5|C9EBU$1@`-wIVu-wd;imuY4&f8aYYEG!ckX znpd75-&!0Y9i^H&X*bl8vhDx#SA-5P!a?3EYu6IWrL)f;zM(Oh$N8ByjVh~~rXnJ0 z>*IZw!ohW~^>p?rL-oYo<@A{|{`#I>zAF*8(+%PTEs>bFW#f&iy01>_sI@*r`5%gD z7Xz3yn;M7*BTaFZrv&;HXe}+Tz;V{}QU0n|F&;mWi8e*n17A z1L?`RV!lFrPIXs=?Zuh$P*NgvBt}~syBQu@+fkF7GJx{D@xUy*Oc#QIo59l>7T4H> z*;~pvgL>cEVWyRcRiY2-Udqy*=gj&N&WW0OW>0zsbYbKodPYSouK0BsnZBi|k5+*` zp9akS%RGvaxn!ng^%-zRs2ir+Nm$hC>}<$+LSiWO$EZFq`7EgKu0WmS=tV_SLO#Nv6@36^tx z>M|}@^UXAZ<-)(-s)RYx%)pVc6-H4=$U@eLK8Oj*`Oa=_gcJmnxQ~^JO?93a+0Qbv zB#_esci-S>gu&X2e6-efsB0?2thNp+eUKflv)w5Mvs;|Kp05nlzP-t5w5Vnd9Y=*O zsp*WylP4XIi||Bj2JMBZL(?fNd}MR+&ACHLr0&j2)c(*k?kYpC`V5PpQpeEgZY3W^ z%ixfkZEI`GP`PmRwigk;WN~_R>m^=)>%~m7!D6hA5}{^A_6U9ng+mSV1UE9{$gSBa zY|`cv-dIj*NQ$y*((cadUAHx;q&tc$eqs4Hwup11XrY+F5>LnY`pEVrSa18rr`jT2 zn12avr%y=u$DnERs`Q1d34-M}uypy@u#WFacqWP*t_5(VQ%vYb>kf=SuuY}$+KDvaOb*9y zHozYKTvzc{XvQ{7p}cQR$>{rQ_-XalB8%90f^Y^xo(B#HN0%A-x<2f}yLjo( znKf_t1;GYfhK07ZE%V9D)H6&nRSl@#M@r>C{GR^c1jD^F>fz29r@*CM=NeJ6anbb2 zT223XJ4p7+c%Q`0T`nDtjbp2F>iP`ZwmAuJVh%$3-gc(*SEZ_@QzxGU12>yWx~Y6NSNR)$?*$Z6d?Q4;iKOk_9256B=jz0P7+K5p3-QDS zCS&8zA=&R*Ui)|2Q4Nn@t~O$Ser39nkIv%OUgC_MBv+6(#&{$1%s4)7Y#G)L>GhfX zW#lHstS;9+x#M2Q+&IkI^-l@34}BKK_psV@3R0}>FHf|iFbZV(6_oyvj3K?dL=K!v z(a_O3xr&Y0J@4lMm(}g)d_~;6meNd7e%mew9!<~skz?q%yJ&}+`x$nni_0dnJxy#j zDIpe8x05V6ZB=u*xMg>oBy0ml%CUX_JxN|4LV*i@TwL0WKIwbAPfM68f8n|TurVah z`^bSMBUGaY*w{xK!f&tOTSiqUCCkQZ5>mqUghzxvnv0pWiHBo)KF-?<$*GYxA7=<*}@v{F5!O=99@8 zJ(EY;LvV@dJvLp-?(8aK8{rBvsZz?h@h-S;I6j`v3_6Pqq6G0txjZs^qZVID9d~4Q zw+&FPPxEW4h~fjdClQ~QQ!fJ?OxL7)#8PPPXWq`s3)64!m%Vs5k|qM@jhaXtC#ho` z%v<^wZ+HrN4?Nq)kIiz#FSj)k%{vLBlV6*mavH`?mL@7^>nDV3c2(#h11B(QmjrLmeEUVjLSMY1~oOcbYA<_yAR+`ix!?Y0{)}UK!?i1yAx=A zuC;Tj^lA)FQQ1jrQjv@S7UcDj#E);$wtT$?IjL z7?;54k2y!!6oc#gLBpgcCZeSQr6Z4&B-qeZ;whSl>)BD(o@HxcWs&B4EKc6CI98o@ zv_sO3DVr#UYbnMRDx%5W)(SL>SH{sQ?P_}EeznccdY3cK%j<%hv#aBLDZ3gMcmJ-Z zr$D@<$&s(UBQPZ7e#=d7qF$mal9JPb2G;41--_H>jl(G?2ai{6=mkO-spxQB*n1cD zMPo_B{flAY;eR>Bj49qXXkUMSz(2RRzJCL&W`nV{gtVClLk(kL5i_&%Q&hihvF^Lao_1LXKTOr`k(6z+|+eQ-;e)dr{Eo-m%q zExycV{4ixJWAwOPh{O5HL+y5upUgn<*@SLeMdeb=cy8$Z)9(TMYc7uB)ZDHuap9}t zLN9~Yx#gM+JEjWZ;~l`-(^ls8x^Q{#HE1;J{?dnk@@O^M7J=@q^IB(6{waNz6LYays& z^DQ-*;Q8540MV?JhVM!?t6mqI)(13pj;sB+_qP^c){E0)+|F)VF=JOUaLKNC)$nG^ z$nLXdJh!thT!;d2GtovUwh{NAfYtoSs)=2LSVwTG=~c`vDHA{6tTC)oR*ODK9g>PO}OKKkEAJ2#DhxHF>n#b}_=292~z#?sLOeE;E2brzDI2~u) zg2$+}tUb82pw9_HZO!&n*|!;06nviVa0e7K6%;d)KIQrYtHpB*S`crmufa!E{O6jD z@7Z~3qP6Y5AC8Pn8}DS14cT)23z#^W<9}@xZ z#vtjVg0=?eNbU}!mp|5{iok=->}HZfSz>&3u8msR?$yyx&QcVQd_3I=Oem#wN%&zo z%?v$pS+H(njWk~8L+>3Q@0aXAGDUQm$C5DW?_M*Dd=r_cJEJew#`#uWR)@xBlBuTl z_kO58ZxYF3oyYI1XH%>qJ`}SWS3}ZuLSAHSh6gMhb~ZRb!3j1ZYU^8nRyU>{Si+cX zEz=$nJ~V=Fsb*Qa?TRmC@U_gaU9*2>g65zwWIi)KB+$99Pa*SUY3^yIvkUlH-HlQ) zu>OqsH{mB362Artv_Q*PH!I7&+`uybXacM_g-;~}WNBV%!3CW2KyhR{RW)Vwr^Hrz z4aDISg}VHddb&)`@mxu>RflxO=*eL&PY2#8JEJt#VHt2T`EsyCr$0c3)=CAiBf$fX zw)0C`dUC0o*DsWhBQ$N(46Q}s#L$qu`mCe^>-&J1<;Ag*%SVO#;mUrE#z)T!(H6!u zVWYMbk^5dW*I;3$c_OH>Ef+b3_j`O2PR^LVv&mdSVqm!zapmX6-V@qQEm-bBBPSkT zd>%(QxFR=0J1&opv@RzQ1jNJy{Kq+gn;r-N6w1?hv*_IH4b6(x8-x0fb)G^hyF*)45pdyv(Ra*q)4ZqLh zUq7IN_u&(jc?$CD8eq}E)yYcv)dM*jf1DV4)JFB?$~O50?s!qpSDf@b?{G$YUgDSN zYB^?HfH~EJ2bNAy*X!))C!|%EG^i(+ zfmNs84J?!cbIqwVv%AWZt$~!P!J`}Yw%KM$tji~QGiv~s{@|G#cw-Y?Li?NK1T#3kRE?Z@xxtd9%7ihRoc1;d<+PH60 zGRAB|2i{s z$HdiM<@hf2SCp4P4211d2R{Laz|%&Hv2I09$3NV-ndYPg{aOy5AtEcd($705(mb#z z?{Uoy&SJ5ZQS_SSQXRx;K?EG>s4_abhwT|%>e}oyri(Mfq1_T5lEq$KW& z#K*ELoEa`~P>#|`2>G3dzYZ%ub9%XPYXBmJOyF-^{R>_cY$_?T7r*Yft_oCq{k>1& zI$uxpV_Sr&oiHA^;d@a6&YiaCxi0lZrfN>O3M)vENJ4lGuJSru zVAHl-6IxIZk>uf*4Tyz^q|i+g?;fHdL?B&643nAN&B^Fld!48tyJI(a1)32+d23cW%xmfFXXWCykZ=hEx_n2~5Mg))Ri-vcZ6j zEa2O}T~Ur)-<2)`FMS0RgkKpJH1vzE=gwHJaPEBD=((hR(y5x640zPe&a%5+>Gdak z*xJW!V4_;=y{iDW(kOPlaQ>r}Ej@@qb|pPAU{{u)O<;W4rgQKrB%L_a%5Ki&ph3r! z6EwJMY~$}OECQs-dynoO3_KCwPO*}rO3Kz|>j$lk-iihEU@jmb&nGis3077rXIsQBPH zqfn*4Ghkx%d!?EDA|wZ+zhdIxVnAA69KA0W?Dg8*B(O`K87rvgbAh8>JM5}eNL32D zYeAe!W|+(TXfNR)yc`~*QWw=%Z#S`qcOKjp33rSB=f>6c$BLV!!`_Kz%x&YH{1MrX z72zn~m(5loYoQCp3*p^But6_gshJVMeS%4{ zwScrVcJxov*51^d(f9-v;PLgf#QMT=n4K{YUe^uL5DOd0{^ib^Sn#dY49L#fC+_7H zuCKuoSUbZNIY@X*wpoxsNm{9}?L{QcjT|!~+BjvWmndl(Uq=!^7OH}#EK4aRpdMu2 z#deyh$7dU73q=j}haP5@Pgm65fU6Wm&xfn4Bb4Pg&3Cr3#ZiK0Y1;FOPNF?mt8@2< zfid0lxg@9vq@5e36qsB%D8*D;roi1-{OXeuCw0}$$sJc?44!fo+i<6b%c|d1K-m+w z>T|c1KffY*v@ZoZLs7>sI;q*58qneBtphZ&clCXmO;Mda2OPb}P8Zc`bezyz( zb-(bQJLSU%in?RJB}wgeOI4rK!} z85h*TQ0(dUnU2(a%Y-0J9X|1BZ*{Q)!wyWqhJ?clW94q|y7J;f=PCU5!3FEfwOhTV zAC{Jgd<<0uUZCI_DJ3cZM%#HgIcaoF?8W}k1t$(Cr7){p$xX1RKeKpqxngJ|!-*)9 zQlP+lm?rPKTz`56`R`059vW{_z*(*G)l$3d-_k)q)SHkGSji`d1@IdqaY;N5uIItK zea35bPV$VvyqSPDP~Zf`OEZJ6bb%CnYb#obH&goh*I(_;1wq}zj<+M!Twvm7mzwYd z#i-f)P}jvTk8XCZ-Di?^p49pnPH{!m;S2bqN03QO5oZJEFWP zRtCR(MZV(ON`sFb+f13d9i3%#e}vRgUw@*l($s;fV~Pz#`mUzt){)JF$#k1zQDTg} zllJ6;pX2XLIx!P~foKIVB#rvs94-+_Y@Po(Dq*01)3|#5SSDy|3M>bcHdkoHL?~#` zY<=$Gc=Z6Yhxg*^bYktU@I3o@>2bV&MtqqEryB2mP=X&MM79}OmPb#;e5HG^$!pw8 z$c^q&Hkqdo4#)R_c36svi)WRW$G1}}& zFK4#37Vf^_fbkR=uy=V$*N6X7ENZ{=6o}s*3uXZ7Hr=aZ)c+H!% zkeQB-mttdF8&3<9BrcggMtO{HE7pIof05*%rnA1BhqeE%v8E%ZY4%Z^T8svW4*Iso zA|6KWiLXu66yR^7lt5mV@jHD??iU2VY<=WNAB}J_bX57&PT&CTBq{+l6r5ib20i}c z5jAOLC%aTn71agx`T58gkYee8Dn{eLzz|rtaw!}w-lzPC+xvxj6m1>00Vr1pYkCU2GW0_b#ivYg%5&j*O4 zP}HC5X7yZP%P4g--+B>&%HogZJ5@_Z98$w-A@jUtF+gs}!tD zZGmr972ldKCZoq3`#^w?BKmaBHRXMJ+P*lK;FJ>iwb5%+GMjU1-mfB((7G5D!DTMS|{PPLe0!vkC_y69?IqSaBa3N7xYPUu)5=m3MZyJSbfqd+jL z{^w+j86~3&!6mmoupNqP6#xQLk2pBK_(DxB-MSwj)=$~!SV-SUI%-X3JfP;w820&k zwnGa~+Lxmm90giZE7qAB{T+L~Z{mzdc|uBg_0XAGbA*xJk%~J?6;D-y7np=U4Xqoa z9Hu!i37z2x)c!j=3=Ti=bWCtzkX0Mom_U<-y`4Ad2(3A63Zmi<9xPVC+zDFv{0lm9 z`G}FX1D>cbxubOn<3)BHq6&JDfM{vBQVH$iK&$IHt_-J2!}azLG`lTM4h6}M-@&10 zV(xYxIDU46-42v{`uxNOc+*y&!H{Y)^9R4>)_-B-#;w8oh5oy7lyKm?l z9E~K=0S=jmeoHDX6Ga-ty;+NJ-rZ|NSbGH|HHNc5?bXMsFCr=$RG&{>iOctW;~6#O z&l4xL+bf9{Z7L!R_RH5}SNTf0U|F#)=`c)LhnK%3el4JQs;`e|X?f8(j=}>t;yEEX zDT3A18Q1PmJ|K#3r3}%H_`=s)mZP3+@|ofkr<-c;<&mzj~0KZh2PcP9dh3JiJKm31GwpUoF2dW5+VOY;er`*kF= z_AuAsjngwl#|D85{gF*yH1a;2EWseZl3KGFrYAR=%pr_p-k#dn4SaWPayxBSCgt_H zsC2y<>m2}ufr|(FKiO(EEqP$U1vXMiQ>_1gAuo|iwOB*wwD#2XPQIUT>fQ3!MjZF` zByZ7YJ+3k#C}VjYUay<)?{-u72Qx=I1alxkr5`ecYmbF8Awij)!Afb-iRiVDwK-?! z67vkb$mIf%0+7~y0#H6oaFMk$lUJI}R~XKZ%JFrcDGVXuOSTR2asg7prMCIlcH3~c zGq%o(*VhaP#(^6?7+Cul`{*x6E3M>dO;7P1mMrU%R66`FHSQ`i9K{Yu7voztJF%kv z#*s?gP3$F#X~FW^Hlh1r`&A|i2+zynyqd0%?EugL=RTJ0uUFd&OM_5s8sKag#MZ+H zFIk#~@%pu_=b$T?*^uo#ApW@>)-qW$46^iYQ17F9D{(2?gmNlo*_89JpzDDHtQ4AD z>){A;fVEnl3^c(y(u&=see~=O)(AT%DOqbB#Se*@RxxJ2U9#Z!pwdYfiUSRGgok8A zOZaO)umE+iV$_5Qf&|=I(S3_tyfGuGi2489JckO~E7=A@E&z5lMqgikOD{865%KB@`?3{EwG{oSE) zz7U1NX~<)wU1SQ8w%6}50~&D;#KldlTn=pr^R_qFM)GYpCRkfRe3=G%%I5BtoiKX6 z(1QE)va#@gcWX+c(M+Ut>0JUOL%JSfIA`ps@%v_rhWOVO9Y?Ugj%5*{xoj7Zr;gmADj2xKCw!Rqa`Tf~)n_BALx3`G0 zFaw2w&#Z`99=f=c{I?Q9jJzXWim-R;_MP_fe=r;W6TaooYsLyTAbP?~Nw$WPhfm&Y zk={;QP>rEpV)@ww2fLkAlDfuCt~L!Z?j+^0OML1>m|}l8VB(Q@pkno^LYxd&2pL>E zT^P(9N&K32nr+IWR=1Tsn=3T>5w=5UJ@Fa_MW#&%>gIOjnWgjqC^yyO!;s~PuF^hT zG@tu)Y*A8`skhc{qZ*f+M|Oq(28mdL;D0LcLcsGN*=MyCR9|DKVFlnu+xbeGRH4G3 zd>5k&68D2hhO7g7bN+{b03x=dAkKB7aW!*8h-IYzvMF{SEy0DaVn4|Xfldl zQ=mQy3f|QFC)=cly$WGL^Csd5N_b%%&!( zpt2jdKoI~d=d&-<$|ROUhLOZnjzvEX1HB-yl6eZalBNiFvww&=Bq_hd+)v6OP4m)R zc)}lj+xb}EMbztTeN>Q8p%>|fci#HLCQ7hU=V18<@BTbQXW^oi0WUa zajY`eV-if;soPsP+mOSLZfjc=u3*$rC^%i&5vU7tKS$e$nmP45TT2DbyetMSYsf@n z3|9(>zkw214My4+9WAtJzv%8G6r!~ zjo>b>vc^1k@S#Ie(ZV|C0*`jFIR%WGW!$kC@R&30$^4S1R7s$k&d>;bA9ZP`6n|MI zCLssSC;gY~f=oiUx)jyq0TYZ!LHySA z00ZiiL{Ay}#uH1yD1jRSs*Yfv|4ln|O#ly;sKOZV;7Z3iuV#>z*p2}I!zr-(mR{A8{wkn*P+ZFz?Pj?$k>ctzK+xc7 zhBfOv75YxuY*~SL@xsSZBR&(6^^+k#Ji2rw2-W(&BWud>{HA1l^c$n1P69!byS*3q z_UyA!!QHn$(`9;6#SSzGz8>RzKtW5fv;_jG%$<_CEJu@B7Cl88^>X;jyUd%_x|D)8 zicwej*sUWnvr~7!RkgV!MCx5$9$^V9TiS)LkZ-TA-o(?jIyTKcE6>=3t`q&L4{hrC z+Ek%ncu!EnKC6Lu>g8ABo&zOQ0X#>pdMz+pVCYtcf%LA8Z?LI`P%}Rje;Qx5ZU&q}rt|0?CFP+lsXV8;?K9{U@*IrSw{aIM z^{2|amaKn;z|Cde>J4__&eQZpD5@%5x=sh5?0G)l3Q$RfsY?7sQWfL?J8aBt-R#x3 zjC&X$&wM3vbE#Oi0e4#A9^T0q-)v|YoE&RuYO;mykBULG20>i;^gZGEbRP%demOeP z@|jy?rnSX=l4{#m~ORW!1TV?3=_1111ovR7(dpx zyg$E~M3~tQNY?)G!GX-_(Ah5g?&u=C2}!H}vqo4R*?dC7^({}$^J!;H6OVMLbZi3U zP_6=grGQGVlwU?`qSnetxkLbXy3>NGycgePPF^{S_D#AR{CK>1N=MHW21<>K@4(Na z5JAOk(}%L*bg4(k_v{(~Q5=g+zC`*d!sPx4VJHJzcVr8iU z?~rc7?qNFy3uRo5_5F;;QgcFC0B9t(&9kv>#K{tp!<%a~Sm}5LwA-?)9xt|HRpx+v z;>f-t$Jz|tTJTb37P+oge<^^zf;x9^*t$4cTA@gKCi57uo&acRQVVSHxsmDs*}skp z=HXPXm3pQfSwGUpTtclW^^d8uyb{ebwV|sDrpsclto@0EPkeV@o|Y_xH*B%2>-4JGF=;(LP`1~ zP?<&%kd^eShKM&h=`e{vr8Zwv5pEK0C^9j zYGW;Ea+jk;cx&%h51<8oupyRsv_;ajbkN}L~gL-0NTG~5yc1>h&RKWS3glJm3*tVXiatLVA@H#X5 zM%%l#N;l>ut*CtQ83$ilC)WSg0!V&{eET8ykiD;QBlUbVgVPjr?$KanunbEH#$hF3 zga#$`Kq^)GX`mOQt53>uO|pJ;3Mz{at~KVW!m!I`nP*JVp9 zo(*b=Xu>z$V{<@p^wZ}i9B0j|&Uj(lTdS3${LgcDohBGFjhIo(OXyuy<$6w^FyNA< zAmIZOhfQMlabk^@V_eGhW`}Rym7{3Z%D!V+MW4&|4`=Js^>}y< zfnZRep%b9;HwRuFpD&y-#M)1-nMYa(KQUdLR57-`@+{q=B*3q8>FI>v0+ML2ds3kQ zkjj3W=C_@aKtcm?@nGrE!G?5CS9T$NOeVc2@gN_M;@ON@ViiJ4C+pATlD^ZUDQ#e@{A0A;$BC=Go5kJZ|NUM*hOv3pJGDmXl*sfm(yAHq{?ktW~`ck`U&^My3 z<#Z66ifWC)sSsip;L+Km@JJfs*}AT6B)TRS=%Mh7VLmtmulLILj$S1QYL84a+q($F zHz^QzAK|mor5iW8&ryCptVWt*D}lg)+>c*)KAwA&mz^h%C-~Z}4lEi59uoKuuTsVa z^0{D~Z<(1a+BmbK!~)HIS171P)~$gQXKb`r3w!LQfiZ6!Oe99C=mp-1rQ8Xmv^oa; z^@cP4GBG)uciH!|Ogh8rh7-qvN)bk(M17cPfgXAmF@5}vCRzs;LxlD#LNn5)$hfX3 z53G+X)$F(m9-~BaI=WIbgJ;O8$%=KdHTm^K4e?bSV^h7rSO}^C6P5eNY&84xWf3>3 z5n_)%$wJO<$pGjgBAlma9j~aMb=l#&EVj*d zxu~W&0!q?fRBYD|q=q2wNvl{&(MLw!m+!3hYKsbIJl)ZAmj#u-45sDfzW33-Zmq>D6XE4-Rl(gTaHOM?sIV1Y>q%nIWvKh8Wu0Pv z7C?C9;F)aRb3~YVfHiRPjRRFA-kuL4-uj7CMo>u>D_5&e9I^hUadl53#xi$RgRF@9 z4FbpH%g?ZO?Tj?}4CsiqDA=*hSsj_N(qVQ+G(GEFy{Af2nVq03SV{>FJv%3zpx(?d z*^l5s9^D92zRf-w^_{0KPbhDU+-GnHkiD&4SV z=yTk7I;()&*#j4;>1b!ig0QqzusEw*0VJt!``#?$IS9VNF{Qt@f3s_v3`czBw_Q7(LQoU@HUbUe*sf4(K4CSHww-?RKnpobTT)1U!#G$1WD-$@ES>di1D`=H4 z@DQA7(R`xg7z?=*3Ozi&>T+&!+aeoP9oxqjnZfp_gu6j#cirOC5Ak zs0}SM5X^54p%G`FaYB`zBJHe%uxJgx82MTkys3R8GQuL7%)>g@Oc^68y90+{lB1H< z1!0u2!2UTqLaA3vzQjRdO|SZ*L`p?f%uMsGMEO4C**3|QlR{c(=eNVm&o}MInF~kO zZeS);DC9^nmn%jnl+6?WRHbobPb+YsR@;+xXV|03#+lmtw6m777MB`~!XEtQS?^hv zn{@UJ<)UjOOg3`sET4sPw55<(-a&A?PZTiiAik>sLC1f4*skXMmy#c9V%Y5unE_@5 zlrVkBfIQtPWpT;HHCOR+!#b?9(t_2%L(l`=Ei-Ph|m1^R;iTyjHo-;c_MO%PMKyh`1RHVE~TQ|_FKjUx48j? zHOKDxXzHb4R*3Z%aY6`U@AgcSyb8!srp2%bErCK9cTO(l z@@;-;h`mUvsD5!c7H1N@oJ}b_MgvPSKot7=xpQ^KIJ%^A{iT^X_6h*SDh#2b%Yc>| z3!?U~lT-0ZTFHkNCsj62l<8S-IIU?w65uJf_tUdz%p5$~;D#@}LLx0G) z;@$7IXeJ}uXRBbUGzAe}YdE+$J^3y$-Q(K5fZoQAt1N+4s${)oxj%sol^lWTj4*%A{Obe728j_2K=C`Atl&60>24dK1F=*Od$QRpPWZYNf z>NYzwnCvu`t){6H%ALWOC~DaJjvac%JNjVjD5(Oy7xwTsvzYKtK8rexeB(R} zpN|Ugd^^YC?jmgQjq63&g|jqSn8j$);=Av2NOo|CZ>lFZsQpg= z5qPI^{d1h3}8)$!@~%gTWusPA2de_$>>1= z_g-bsc7w>qpLWUiAM3~f^&LkXgY}PM`;~hiH3}=*q9)`!3(0GlI1*3hq?%lXH^*&d zBeXJFqXA+l=D(i}27euf3QKFNXM=wQBQ1=|^y>dk{O!xk~X_fzKK3y?4yZV&HV1m#ci!)HXb4ck7Up_OQc)Q$E|8P*D&?7=h??&&Hav zdXX8pjE_el@t*|ZQs|R9l_xU68%wk#cwjt#g~&3kJXwk0j~(i12>(^-0S2eJmEz6| z8)cm~HKaqUE7KS_9OYs=6*D>i#PpNvnv1Du%1|m5EA~l#tpIqgR7U310}`4ha6;l! z*C#fS4pKnsb*`uqu6LTf!Godef=}U`$i~bb2gp3R+ZMjf6XTcBg@FPJrb|cEclBK) z961<1sC{GXqwUNG>K7*fs%S%%TjL7BpLb`+a%*?(IWdT{$M3FJTh(}dL5<{!U_fuN zDC2AP?aQqt05B&jMSL4+VhU}kc(|38(itHpW3M9PI;{{-Y7>fttI&lG%^-U0?6r0P zWpQD+Z}TzE(B?W=W%RZMmWDm6uD6u!T96AG(D`0YC^;FrV^?LrY*k!#gaV>EOwX%y z_puEJvTD+)a|3?+Ful5j56aApEZ~FwunL;xSdXx?r{Wt@KlXXk(p<{tG#AAl z^L|b?!-|`EPqm*LmV-9Mj$%0i$3l}i*dy`a&{(-Exz4dJ%2}VUBZ@3l=@}c|UG90H z&itYYhciZ+Er+8Ckjln0xx1|({#uGhAo-uS?oI^27RMDL~n& zbgznY_~**h;R4jN-ifk2tvfaiut-Cp!WnD5sce=yfzowD>a;!6Pmac<3M_Afol#YJ z2`9W%@baysG|>ATD@AlaWwaA9ms<0YCeJQb0G?bPo--AJn6aISu@$%0={QVQU%d-Y zxgR_Z6j`6uPk)5Ksd(ia&$vQ1Y0}`8XntV18RnBzd#q(qzdK>rVH7Y)mnPdQnm1yJ z51mq)hL*pYv4nD}mNl6icl$Y7VT*(`g|O>a;lj|B@8qVNxjgXsj!}Btqy3@mHY`Z=G@6eyHr#9f)q5-gv9+Tk%fEzwgwROfjUgm{P)m_7J$qA&%fx6Dz0 zDYjVf?gbX&iwb=*2mK}g`M4-kz88GpG4`nOk|p{)_wiYT0Z+{S@}|*V_X)jWLv5ng za`x=x1uFCkvb$yt-vQ)v2$m95H2a?>r^FVz?<2aUYm1d0I)D(CimTApeUmdLNV^65 z)e02PhaqVJLhYy@0OU%2qj~S7sD)-Qi`0d8?BdLNFK?p&#a!w)oTs14Rmk9>{WhZp zy}-(874Xc($P&idAYM|R-->=tyO%CHsABOjU2L;JCG5zv}^^i z%bp(@E`j=p;liKJ`LnqI^P}4d7Mt13$%l@XrzPk1H_ffPtGRj_9`zvmvkSVqnrqP0 zf<_5GkQPblo=}AZ3_kXXK3;J&k4r8z{b+rL6X(R?AnuV-P$;IPn*X$l0QJ@L4jYg`O#hwUtSvPHm z-Z}^u$e^jpu`gH`UDpsm;?CUdHhuZI5OLQZHmTf#m- zl=L*RYEL0rExga)Y(dQZZQB7z8>zHB!FC?uGxc6}2X21i&rgQ~6jgQ(`8J&dI(q7k zJF91xyEO(9ZXUa?yj!ty_g>_H$F@si?Jgb`rKq0Zxf*jFSM=7IU;m4;w+f4^*}8=x zSkNT6YjAhhAi>?;oyOfgcyM=jcWB(*-Q8Uq_<8rY_x`{0Jm=!lxAdUR7)lM#F-`<(Kr{YKj3E$h)NWe0T!0P=`-kOK-%3 zW-{nPtt5CS!!W8r_H%4KB-wb=rS_-8wBnj++x#l}_JXkcEq;zYDe7;6f7x+}R685) z{O^LDxtd0V z26?GguOhuvVH)Dus&3(nzv(?p z9ve5(s-A9k#l7LAqv&a$J?~4KT*ldtSeK<-18!Mn4VCO4-ug@}qqoSglOhSV*w<;MdJ{*{y*X^#p)IZ5jddmBmFrkzrQz66%zEVPK zB}MaASc*Isy}03%AxK0932hq3R_l0=j$}#+Id3C-DI;BC0-HM?8l9Z8F&s%?wH3>f zL_E#urbjBN`tm`0M7ua;8h3&Nqe zbJa%x>ucOFBa~d3xr=+h@D`dKA`0J?V2cOKED9a&@;MCO;k1h;)5kHsQVDx-)8*z+ zOw)p`{)hycu&jvJo_14i>;_AitZz!4US}Scs5(>8!}Cl4HWv$E z1P-(|9>*vQ3hJznri};l`IkyVXWvQt-@y+lhud}~ zCC-ae%&BY6PE2-RY$^^Wy^<_;) zM+(aM)Bm(su&lc~7HqK6-)QVI+aP#SVebBv+;sOpMl@mIqDr>J_ejv(z1S-gx-F(O zqM+wzjX8m9jvC)CQ9aPbZ0T!AYYBIDSnQBye0?-BBlk%}(-BJ-BPt*KzM=_*$yxrk zj}et<-=%trusiX<_mw3!$+NqCMlD+X#CEleIc13mGY+iRDHTFfwblke{5j>#trZr) z`rm_`&N*{A9DqEmkdw&2Fz39_CY%%?2jG!LJf3NVQ;aUqNhDN3t2-DnKA+_O%W)-R zLG=Tnxseudsiy7tGoA|qOKCGg;BarGg@(F*gQXT_sa_v#xSuDqrwyGpulKqgJ2J_c(&s@b|SLwb7djx4Vn|KRzAqN{VcD<$;k%Kb8^($u~st zW*O0?JQLMZNHCQOHDKEfFN|+G7+njh^kx*ZYRjUf^e9^3Y^{w)o;;Fo7C$5)^Z2!U z>c%DN*30D@df#}asr?nW0H|CpxOE$;-HGsP;Rv-VQU-hQ&u%;AIA=6(W{^L^U=r)# zF<-ZKL5aq`)+h!K7zkx2B2sn1#gYr!W-<2S=PzYch5h! zJ|;4KDS(HnHX!Danau!qV@`P}DduODTjJ^?P9AF;1cK6xdD(fox<^Ct)$Pf;0Pe_h}Uh5IE?OD5Jppu;+8_hx)f=#3|oWtb=LV#I*AxDyB5RM7ap<*8HqZxNo=~;q$G>dA+B0UW)+8e4g-| zgjL#T{Cp$o(p(*SVEQ~CFe^N{nJ%6gty(TocHXha<|#z^9uasU;6jTqf>sxPKRMCi zh_dFy&4*MjK9IT|Kc?F*21!Um>!1XDPP!$Xb5znCmC*B;4}^|g{H6ED;NoTlT@aWF ziOF3X&nA%%?g%eW^x*(-Xzi&SezN2V#cN!R?5Zer1tD#p-u1pXyXn8vrWvcqLZMC2a-y?dW6~r4?Hd zUfST3*g?yyJzpXA8ffL4BdTxaKvuXaI#&1oNUucQUldIB*+Az#Nga?4fD&O^QdD-e zH`6haZC=Wi-9m=K2|_qh*^ERQ<_V7-mkH15x-l|+H}_7Y#3YJ8V}CJ{C(6C3;h!81#=ng z5exW+j>LKX)BHI+BF*b7#+Ryt4@0$I?6(1Sv7`Xr?ucJVa;3~iB^WJ4ESnKRpG_g+ zyMWw6xXOIa2Zl%Y(49Lx0z~0(~QI z0?WZ2%4zVn?=LB8YsxqSKR8U#P)oogw4!X%CuV0=bO|YrO6uIs{)&%j9m?cG5A9FU)89;^b3=c*RN*zh zbdvvN#&g7`v3kQB)g+5E_zER#0rqyMq2psscHO@$L!n%Z?rQUeQO1rbuRXxOtLpZv z%~xiksbQ^KY*|lLIjsr6Vt3HwO%H&48eDN6T&>}u>_5E#Ya4YIInu9TR7GE<{>~w7 zOvVq|n9cy8L@dBQ6S>i+t;plPOkfO^G&Cal09DtJ@h!$ALxJya#4QQ!k-f!E`i3Ms z5j}o}1hLJxI7jWR`6uv=&NkNPrqF}|65Ye=#7>IOY%QFTa8?n6(L);@`itf$(H*^k zmV6#GL$P2dhUH3@gSyTL1F6K4+{KAJ8dOHa{Ol83ju8nysS!i;h7!MSIqw_HWF+2X zde3LjWOiSOptRh#TuKg^dzvftVHelFs!MVW5fy<`JPETB?%0>=q17BrePg&hwB|sN z19{l~N&OL#(YFdU^C^q9V>d`y|5{Mv78tM{#1k zn7M*hi!eIq_+U&MC3x8ps)s~M$7z@9zAw>L=co92_`gdMEpT$h-o28ZS8E*+ogO>{ z?cUT4BOuEGA%Sf6FA%(MO0e5ksHM8>Q6bzgF-^P7WHOuD6zQ&%-~AlDo+zOM&2V3A zm2t}t5msI5`MdbgmdEX-JPmv!e@|>_f1R2`VEyF zPHIckgsaF&0P_2u?)7TAM8d?KnVBfq%KP)!ABRPLY_UYpkjbI4=jB%v6z2$ zQy~S1hUVsm`VPhO!WGb3A7^t*UwHe}3sB;Trzvz@zTTgNPw(BV#kGy@Kl5!~_TIRB z%C*hI$9ag#?q4Fl+Jc9*5JeJ?;s#kLzTAiPLt+M5J{b(_jBumjY97|JQ0wzY)R@2e>$Jxo;_Rk{w+NWdnIF7K=tOER9J(nu-!^oorYRC5Tk&ca2 zTPuSYS?^n-ZZ-)o7zjln4NnfMhTQY2st2B~A*i1TDozCc1RM4HvLf zdao$X^{h>r`1sjWVsHVG^6lTslN=DmfudqNd0-UD#Ccz5^{QYXHYEgHUNQ}TF@`O5 zzFbNG1Iwn97~VHBpAO3pTFkSmM|a^`-~?_Cm+PcyrP=31NO z=~eE26<-y>z8o>XK$&Pe+aGd1`t+h)f_n6y@o6oDO+OY5Ie@WL0htals&W>33lxOF zpI(gg{8e*cErNoA;Ly(1YNO>v$JV3}J9vlJD_idM*w4fc9xLW31%lfu-vTn>1pNd_ zmzkiKm-me%5+w87!gpw>BRm%XPfa^C$?b^c%g07XoF+;iiS<#_PsW=i2!yUedHRDB zbBf@3F+kM{;_JU{uDI}R z3>EX)#LtO}&AOk{>yHi2FIb-tK~}s6q8^)gXy3CC#CIE%@y|PC)!X}ip7xZQ#-*|dU|^UlbJ?tji+GLB8#KS^GkK6MQOQ#oU^QZQ zIWS7`6y8tGqnQK}Hu;j5Hd8N%n&Ztzld56wrSvtDlCmY|1!YV1fEWM}UkxTr0l~cM zdx@}nyyz?d#)Sa*8iMFaVG2|f03{c(Ikgp*dwOrgL-Ylk5{~uB8f#h{xGM62!mZhS z#PNE7`tIG0GgWTUKiSlpZovG4KO17W$3#MP=Z?4Y`PL=v@{yfj5uN75Z`uhHYsR!` zX>9xZe9n4@`s@~{bQqw$_ruY?%>v}UHb(VgVc&9ICh9avz~*mm!NbaTQ)rF06O3df zEB?qTY`PjTOp=p@Fx~MSkWJ}*SW!bOR59yA${O>+JBw)xQ`ON{df&^inB|Pkh>YS- zMgDE;3x|JChYI3L@dkR-Nt?3&SGsiqOy>RVz{~sS9n6blR{i-R$?D3ix?5&&+GU1c zO@trBOhC&cXV;jEJ<#=fnOmfbZ)wUmt~x&iDGzF6HaXKHPG5C39l&kOOcj|HsF|wX z)eC+orBR*{)jI6%OSnzTMZ|I4)`nFIpN-k>+2_hBrjWtw>e}bJ#^rqg#I-!Y@J1*l z^6_Ub)AH*%?!MGpA}LWHm2B^94|Q{u1I zt*fLfvH&iuwk8Zy#nytx7p$wAL@B!4Jy*U7TTa=hbmx|IF(1FvK(2{O!)WHTao?sB z?=KWjA!0kK3de+>QMuy*^Y$Htax!gsAeMPSIATeg`Bp4cMdp3_LE+P4HO)$ z|50`9!yf*gfUzYP2a^3(HPSunT#Om9v@H$samBgPXK};lvDwG4B1jbP^6(c7b<08X zZz&1ULsaNe&dl+Z;|e=RBy(wQ3Y{eP6URrg7|sPoz%ZQ+?)n$SUdiV6w=yd=7m&$D z(`f-h)Kr&k^?Td1mCI>8|xx|M1w||m{kN66hnI3GP)18m(Akc zCy>89FAY%gJmg#iM2q+-W=?C&dPG@yYv1t>Lx>?89(V0yu~dioX8&s~-y(BfdyiE^5h=3nQ(!!fKZsftuKP z#RN1uLPJQUhP=b=U4Qepv+_M~EgP}45ezOK(j}|aOd+?_YhiJk}cBmX5 zV&XpvUXQ9gKw^j~Jk*lE=R6X`$?KvZ$F}jjyJ+JKMXC@Ts4;CbEZV$ zArlYMlt*2wP|(aX*)Kn+kbU3!w7$Ah7T|ABR@e2wzjH*z<9$VyI@nR@Ro1~r<#sMp zz%6FG87isgsgTjp!RPWb3qx!>cf@yO-o7-YN3x<|!*;@wB5}zoO`$l1b4~v{Qu~e1 zMDgRgpLABcE#-B?6L}*2dRYR~2=Ce`<&VbMA+gvnXSN7E;?xT_f*^>gep-G4W=t#cp-xu2gHHMVu#=IqU5vR0dZxQ<)?C5GSVi~gf5E{o2q#S?!g$oh8Y5Nlsmd za06yVGaK?f5Gf1GYtxR)^?F44`*a$-zgsplPYB-%Ce2**nyTwUW+OXw+fFo4W*602 zO*1``W2YIknA|u-L@?(am3%gcd7D^svNizQg(A0NVFsq@<+@uw6f>V3EonV{l&g~^ zg^EOfL@~RWM>7ZhR~y@uF(I_`+wI66xG?3j)vGPB>|3(NwLplhrcEp0>t9ixto9oy zk1|HGl78*sH&s?4Y3(t~I(E0tMki@ZF}0hyej3U{)xwA9>sigF?~>TJMLJ{oK+>PI z7U2>`zz|o@-+3p9Tpa9I7jx`Sr}3FQ^F_hheSxbJy_L9ckGA-2=b8&0t-&LuN14CL zxw+f+R`RzFPs9DWEzesdpw6X|sif5v8O$}rr^bW4HDFAfv?_OCMZ&yej0q-8jDyoA zrC!T!Sos^&D)BwI@n}c^$qVsmA1?6W7j9|Rrrr{)6U4H)m<@}QqB7{qT-pBfix|x5 zepsi_GN#itw^LS?KUu1h8PjAAhY5<3>xSxX`XneYqCJ9f(w5~BV6K6kW4l#81AuF> zk-!jT12ON3+E=cGv>Z#0a0xO@Dhd;Llj7{NcK>CqVMw?)!dE18eHP{%itfGzcmZ|I z426T2YdEk}mE+b63aV7+dJ#Gq8uXoifKmJ}%wv17B>#h3L2;o(Z2{Vxq4BCLX^=0S zp_`GOn)oUz=p|ymhR^3}3Se&25&hCF;@R>5&h=P};=Zwe2mcf#B8Cv34c}7!iCSDK z)Iftjn$v;_OW|V7KZT)q0|@xv(zR`Tpb4sobIh=dR*ee_9|bnf4;4^#L6X?Us0;eO zz`{q|3EDBu_8`qmtLT<@IZ;Q?pnFR=0qd?QLG5a)Ev`G>Tb2FhMg0CGx~7hvJ%?ZN zh%nrpxP!koNz=*p_tuTLLi`Scb8_PnHhs$o+!M=W-D8553Q1KZNaJrsdHZj%pqqEp zp9W4r3i~@(aGjmrq>GhjhQ@m$=YRhLlshy9$ae1}W9~Oh*eQ5t&lX?4wKqnc!2wN6 z=i2V*Dy{PEjGjF_n{%+`nMecSFPr~9EPPo2Uei(YNRuP)lxJ_PX5&CioXT|w!i4nf zFdNqkh3~HXk!7Hf2*`Z{)y>MhF6h@cn~+6U0ejBD?HGn6WPXZ;d{-tVCdN(ZE3FHO z&|-?_V64tA28VoAW%IWtX2>?08XqE?9d9r>4GzDHkaDy#6UEo`d5?MIEqhi6r?v*T zXTtIZ$VYlQTWyFbrKv!ERwk1MK)q=A(saefVc+-;R-%5-sqhC-v;H+o66B8aM@JV| zGdAv#)r1yfVxnN`$}J8I3eJs{dv|lAIaN^#!Db7!oP-zb&$b;MjmW%0ZySkBr+|cl zR>6FlWBwMWa|2z{tsht__g*0LsfyMd3uf_2U|;`p3VKLJMX6Y+?`Ha7pIp>fjE+gE z2+;m@5C2mjZ-;5kg0LH$)Q?q+O-#b{$itFb$H2%mrT_xF_#GUwI7YSm84vUO*8O5t z7`F3|S+Y$5Mfm0!w(9QbU>U~y7EldV`LY*z7J=g~muY^j(X>7Ou^nUgyVpNmRF~-Z zWG5iWW9v^{F5~0eeWiMyN7!=hmgiE3&(MkZh;{KExAmC`$Q0Bl1iu%&{zEt;n{%_Q zRusd2;n%)ANnTHzUOW}+G^dCZt3-}A+hI4kZEzV|rRF8cJ<%Y_=sMKG({Vr!hmC0L zY6%ZV_dxrW3S4XDC=u4af~;Db!cNPLYdKKANNI>IpWU;)Ntdt_@cuaqbS`#s810=?+c)54Ube9iPwe(}Y`M zy_COjbB0Qw>o7j;L1cFvD7@S)TOKWCg*LMACe3?+`ZeLFp$DYOqzQ>WkL=ZAjB51^-Ih$V%%; zwIcI%99v9@iQ$6Sdmio~zWtGi_hokeWTP`(K$fu6D95UQCD~*ejetZ#4+R@05pp5+ z!7kg8!1XgEb4|}oeTEUh8gx($s4b#)#CDsDN0_@h&dsh^6d(@y_)@r1amawZz#wP~ zTYfU>mIM`>3Qn7th8xLF{g~%F5oVTknr{0wIelhZQlP|ZMLwg! z6x9>R2$~1$<*pYAA2yUM?HlPeil4@l(;u7SVZD*`&lBCSAcGir^p29udX8)`4t18yo#~+iiW>pyQUyK$6T9W9Ub-`kSkDH# zUiPgx+0eOtDO01~U<{nF_s-tq_+1Y5^okBylcxKOVp^yZvNs^GTxZagdQvf9V&|$G z?{MS<=%8@bUb!{*;j1|;kA98;lfn-cowzOHg!C3eTvpYKT zGWo)*(cYc#2~%g&Smhi0I*r=*5Aa=t%+&A!gi{7)m?c7-UKSP$858df8M-@f-h2ZM zY4@wO(>PE$(Dm7$nhRlpT$z5kqBFZY-SrQ&NQg(~K8%+|KGfr84(Gc4x|DP)eP&ON zm_1!rZl3N6CJ90Ui|==L_f|bZ?(Wdg_X3gm-tnU1!XSR}nkPL<_1os+;^H0}DOUUM zNsjeOxNCMc`uqH1&33j7rJF4X$M{3h!1VSAe{6R?jD|ALbH~GpXU~Rv6@2s40CdJr z3D1uH5x_ThHduLCll4N#bUYmW84X+SN3)GJRUMU1q2G_4jw}#I`GEHjUUyonLCr9> zI%i8F)lVIcpvP<%!${yr*}&Fn-0kYCD;u~dY{4oi$q}xW=NmKA`@v|C<(igHljBvr zFD(IY-)tH4@UHSe$9$06qjP`Nn-}S)_%(G&trGDEeJ4ntUsZeat7O}@mbVTV#7eTf zZOv&2K~|mt8Zo zNp#?oU@i1CJ!Mr2t9W+AjJsV}EscKWAV-Hxo~iY@HPBl|gFwxpM^|{(V*>h32TUv) z%{vlvFR||zi%HbbI(?bocF7DBYfp%q1FCP!IglBHedL2P^RoRzn_cC96xH0DO)y|c zt08)!Gk#sCb7hoQY+jECvqY0yr0qc4OKuL3qG+U_J>Nrk7oXi$AIX|TVRes5;9!g? z(}TL}I%xE84Z0OonZ5E}>zw1e(CZ`Qzytixah6mfqfG(#lRiQJb#j>?hVxq=yqTGk z3}xkBy1j?IC}aAKsFy3gslM1aV^3QUJ(HeoP)AwjV83@%KCy(TCKMl@K- zj|CsP%SvH8|K*%O^P1VVZ9LHV`mH6{U-#9+&0LC|s$$41-T|I^!6X|(L&=m&td-qJ z@oLhAhWG3XDrll3Qd2W2F1!MA7BGkC$Uv>fv3!4v%nrSd3R=+}G&Ce`U+p`1gXb5OX^hm84OkxbFz@y_2BeK>_iB69 zKBUJJ6p7joBa(!2LlGeAoFAf~RzFk$!vmf*;9DDS4H})DN@@^V@27Wm|CyWCd_YVo zwsL)@+va8d5Lo|0T-znKfbg>7>_XmxW0cwNWF+{Vw6*6}i3l z9i9&tO+Qb3kp;5avbG=4AK(ZopPKehBwOuv>d`RLd^CD=FtXK-Jnu1IAmeXa9~_#! zjE1>@?#TQ!nwlokE&%I6$%s!CraST$=xo;g(o>l4&I%4R_3b+<(9o`!-f|>IUgI42 zou`8T`m`Ttt-W&4;PJ2y>3kr6c=+)4w=^R)j^j1P5O5v?6U*;dZ^Y1tE8*zLk7xU&v;W$vD4%bVA6muz6qIPQo}mWu(||}`q{{H zk3@xt=AkV;Np}TqAu2XnvMkv59dRKNFVEYIsa-9kieQMKd2 zTYGB(HjDw5g&M#HSha_5cV@WeWh2$#A9-NXi|JCIb%{NCWnz=?Nr!)E)HXL&>7p>0 zJ(-`UioU3Lf37O7i#VyTuWxlXmlykwJJuWCC z!1hT?@dpW*in(G3EH^juFX^l5po{3Ud8e7hq_K#F*{9RGMT)PLXVk?)Q=F={+Eu?J zp0b|wwpHLFcpB%O5>vhxn6vpqyfGy3Va0z3MO7x1Eq{eWByYbP%GoC7=gvsaRa}<) z=4J_$!Sv-BVwaWOE8Cknv?bEy$DdR@95d92&fWpPj#RzcqAyV{pI7Tj-BgKTykioQ zt~i<{jekT^xyL2+AqDusnH&|9e{PEHTD0D- z9^07!nyk>?Wt2X&z=}!3-}Jgt0H zw(p|c!AE6(^k&_FN)lHbP&8t?{m`eF*5+TcW6SN{Cl0TVI0&7gBYf z+NudUDzNQT`T8TCLR{^yMUgNl)kr3`Z@3GYwt3(=Te!eG8+gi(8@&0!IS8#; znvi+~l|Z6u%ztVIG_AwI2h3Fhj$!?3W9;j zrrcO0U}wEa$nEW|g=RA)_{Us&XVT`V7sP2?LZ*zI*>6(g62z$T)L{}`r|k~vR6W?E z?kD!n{QHoqoA+-%)tr<#>t|xZR$>$99$4%;Zj7`|GCPAJWt3hs+)X}x<+@cn{qRE5 zC))ktllzRu2RNQUW(aa@aJ#qW`)>2Km8C%ciN6hi+lf~HxYr@c)lWXwoH5{L81c}~ zBmK|N`>fkx^#I8wt-ePid_Q^EMUwPh$~0cF1)pzI@n-_G^O+3qnik5w`koi$-Bm(( z@)^SM^1J@g|8d`Z_P0o_&Jw|)tQp4TJZ&-w=Q4ksQ{@W;#OHbzxmmsCi}QG4L8GeU z@*{`pC}q^u^c}y{X;Alxy-w%JAKp~wS2|@_cl0=E{&INxRsSO>BU!OsT9MGs`qi#~ zsI8gLmacce>fTe^)MajlS1$6Ug{A_lqfImqd?Ik4X4Q)d_{nDC4Kc*K?cD5-%+u7n z`PM@)6%86u1*$Y4HA|d@Vo9B$g@wtijJPCsjAo&aYbrk>@Y4U$hD|BD;JdEh{S{)< zk3xemXp&eV6-#rZxW(W3C5&UfQS}W?GxURolfV7fi@d8)6b8`*lf+jHzALc95GoF5 z&!Ijn$`SwL#Y)iL2cKw z@)+%p_tiH9w-Ay4^a31AsLOE&{NA_i_vxJ*#N@;POy*2WIr6?SOY|7ns2O`)FmbXtrp^@WBBAv24&d zdQ9)UlF?J8-`Djb^%)ey7I8{k?s&eMGzE3LMsay;aM>P`GWB4Xi6ckg;7TyS*A(vo z&m=yn`1LDNUn#m6Tm-0MER!qpa-HH85soabWNt6R^9HWWuA50g?doAwYxWwPYuTFR zoIfh*HJbVjj0t01rinZ;EB^UV;>jNdKWZz(^fJd%jscH8ttX_HTs}TaM6?nmT$ce{ z1?6N~l#5w*C8W!yAIsUfpU`F0GQz`BnzJAieu?FfDD(JBIa(=iu*PbbZ#u~NA>{Ip%!@8|Wp@MeT=exk28Th*|<@JPh0=!{3gx36X?!Zoe z*U~lz5w_HH^@9&Cvpb&;Kfjxs?Peu{{rI^@+wl%Qx3?hrYNue(=Un1F=2TQ_x9UTv zzN_Vri%#ljwrN#f4QZ$idq?-=qKN|qEBrdXgm4UAoIy<6n>PMO1&ZwELcz`$3-6z* ztmY)LPwTV71_E#CV8-`h{RsXCuz+^FOUB)#C>}45uh`I{BBrf>hr^Np#_9KXnOG~R zZ2Lk{gPqK=Vf}QjwtL6b-7yxkN%Hp8s}-=0TBtaSZ|Jm z1Q7&Mza$}fE4{+#D^p|yWuVoAu)V?kmT0NqjQc2o-fX?yFP&u*faia-8mG z{>NG|lsSHw-v2kyQz5pF5(h~!O>1HtBQX0!oW}Loi|t@u97R@BbV0@Y-Of^*{Z}Y+ zvXEZW^&m9iZBu7=^P;M9GI(AQoxx1px;gu;g+aii=}!FWlH9znYd002c70lzDC^*Y z8)g6r@PNd{WUU!F`Qu4B|H3swoE;(8I2$&OHaRp;xhql#$r==#q?WP?sI&i|2To_C zB_z6#UvTnUrmFlSkTL`@W7tNac^37C74&H5bJSkvA~K#Uc&`W4&8+MNzRyNce|?^{oVcr^?Cxt7ki368=EAdlNeGe+bTyIehA)|dR5_HuM&vUy>=FX=LQtMUUGa*YAoCr?Bayxal!Eqw# zZEY+RjKQmO4^xnnrH01xk=b2=nN4PVXM35i%hUK0T8beD(o`k;pz}(ArT3IN*@`aP z(0H)O>~P?~vB4b8=%vf{YDQFMv^^lJHaTwNxgF4&p?|O6o0dsWz?%?(QG43^+W6)M zvn#4A`7zL)j0&a9%SYKgSNdRH-{>Y7 z)nVhlpKE##xA^9~!?{0HdA^-)msS~CKqf`t%6Oqgv?sLl0~8TQt1)UlwjmH!pK%_e zS^~;i2e+#%)ZTilUy|yTCdut)A3g6n$>W^Xl~*4H=Fbk}lFdA((XRf`y!mUfSGg0{-&Ur|xW%%&x~~8& zVwP=MdzL2BFDdSNc6Oe%qA;Bit#EKz;4`PduTesPqDS{Ut8nu;1>A_i}#<9vT+5^F8FWnN=v=TZ*(ONb%ruF7z(%DiD`mNa^h8dE36FdX-uy zq>9+h&28!2*{acg;Wtz{MArTx7KWZ3Xspi<<+-Kw2hRGRUUks<)W$X4hWoRL#xnfU z{c^zCgTXPfIaQ=hO0TI)gOK#Ie;b`wVnajBlDP$cqT6LuzRrfh0AjkQfoOxKk^$hw zck?F`Ff?Q-CEQ+(DP3%+FTj812aw9U>y$<58<<*r21 z2y|=i>DEuPWAp&fn6R_8_FyoCdM4sRYAeI>s4OO4o?m9qVl;xuT9p%q5u}{;biKuD z)B)o*q*^uud&XX%w$*w|+OKC*1AS4%j~Be-=}OqYo!HMIkJb9?n`a}XtEd`P4|OZ? zZ5x_hzbeM}K3G%W37*PR13Fm?zB?bkg5J#t%EJV=6A!W6SJTeQCyHwf2Iwg;bxG2C zQ=a<|6R^j}tKPy$lzgxok0pvkry;Z{t!;FNK-1%loK072h)K+&6&B1U{y2>VhT&wwFe_8(pLETE zIJ;GnvV?^;O9A@lA?08$=i{`(thl->_gmqIg0b(^oB>Vv1~5F4ETgYVjCm_%vjbb{ z4%SBEm5uff{I{M;w7*_YV5=Y6lMBDxOs!IOPVR2StvXV!pFOlNN^H%hF<)dqT5e)j zOp&uPd9M4dY(i&j2Y~&drzQ&H&jC7mhF!bVu9mjnspuZO*r)41L%i-Dae+VLk6F@ASU1g*n1OS~Nwct~POx!0kx~ejjLT&SFyw;V` z&VC*fn~HGKFIJ8hYxo3EQ;KR&-9=}m7l^*{!ZM<8oCP0~YY~Yx{fFVq-sB$p2e~hI zRu6!el()3@MnSl`S&n$^6CkQjDtlQpH0E>La?0KXj*9TWyN_BY@FqxyYL}-rgq8ZC zx^PAF>cY9bSMVfiQ@uT}a#bG3%8`K2-vm3GyxMGgq%@#N;`>`wTj~KBRBuhnH~x>= z)0Cex&v6! zN{Y*ovOZp(CP162^Vz?bUC4MAv=9jI2-BQE6qv7jGJkk2uevZwtE>01P&}u1B>A`h zF6#lYcdzJ-6T}o}tvPR-ET*DTjmCJtakdh?Ge1A5^y#``XpxAh@3=U|i2&FWi-1SF zgM5LzQjG)+Ko#P4&TD}_3Q7Lh(0WKOq14EY!ZLch#;*FvfY3mx?6CW;??sqwz}v`Jliq~dbhf!P^FqJ# z;G0it?C$QAyM|2q+v%5&2ZpVUKtprfKILz0nTQrslg4bqcOothP7&cfdr)Jp04Kc4 z%`<82#_9!xmR+n1GaErca^vR^8mW>|S*)PysCBbKKkq$LovgN+;M1xsd?~v{TUDT5 z`ZIU(?ar%Jne)KQ@-lxz#l%AK!|mzIt>4Azqi*{<}gI=Q!~j1En77#lh^LDAV;LOUjab5$YFu?{L;Q`YwMzYW_&C*9SWa zu|f2eP;|TPC1t2PT(+^!gwstO5A*~Wbk+h$-TrhaW{ydP7ayk?RcYhCX4xfb%Sn%* zI|sBmvbDEv7oNFV$IKGH(<$N$0^TSQr_`LXEu8r<6Md72vp1`#$(VwAnXUErzyI9L ze=N}ZeB{7GoB>;MpLzIKddAw_6}JJ`&s*fPyxAnv>?3AKNE-n)k{6*GgRqh1>U+b zAdD;^b4JRh^?p2h*>_Xi-jwcx{>huE@Y|oR8sYg_WqKSO_3tQ!GCooLPCBA1gzV3{ z3*?J-%rcrY{PRRu^SKM+pRXn%ZcOI#(-$@~W>+LMOkDK-Sd!_VTM2D7BKp~gXpO`E zlZyi^?SPn``Oo_5Ld~`SdIOdwqf6#Um^#Uy(ry3y3F}E_vpJlz(o>E>${am-OVQPX zNOQ~|VOb(M6pswB9_%$XnqN3S{_uUrXBL^N)h6*rh3KG2+k4VJ<5y5xtl)b6&9B-m zDmB{3QcsQPPNY8Uv6PUmU6#eXbN3T#{y$IkUl0cdbA0`Ar3vCM0wshm@QZwaPv$Lf ztSLjwNyy#;>XF{=DxZx46UiuSKjbyR!(8UK&*{|9GHf6DzEQvUaE{8@m4)hNIyB<-#LMi=Q_3D`VIP!Po;jFftv9x}zpNc|x({P{+5Ku)f0%Mo5$+<0;daAqIjLOh*CR+LB9>*lDIB+Xwz3&I8aJi> zv84b1T`|APFMiHu;f!2d+g$uc$!w5W!Xj0g_%JB{fbFSmm_Wkode%)@?&rJGCXud$zSkfX@1np zekAt@r83(Ud>n{#&u)j6%+Ibr{@0ULI=MqqDs%2R8T|fZFI*+Qce@Ybr!glFcD9nI ze~Bu8tR6qSyAAXoSeRjo7>1?gvBNO;IRb;q7e6s9F3vh6+oP-*u|)sNVhVp8ikOta z95JNWm+0H4nj(r~KG6!KMCwTYVs^f-qwkJLJPv`m8a!6g)&YOo$>Xz;Oy=^a7jd8` zcsY$cVLr=j=Y4Mv&~23gd2Mpj(bJ+nYm_P&!qEQJf43AF5-Sz&;a|o1yeLp_``XW((U5 z_27Z2EqlrRZ}#Z+t_H{{l;j^0f2vXJ6)AGwyslxXv%(1`s{=JAQA zb=~Gz#cX1Z2eoN7{~uxR99~(o^bIEyO>7$z8#}hG$;7s8V`5Cq9Z&2`Y-?iMww-*L z=bU@adA{p?ulL`*dUw~Vs_v?;Rlh2uUca$k2z3swIWsJTsfNmpF|{GtWl=m&e3&g|{w~`;#k~J1a~D3X2npGDD1LsnfRSgF!c3QodV_ebfQ$z}3Rw z+`|#o%f$^i-?}qbz5!Jc@;58%XhL=sW+yyQwV#{yGBX zia3x{8$T&O<)Oii?!2|Ty-B4&iA=jW5MjV#Eh1dibJ{h1{ViLrhWm{A7R2CFj=FF! zML*^shvm2q;$%~T0SB2G}+rI`&OkPSZdoh*I#&bJrAu; zfxirsbWLi;!33VpuZPtb2WxMHMd@$imCGhW2Ns&L8L{31weYOt(+4_*b6SYGjC>^i zyY%+6buNZ2#gIR#YS&6!_ocm?HTy!N+hw5`@whcqP|IzhrKzw3B z9F*5T>TU`4r$>Lboeznps>&*Xa^>eEU0dPN!7rxIVdDNM`h7UyjW9!RBZ|`2bTI)< zrX27EL0h<9FgkSfDUdOc2296jUg^DW$x;w$D)7%LOsuWrh|6rZMGck=m+R=j868VU zLNth*Th5(KC!r*FCosY?mriwoyQ5*HL#YqQ04t|MP@tjGP`MeOh}`3%vngFVVi)2( zsmTw-l22kDpyElU@onTWFF*vCc;JDGQ?(Mm-@&0`Q2h)Dn5vh}C17q>xoW_lbTtsA zr6kPn@;2*|#xb7v zMF4ch!7N8Vun3xkVEqkRT%;LVa2?E`QPn~{bDWU1aWc>I%V98$4F1g+G1N819v^8| z#jn%qNJt$1JveyI8TCJ&M6Y?-M<9DQsdW0tadS}GY&U&8lhEY)$y4|8 zdF>?bgbckyY@g+5QoN~M8R=9^erJ!ra=(u51Nc$8$=l>1LLn56P-Ad+-1_?HP;ZFuVU-g zv;V?eWsxt5JkssN_a?@v+I3bVPCGL>?XLPMd&6k??4Tk3I~9Y#{#3Ai#AUcdMP znVIIo8TE?&Iv9^r3_dp&f-a2PU|BKTQKlIv6>=3&V2Pjy>0 zIrJ2wg_N42<>%rDr^rEw7lOhAv1WQ<#iO+P=9y4p z+=i$z))SJO*8x*-t0(_*MLBNCH?^a_MAmUiWTeHII6BRZAB|bLBK{c! zht*7BUY6syOt*u;uc(O9%Zn$gpZXt74P_D5*I&GfgM*%6DYl`ZEXS!xL;fwAfVru)Rlb=eSi*Nku)AvBhw;sDC4TGWAqY@${J}>T z`-?Ou=dzCdo2c z9sJ3*K;T!tO2^}&jrv=3Ipy`F@TBb9tvS4|F3m^xq-TjfY#kfrVC8g@ar(c|OjO+QBlxq~tm7jKMV=qkTKGx!7Up zbPGQ4RSf?+kg(Yw|KtK#y&uat@X7NN7*#zY*{KtO;+H+JG8$f~D#C%iR(+&Xa2ov{ zA$t~pP=r_&RV1f0cQ^7%lsigZMBDQpkD6WPugf9qN`~B6?+TZ9v**@26y>ALvrQ%4dqf|_{+YZe_M61Ed^nM3dAm+G)%!*m&n?w@04vMP(7cP zPC0nq;ES0I_y^7_bEGRahGmF`*R{8Utc7=ZSJLab?57Jfg-0lMA0>&QMZmtG1)9~o zILe%w|3?*e!eaFwX+-?Fh2VxN_;@}fVUc8cI3s8ozXzSRoIp(=X49b!!=XDIttnv| zznR8+=LZb@G>WgILRqJ$_VM02v)`adUYQ+M{1`fh?3Gh zB2r#lFz)c#;5x2!J7YTz;Sf9Y^i>TxHVfFv)nI#j3VwvQH#&Z+As$ZDQ%bh*h>yxF z#ENqD9qeKIs`+`UY)G2u%7zth>ujum!(QL3PlVPq{8H8t+%cPAnmMN${p=&I@tQ8# zUoR;pK77ZT!4fgC^|0Tp?KUv)$M_;=OPDDabC3?Rd~7Qw5Hcp8&Pv5!X{^nR#a_JA z7A}qng+vN!J&b$l0Nv+son=^PUa=a^#d4zo?`%04Xgl+9Qa;J&O-ii-^(*FV;sh;eeBgu&7)IWe%K=1 zCOe+r5?}+=aj?kGPr}k*8@qB+t{}30V;oRdpkz>h*H{+lUe0`Ze~NkhqdK|WTf!TI z4!K04?r7eQ2H6@^R6RCE9A6a5)1aG)ks@F!(2L1b3tOu@2=z(JD6w|D6NF4;<5tm7 zLGQ(p(I6nQ$YWcFrFWA+zex1tg9b) zEwr8@)P1sLST*dNHy*UzH~swI+9L9OtW%)w`vwv}8r;oIPrj;Y_BU7(G6@JLgujfsUDr}J`JSm^{Rwf7 zJZD;x+*A56UzaH^cA!}yTJ#2}QL^?KMcsC@(fK!%&J^MxnI(g3I+2Sj7SzrUUJXH6 zUfj1epH64kA<9|TZ>ToB=zfOC=BcyzkqY+$o{l~;{) zRV9oLJuH@RXQI`-hmXX~AAEIwAF%M4agenaATcf_0=Wm_XBdTzqpWZmK%Iw-&gw-R2a$>|b)4k`L z9#cYu;gp`MfY!TwKQtPf>Xe(hkTR^SdAM0+`E2xQ5{b>W_j#tUKl2feySMkTA}%hZ zdleSVIikBwoXZBj2p(B0sau|J{rfWF0^rgaC~AbiWx2%>jY~K1od#aW8A!X9R$*vV zQXt^0%RI*&cScdAtZaTcxW8F1IO4xFPQR2B<+MHJCla70Ns*NYBx@fFP>0m0hE)z! zV@IG=$&h>_CLa!0epS$Z{?hQQshR~*%zgfJ?~&4dUBMWykNGnvL?~hPoA9r675)0) z?Vkhd|9qYLpAZ=S($S|`YR2R?*PGl7@DaZE@HMiMro!_+`X(H;FJ6z2PxbysFCc)vJ4H)bXMe))FTQP?{WBejE<+ARcrw@&v$fpUooL4T*eF+ znCKJY^EX{B)$gy8z@DnlNx|2Pa~#(7BRfdJYJ1q~dMin~n;X z2YmTrpSvDhWP3?b$RqWOz>5>|4PU$HJAT7R7`JR?YDr)u2b8CC=#wkS>T-ioz=bC~ ztCRZ}W#mhNyn0ru=;W?B8BO|dN(iQC7`u%w@h3wHejU`%AakwHd-<#{{0`e=^OFg} zHOz81$4Fi1LkN6O@b6lLX`f8Zf9NfA*484flVMiS!lM9&;;=Tyg@f2#>@y3WsTyhh zQX^|N$1F(75#RX~M6uB_rxLtz+}nfo$i5$s0n%B-;>k+5b>}LqhBanc!C0UUBthnl z4NO3qBO$CTsya$?JTCP_id)VCXMnD+p1d-P?uFP!I%(n_ zX|flYFcx#p9ooWgZil1y|LdR&sjm^Ji@_h`%L1!mJvq8}zsj->{H^UEyRj1yqaU<~ zlyT4ct~LdjrhV&McYnwuv|l@6m0I@+n*UZGe_XQbF!2+!%2FeR;rt1np+Z`;Nm2C9 z$JFkG62EX0EYri-IYhl)?$y`rDohyL^@{aom*L{UGtv6FJ5gFExO*~!bK^yqxuhU1 z%GmP3XUG7fvW#r0d~BMM?<_fkb5-`1yTR_f<Uo&EQJbdJ=+oU=(FB-=vifp9%f_OiiI1|Rwzq>{#t@y3gqq0ytm5sw zg+(&FSkt=D~)FH24nT2~cqf2)ok zcN1%&NZZhw?}Hg8|jSTyGygl z@4yI3zM&|GxS92a*x($k=JLf(zgH|3q9>{__pO;+l16Tk=q89GTXM) zGEdz^!ChVvy{h^5i`eQ z2v3Zhn?BmH!u&)uJ)5Lpz7M%y5~0Sp8oT!0t{flDD~lHhOY)^m2G)|U^}pMXd!H-L zGIOn%@N=(E((_-#@%yXeaA0)#)=??~VTOse8$k*nhY&4`ZSgygRS_=PpgV)`z=UI$ z1e}|*I<4UG(ljx6VBm!~^Q7 z+yn**Hr#XZ{~SxZr7)wFhC3;ZVxAYLI|KZaowce6q%P1%jjp`My3x1m!f3+&Q+Du{ zZ+I`{XCjds>BK_oeUdZF8*Fyt5)_WU40{z#kxy;?Y1aTG3w3w_c6&^KY6PX7eu7xh zyKBnD5%^GOVA5`PgC-<)t?Ua0ys3-_6^*U6rh!(}SndTl``20JOE-#Z!uy1I;WJyY zAN;aC#a8(z!80ZnV0x4ZpX}_K(;_$*y z_h}!H9>>Lk-&LBtGO$lA1Ws-2>3olD;`1xEB9Tv0da{Ayo*aK(Ty>#Twq6rcrIF=G zUtWs>G$M|WtRjv*d06n_Kh$doJ&W_``5wN$?nd;Ty4zJ=YaDof!&s{dv2Ypi+<4u{loICL>T(^`IcLLjM_c*_LpGtEtP4P$2uZ>x}Hc%5^VX|>g zL8@9}r^`JDd44s?+@{}(EFB)b&E)Y(^tsQ|?#}n1Ww}<6UJYXBRq>VOIw&%n{Stn3 z!!9~UUQWs6PoZv>e){&;Ff9j^6DgF(c8t&R*gZ2vGHsW6TyoJrZ+m&LqUR0k6~dnF zXR;J*){eOC*Go5E^Ut>78O>n%%s^x?iWP1Kin|%;W5!duq^GO%^Q9m+3!jYmUYba* zhX?@eAVx4$em%Ba!5NN)C0~_Z-x==wQf}OihR<-`TvwmAkXg=nK&9s?0|B)D7JgR~ zRh4x2{^{_$z}}QwkfbkF>I@9*LB?(lpwLo82zl3P!#wtz^u36cNBtD8irqKkl_|f- zA!^S@I_|`Pe(7$3#zNgyinP7$Q~vnX2K~gORr*dp$K-cnoc4)9&w>=IEMY5A`QgSp z3Mfl;-reNhs&}5Wmty*wvGLre+7g?jU+XYb-yPUqEo>!zoNP#9Sn8vrSAt_X*1+Bq zW4jSXp{zMwrKQ(e#T(=EI_aT$w+EC24k&TVl5N`&qU%EXHtLjwsqdT{ZdjG&)x=-D z@NQklxvDaKuXWBSAwpM8P^!z#;u|cAfWe-|_r6#d?0OKfN})_YnL)~+_3<{3c7eVpsFIG$PG(}lpEY`XRrr();eCBiv@Mj_z8$8I=s)k}aO(4UzVcE(GcD|ij69r# zSw6V;S@ZZT3x1?51NP5eA?G{RtK2WX8CRc=%NeyIn{KkmU#J(oFI|HH3%b10&yuCj z5k^JzY!Rh6d-*KL(vCt~=B3}jNU2gP{H^2F@W_5K3+7IByP$c*;;xVRczs_@6{*Dp zBtFP;Ewsr}MpHm{XbL~9)-x1Kx<4?3(#Vdii3D-arrB%h^QjE zNvmFWF6 zA;Har8Us3%2z|r*$*BI?#Zbuc^*{^JAMDe@#|LIBGNt9QZXX7BS4`zbL*=Tnmo1bM z)muZPB67(oNM#nrTJEeEbz}C#qXDV7GFj_%lyenDM-48Bc&DlR+Z^wS1wjQR{WIOc z6kXFTfOYP8a@AA2!oI)aLCEWgHg}xL=zOG~zrN4_yYBbcc^-ay>zasL>elCcLyHYs z%lw?yT4Uwnb?ms~VV2swn*^845=cZrCU%wo#x>%EKLE_LnXV z^n80`WeSAF?Vlb0TPc7z-5*Mk3s$l1uNkeEfNlJ^Ub&U~o-Xc*Uc#Mk%yJ+1+;p5k zJ)b$Y*5%=$ctJRLH?!#yMt{oYdRa*+4bKlMaBd+p?&vI)l zV2Ns7M+dA39A*~FDp>JU%phKoX`Vz-=o$-b(vJrtw>Ksp(iCQf+}X!m!Gup*&tCDl ztWy+JRj8~!c(U&6&GNKFzG;wMpA%J+t2QHy(yb3dFj;o{f1%kng`rxUu?q{||7i9B z6WHXX^wWgee-=A>X7O8)o{M8tr14v~+a$=*yPdE!l;Xe`+GAe!D3B}68Av0Ogn}FG z9Q>xR)@n3Jk_xVsZF=B@2jP$gCPx1?DLQ8ojci`~p@0=4By#nNa;-c9AphIo!CGC9 zqPU$>VyE;Q9YA|$1rX4U?_310Xzy_^7UYWkD@{7;;0WW#grs!iBrVQ&-CFfF;PRAWm|Aqb*zf zuO@eu3e&rded&MX8dyMt+@i!}H^kO$Nf2JaD4SiiiRB~DK%wz zn}yUeOOZhq419NuLn!5H3{A-_IOapB{!%R`ty8+`^FoTI#)PvEKj8%K{Yd-t(fULr zdA{e3>m1MEy*M{F_j;JPgeYpo(Cc7`vd-6%$VAwoYwr!KWI(#ZC+5F$tPHpTWMH!z zZ^T-zBVmz_iwSMcEXgl-9lSL6Q6yE%#w$K&F%o&f@@H)c={madxyS4-T?VfqzS}Xo z?RSANqrbXWId>P-!Q)2Uwkyx8mgQ@k&|w=P>lj?G&(X7Hh!!yeipPyd!qY=+}Z;-b$_Q&%@~*F;>NqP znjr51a&m4_s^F_Ys@3S!DHm6ScQSWF5i;2Q`L6oV%+Twhwj|7%k)jDuLM5Cm zkzuADk=GTDtYOu~0p?hMnT&Bpv`}sr!9gfZ^DO9O4Ju3rZL(xX1ppBFJ z6xQsrU!oFUgY6OyH7Yq}Cr_2Qj-a4X1|)h=hchjJ^0vY8as8p^`Gsie72L#pgF}Q5 z{??#{E(;)kDdMq&P34xD?O97vp6$u^fX$i`k_uOM@hQ1=?)qU*?U-{3g zY5FDh9-?C`LJuCXp6OZEU+ol#A8j}Pf41Ni$HU(uar7-&yPuCU{NakC@h!Tc_~4ME z#1_!ectja&iC|p0+8y<-mY8cX2-v;O+`n`OG8q3J+!{1AMGmdpX)7ey?$EZS{G?r{^&Stf#}LD80T)FLj6=2f)*LMA_Rz@aVTf-^_B5}$9u#Mk zY+KJ)Sz)(SOh{8C5x@JKHI9QB*3p1`k;Rhgy%~rgDNpL?nn&gKXwN=^dml6foskqZ z4{`TmG5ik1nh4>^wVg%f>j~uN7dXqA1=lryMGEeAv;z3E65-|Et-26QF``Lt*1iORlv;Ef89t$x{oBSVxIl^D~=wf%x$0(lXp5c_L67kE!jx7+_9o&d$6tlkSC6GQU~VMZPC~ z1g$9v7`$Hzs-sqX|M}|tacMX}1kRh`fiE>0ayoWcv9@H)pFQJ7bo1(feGdWlA@?|E zJR!Pm_`gqVYMAf>3-)C9wmE>E|_C^GP6kh;3$ zWpG6B1Lf^Lf31ydQxn`(!iB?JbdAn^aAOEw3_&kwxZ^GgNKi;f-jQL$I4_08`(Q!WCq zkK4%YDFhpo5x??u^v<)&*K)hg-7oJ2UQ>>mc#cv7u1}0G`xbf>MX%D@17A)-Sy9g) z3JfXQnUexaaJ8jH32z=-rTcCfA@+d)mKgiWDAOsLZEWAvj-F>p-H&YipA74y^*^6u z7Q_x7t_B#L_pJ8D7Q?VnLt^=E2sAPN33T`HuAJmyOqO?XV_w6BJ8Q}wyfCuePLdhq>~4J#X0+Fjp8kg&Ifu^=Y&O@ zHd>H+6rstt@*<>9-C`C9^yH?$LRLHnVwMw$VBSTyQ#^by zZ6&~|cq@)ViH9ZXSHUy*&oOOPL6n~QKQ^Z%$&rw>?b^zZkfgEIRk7odNR zMzv9#eH2&LhCFZm_rccECX%lUKFvFhb)A;(J&Wk6gh+9#JLwxg#t#5hx}vW<>5X}c zT3$EXs{B$=fg#|^2pc`i#a?kTSZr8UF5khidvd_B{`xrgch`3~9v=|+ zabi#}U%1JXqp~|1Y!Y`o=MHg3=BZP=|NTAVHu)SdKyz!*A89dcaeLy3YU}0Zy`TQ;*nRtG`*C$Y zU0h=nA7OJM_QTcf{3X0-y0T5HzBGU`gMX#KQv&i`xYddmw}q20pLyTmAQK`5W)Rqu z&!}Pf+xPyp#6pd&fxGR9s0fe}(oluWLXE#(UtQ;dpyy3vV8Q?jdq8n?lA z1GFW{p!k%>O+6ol*0Wc#z>KcX5Eaf@IG<2a!lG*F{{XCYve3Yfm(4xLlU)hY;S!V; zRIhd>3%RGcswtb9YoE3T?j7l+@|~HMENzyR>7PDge4pQm=j{<)@~58yw9R4VomK88 z@M0c5J*C*_J%J36E6(cP?9{OY=L@>nO{i%vt-X zTft9u{xB^kde`;lr0EK;C?(F(Kfs*wq?PUONXxm=Vp=Mt>zZ$7bUrs2{E&Kp_hXB< zw%rb2keP$YJktj+zSgxni(C(m1J`rM0U!KX9;;DSRLLl(*7Xt?Uh@2? z!-5NbrM3%YgI5iwLU|NNCO?lmy5ltZw?0cP_bY3!l|X?CrfmnEhhr)@#Ez~+sMUo> zyxAo+pN~u^Ek;qp*LYLM?$?OJZ)Srjy-hK^-R|+cNV->svCK;{XV-cA_>OO6-VqB zMU*y5tSMFAwQ-*u#{TCEc^7>*ys~ht%}3;|zzM=OULB>J`F(AeiV*KSM)K#&ef1#z zh#v>|<0YdA;uSPb zV&tgJLf-!4kM^hp8Y8Xq??dT?K4WpWY`r{>GK;TjV|>qcW__9!vVwwS(W|G!uJXAlP=2XIHhPMi(R$+j znKcsnHYYL0P0U5^f0R>N=zpY7vEFlP$hT9${~Gbdx%^!|Ph$B}D)VJIRfZK^&WfM` z&w+m2HsLu9Nt15gP44*`RjW=Ka+rGm^mu$r^*rBkDT`q5iZhk6G=sf@>wD??3L|U5 z8_EY$MD7Q9bwW?4?of&d41RWmM5{fLyiE&+_2+a$mv2WP&N|{1spYXGNQ{mLm4C>4FXwaw$H|`OgU>7H%kJ`l zUW3{nletR#A+laTMfz>^A7~>ej(JFdA$7<>XJ}iU~pjDuVB6jkR?w1zMr&FDk3rT?)fO*Eh>7sJw4RUsvu&p}>0g zBCoj2W6L-o%0>Knn@N0!7)&86!hhlIoYG}qt~IF7%19PC7Oek3wLIjFPrK1wwFhNl zKDGFd6LzTv525Prg{rc)w>v~0lEK4J_ zJgVEaVt?^?Y+t=J7+sfE-w>0+!D@HC=_=tog^de-)TVbo7$5~3&|JQhx~kB z4YEHR|N6tT70KY4*x%wq7=I{UAUMe5xNLBBTtXup4y%6pscU~WdagiUJoD%2{|vzb z|F74%M)UV(*vZvqnXD>)+xX@~Ecnk%NJ4NVf02&8fN`TezLwZx&^a6(j|(;_GKs%1 z%1}YFpB;ZB^D#fwKF63IyMFp?X}iiH8rnm8=GS^DHD!``CD?zjj$~l>2fX?(YOIbE z{EJHq*70FSlAxgfMc&6FrpA8>_aBP?HQGQx^3e95*PL5aX}x<#*zO>JkPAxN&|{bQ zJ9xQ85ccaxhVwGvF5xg}#yg#j;kHPY>9wR90?ne8T^T-Q7KTK4yzS zX8fD^F6MCS&sOxj-W*&44#ch<&s-6>tYW9W1j)dJc~*9-E!b|`m-H{h-Xk6FRjq6( z+#dq#hu6q%E-A670?;K*V=#L@H zI`T#qo(X_}1^Fn$OxDnB@0~b-fng|@JD*Tge(;h+WB>ppOfufQe)M>G zv*U;y-|soTEoe4hZW|t!0=c@n3KjW4D&YJhexaLWHCizuq|O>zIMO=zf%Jl-I$Bum zdC;Qr^1l7+YNMezQPxp(7bYYql=3%OzmeNFU#0)cuaEtzfKv2-;A8gx zSx>P8>+}cgAuXp3ehixakKC$HQ#c*TK}f|SK|X4g>k|In`wuyx<&po0{V$U~o?l z4_`wwfBZAyfAIndOp3Xr@0;{t_zI7xL7psd^-1)z(cuFL270WZdFG$Z+6%B&CjV!X z{~@vMT_aAtnu8(kMareBab$Jy&Q@2@G^}QV z(===xyfB9wQOZw6g6B+7T^0%6kd?&_@8*e;!300Hk~(e}^E|JY+WT)Qcr*P1n@x*Z zLGBqGzsaKr_?lc^*vhw-2dck2X7CXDsb)%RAxC3aN~$<&7^(1}y;B0y6mQQYiwP%F zcG4CK2SDa_{E9VB_bc>dR>?*186e_H35(LJyHY)%r)r z;U)`|g)~a*jaZPXD%Y=j7sLGY^k~-0`)qSISkjfp*xR0`aMxS=LpdCc!gGru{Wo0V zOpV#VC>x5Bk`l-k=w;fW|7^7hnyxwM(#vKNNeJOW;`y0qs^cBKCLc+7LVLE740#&oN$KpoN4(dd8eGA1Ir zclj($Xd-wVYj9qn0ol7JJ&z)6yYI07uu6V^o#F8hJeFd7vScc;xTwIR4!qu?aS%oY~r5|BE zu&{-{gexkqXaUyrUbcw|G}Z*GG^kwohR0`Hj@Q@P}torkw2_p=!xo1UL|VHC0A-@)?vE z!_jxRDu(24McoQ^EthLg|247f>0g1xD`l#LxlV|~Uf;$*SvjUi@xZl(W`N@Pd3xN(w>4zK=kWAr`hM z8YaYGYAe6#I#URcusuPV;4#?lSjBAd#B1zy#bGXb=Ky8^M!Bv&s3cTOqw909sR^UY zeU?LyoMVdD?Dv&xbL*pkS?Z|N{nZ}Zv6N_CFp9?Lo4YCd8yPV<;MmQXn519+CGuG& zd#J$W*8+LM=?}OR%G$ZzZn4_HoaDHxV_!9Sk5fopmT2Q^7PQp%D1$|~WQ%9hon5@W z=TqY^p22e6MIeE+N%YWSq1)r-MFHq#|1jA#2E~I%V&5=402dd(xvaAsP5J)LezptJ zeHBko6*QjIm2L2s72iA2ureWq8un6adq5cd82?z$i43qO=Ki9u4Y}Qdf{xKuoI&-Z zWV_y)&*RH)LcWI2oayr{Hkb_Tc*e{IrVN-B)s43!W6#1jg3LpxzEL$*5jUO#4r&e7 zyxegbQ!%+TX=4PQsWKNFWtvFam-ky<)%uQy=DzJiVFT`*HjxHbZ#r^X7(17@z{(ni z`%k+TX*ONZ6c0UtitVQxjUNU43JoN1Pq&Jwa7u`WXlzB@&2vO=3*fPFruW<$ZwAPF zYGvs;hIi5_P-gNENOV}2N9vxB-Do9_oZh^J%<(WTjBHrF^X&&w19j8ukxG$RBxY4*E}Nmd9O$a zD{ZU@kme+CYY|Pg9pMYdhIhnGb;nb$<#uD%Z8$SZcTa~U2S!P_6^F%RUc)+g?m^dQ z0f_U|3_UK7(5l+^jxID<H-JQvTOCn9_)v-=}t-E0l3w_X|H)9-jK|*3Wy3sA`w$ zS-v0pm6wa;7~Hkn6nGM~1N!k9C@8J5k*e^MywNt-@PNxM(+iIR?9-T{YAb?HU4xGH zx9&Q7CIY$SL)Vp}ZpOu{d2yRfhT0ikDIs7H=o(W6B>9S12T$H|+8OKou#Vl(YgFdW zaGVIZNqrBajyQ-J$GMa}JK2(o?HUUu`e|cbo~hty3BEX+?c-&1(komDH2b1%dW~bU zj;tS?3vcq$zTMfn3{&;FlGToLR+Od!! z>KS21GJVIOArkyuO7L5qZDh!CG+-!_%>9KfT{zl7aboCd4cf+sOESkQ-S?gM_caas zdc#RoAMSX_(2(?YzCPCg{>c__U|SP>23R#ZrJ}v!N{ zpsBawmW065z@D9>&TQW#H(;5&TGA}l9KAI|)q3Sa)cUFTuyTr*z?;_N+Y09Uco#v( z9CH#r-}EYm=sD9d#GeeQ39(C(FzT6LX*0Z;$`9-feF5WeXn0P&m(!&%{Q6)D96zsE ziZAPDc)Sj@ zQ}0S+Ya1ev@8hZ$Di}M9M<2FVdrp$4Lh#wr$(CZQI6|=bf1~&#d*Wb^o~k z9aPn|chyx@JKZ5jkT9Tl7w=W6);YAno%AC zUstO*+A{xPh%ifIw!3|`RAbAv4T328Z~ibJZ=#c6sC~94-;rs*IHLrUo~Fh05hdcu zwiWk2=iDD(_^YOs)K!&j^>2vXa{iO9@J5K>3QgRtEk|K60*($tvH{i2IGXepMb#QN zy8b>s83wizs|sNbEV^eLQsz2-;!*nB(?l2!lyovT$CwTq+Lp7Wv!;M-sxWcvu?z!7 z%Or6_!EKiAFrK;j)v_1z36|S(_T=0gAi;yNM@RSBFyyTG5&WcDUMo8FF|tjarhe>J zz8h+My$6xFyNm1cvPtDIq;U;8K~~3t(Qys9-PbozO>Jgqm`k+{+psS};^w4e>@Lr0 zPZiI+gs5x6kif%v-Tq?}Y;$5O2vxZ}2&9U9kG`$ZFX%0K?BT7O>&Bk%2gnAb53-HR zv^zV*mLNVR{ckx2dKy!NUSYkSvz{%I^GSh#A!DPgrzF2+;SVoD<>ai~G%u!@ zQ`Fv-re(bM8?2p|wnVV;vlel%J^&#Yom}%_2x0A35#b?XgS7<0n3h8K8g&4N-8!=) zk)qRD;Oqdu9aDmk72^HX&HXt5n0g4eA(|f-Q<0tKae@oLj+E@@_K;p&y0<4xyeMc) z-UWzePn2QP%OP?(>z*rAkHQ?EU8*0^C5}&HsoGSn>TnGD;O}!V3}~)WYn7*rmhK4F z)rRKUrn&$T<@|Dp^m~Kq#SU6;Qt(<+qx^bjkaE|Nsv7r}-d?Z8H$v)?8d>Lo1VED6 z%{yz|-1URsZo-HNh*_3sW;84EnBe*i;(~stHB_fWAqP~>4%5X155t?xL>Yex1WnF6i0Qqb+W@>N0Db3D-p_xn79iEWhaRU z7+!D+KSnCm(()*mGWvAA;)Pe|adu=yhx17gH)<;3ckPCbxGkqKBPr}NE{uVw83(VK z23kOCyip<8+Sy*v&<|Qd#Tt0O;r#VcG;gv> z9WW*f;fl{z-;SVCXn@bRl40~EaO_QKP1j0ctJ<~u8C^Dn6hmLi|+Pmjl%zdm2 zVU3>mn(g_80v&Q!KbwDw2*)IpGg&938k-$Qr0wss&u)(tqT1M0111V;N~B|sPi;sM zUB&~RQ#z?6R~;*+>xRjlJh#YbH_|rQzpd$BXULkZ!&N9k@)UqIjQ60QgO~J59VB)| z<)S;evS2r`Zm^>&&n}r$;A1MhxTNKu$5Syn>b{-uGC0i;sR6h88+YH_>c!e~DRC?v z_k?~u(6e%$Iy0#HK;LG*sL@o}V)&r!Zh!vJRI*aWc9hJKoSa@ZMM5eZn@g&T{#uX; z(X1|A-7sp*4xx^#KKT1iK&qp%28O(w5q-It+p=CQ`1Ukx++!xXK*o@=>NJk`(JZ2J z#OB1vw?cAq3d>TX%+7&7U;fVV^_V^k0oqRT>cnTqvtxriB*#9m8wAk2T&i$5r2PIn z6ZYoSHR?X&m-1c44bIt28bq6;*elX--ihAdjD@>qH4g4}Jqh!$!X&gqczwD5=>;e) za6HgYeDLO@9_@b)#?BLq<9&+8vTku#yxz0gqq3(>jhz^A=VAY$ia4PW#G_6spR4MU z{$SZmFPD;^z07Xc4m>(aE|oK#bav9`>JYHxmQ>XSN*Fx#aBHKQKD)< z54b!M`cSPLp=hcI)@N*@2v#DNbL@#yt{wV6(BY@B? z!yuMpeYBY+ZteR1z#v-Jx|$jub(YPWRZc{E*1>={*@phv%C}i;SiOHP6jBdj;RPJd zI81RDp#X7lNM6}ODmcX|HJ>K7tcb8Lt0dd$&X7Kg6`C&k`sKwn!NF$3oo6Cjz=_GI zEpb&&dF@j=A}AGfSenT}pP?{HRb$?P;AP56+gp2<^G*Yar%1p7xb?q=pVx!g%N)-<;0>f|Wiwr+V-gc{F|Kvjf&UtpAK37Dz6hMft7lxjr7dCoPGyQJXE|GE3oT%AYJ zhx`6Jmu>F@>qMs1?>cunKM{H!o zFnJWMJS?38?1GZ)sltMDx9%Cd6(+7L6KBb3k8PI@H@lGXwqoP;5X3^TpjC_2_KV1< zg|#knd6s1OGm;O?bRwpd-53K8_U2xfn)?RIE}52rS%(HR=QfbqX6THIy|>El{$OZm zAZSM>YE|#bn%vyfVV%NNzQ*X6SmiC+7B+u+-o?habRr>zRk7!0BN*&0Y*9{WC_5RX zV#)sXxcO8I)~BmAZpw5TK=2te>A$P659tugi2U+2;H(Z4x;Xi~?wzPR|yq_Ku9uE8(UGke@L%qu@*6b$E_iz zKBBS%Pw*WVRq;{wFkFmcGy_hC($Ei7BrTwU?x1-Hot+P~N#*!o?Ia z4FB4UT7TN{Ub`iP&E3_u#>o?7TZZ5fx4<|hHA)`;;E>z(_;*Y%@stn?Lvn|T@Si|F zia!%!2=o^=HUk*eIWZ>&rKiOC=hQD3h*MuZ!_049+Hx=a9(D&YAEl&jN`5Bo4|2W^Y;3r;P=|=iu6-*MRy%apD1uz| z|10PR`ZSn=jRyDtAYHmL8XKa7N2_~n#Z{H8IoASRT`76B`d&v%GpWuNmqwCA{dOgZ z2`kFA9-7wGJTqV;Yi5(@$Fk)Md`Rv*zWZW?OWK)nN(Id5Y zrH_|kEnB;P&TEoc6D%lHg?|D}z(3VL!k~{lkscor2ddw7_0k>UV@tU%r{Dvm2}`~Y zcE#vktFuOpeGI%_V{6(xUFkvk9GSXgqXbfcW)Dm`EV(%IzUrm>$J5b1eXtaGH>Q{{ zXv(lvN7dRDZ;3*;hRWT8_b@Isbq^1Rrz2Qnm1$p+)#e9j#h9%uQtwkO6*8Ol_FZ1aCe;)A`_bDcsa3@lZG9V)3I_gh-XuZLNx1ZfvWnm=$0)N zRdc8w)`8J_!@@+4-xXE}9frb#L(eZP_-s+9D)VJR;C3zB1zZcB)~*`6ul_X!tJAmzVVh4jhmgr5XIgD zfHK-P=4HLd{p?;VmskN?pPCw?U*@2IDBYB2^mN?Cv)ZO+rI7|A$-t7qvk}BPZu_Cr>I0Hu?Tm&rzp{H`6 zp85R*j2SQnj4m*Tl1Aeg1wKI9?NE04b=2)24Qt z^OwN&1nHRj1$Kct2i!^_c4HK-WS~RRXZtN5lr?4Kcp7KKb|{9ujqyX-Iq=eiJ~-xq zhGDH9LZB3(vr8*bqF=F7iiX?SMoLG;y2AU)*5mP&P@eydzLbS8b38>u!n7EL+C^1x zarykmU(L9*VH_y7qI_!BkniykQMiTaZO@hDuaP7Hvxv|ServSv zZO_F)(L`PFSXKLncp2Ko$|@&S-nx2yX&0_~cs3+C^+4QD`|FPm8T+$-p_4*D@se{o z`s{6z(sbHHiE!qrmwQ#d@U#Pz-6So^uvLze6APbqQb=tnJoc%4FZy#E@1&T=@Td^w zT%?kMZy8!T9-*I|`>F$WnjcuP{X%G<+^rZy#_>|SS%dy^$sq!K@%e9YwpyEk8#v7 znzoAA4y6pnxX=+gn92e)2HB0x*)+(@8zWivL+gq|(esq$=QH5}lm4(!Aw|*-YAtg8 zlL2AUmF(1J2A|{JN_F4 z=sfIpJHcT)<{#z7v#qXZRCkLJamSJw4pLA{z~*Y3w>60?Uou48;Pp&RL`fn7!$xLO z_9IhGh4e$L{IjEsVf}(q0#Z5DBZV3p<;oRHCqe7gP)JOs@XSJuBEMl|L9Ywa&1LHg za^`OqhK{6>rPt2=zrj(f|M8R$e?gEx1#vOT@AoP}ibZjX;7_prVBr3@JP&YkoWJ*f zV%B~icP=aZj!IdD1<9q!{Us8q(TG{$)t6Z6xwQoI{sv#g;-qG5PhD$ckn4 zx%>?qzi_I(JaqDbtGKvygp}BVt1Ge4qa|Q&)MsdSJaRu#Qs6eDLA^C#ZX#EVm!U&9uhM6QAnZ=d?-o-V z!P9)SU)pX-(m#4L&THSHz%9aI5pGP@m*HHw(j~TOpqaq1(#rbU?k8rslOdmAh3I^W z<~*TiAmFUcjBg?_jDA7}FQ8qG*8mILD)is~oD<5O; zdnEQ#w7sxr1r1DElV05UYvpwWw?>VOMCDP{M0Q{M<>b_jRmH?EPWA3lG-xOfZFy=1 zV;nY!nB-+0%sl=CWLwg16seYmhFDr=hr+H%QG_F^8$gep@?1d?_kKK5RckUASwQPw=CD z(F*&cvJblGJz;%4T#Fo6bsDgRedb(Is%w_R#;v-67-^s^8>d=LLJM*o{>i9vx+<;U zua!8B;X|sYKjCEeYs&%F0>r8~Z7`BrdgIJF5)SdQV?pOP%;Jz<<_C+>=ds@U$O47sOY-bd&i zJIOGgT-O}9g~5M^2+F5SK`|y9JykPWlugYJQsm!$s zbglKtL)qokdF0NmiGJo0U}i>wJ{85S=~jXRRY>Vlc+kP__GJ8LRdW>6Jkdjb+iH3}rGBM^FP7n?69g#-MjJ-d1x3FV zP{J#=W#`m6R!aF}G~iG9SRZv(y8Shv*ws%+H*g# z#oS^dMOeTbO`$ryBm(m4l4t~|R!W@e;Hdt^)umY3iRBKg08kDFmPI}TW&?K*eUXX3 zKHnFn(?a#*_xLsc+N@N+e>b7i?QfT6wSpRdrO{w@!upw}u+xORQQ>T%j&Ao&nGNXH zE~KwzaP38=SY+Qm|FC~Jwev`Nnb?9%s*p>L=i9>FL^pHhrCL@{_RWLxekHg;ejLpK zb9*gMceQXxN?>zQZcy1`bS!Rb8ZCI@RA#7)Yg^vnd`(1&<5V~}e-kU5w1OGMh`F26 z-l35Fj}#z4IGJ5$+W2s(sqs^r3NtvXMx~@(3JMXKXPF=aD{8$H)wbW3|BpqAkjeqB#F9*uD>Z3s^Tmmp_%DhLb^<{gobUi0 z-fdXD(LlXA7qnSs=U5kuqA!5|v-zNA$ETVtUNpxB(lSvU2TYo*1xK;j{__A^Vp!!+ zA0Uz+tv$=-4I2_z#0UYr3Frw^!i%xjZF_3-@dv`Zt9UX!?H2NGJmoqHS@~)S!BTIH z%t$@D#?A{A`1x%@VJpdQ_ekY)_IyyERH2w-aH5wq<{Y%UP&WF{>P1ZyU>zWZ*Q*% zQ4{LEcCk5OXUBI`I7u_xFhcMv`=KwTj?7sX(}=>KZ$td6Y?W-G3OB{ZPIf#`{fe(J zDGCM=frp73rDhD_V{Fb`{NvwgKruJ{s9^nfZ*)`&T?wynxf{DlrVHS{>etvPQP!wP zo4vWy+tA)42f^O5e$-Ce7T+vq%NSOWNpS4gzn^g_)x;ag)nR zI!k2L0Ij!wLe<);BJFn&JS<%J*TgLOoPaIFkBEBa~l!d znu0A#KcZ%npZphr8L^V!$&06+cKL2m&uVxYBqXRI`VvGM^`jHYllFS$4P3`z~=qI@5spXRsT0ola~G+Y^x&aKel)k`$`44OWFAbf7rmqD+EzOFv8F9dJd)-(XMUI z>LweFpLurhDAj{#ZRDLhFnUEln#$Hgs5`T6AI@mjmxa{l=Uj{X4gBea#K(b6`H^z9 zx_8G(Ijl4&i~BVp|5iN+xZ=vH2<3*w;=)-S9i4iRo@(+76BFD-~l@JiZKu4l;$V206Z7TjPY3gMD7!08PD5-K!3;mS+43AK!?V; z7nO3jK?T8d%C|vp3@^UOeRLb0P)m_iN{BlVo0WLAa+^#ml#af^U=qeDCFM5r5xp^& zv~24!{Zb~AztZ+JG{)?$zXgg9xTj@m`(N!PBp~K}15WX5iuWWTW$0KMb?l6P+k&{$ z^M6+S_1bsVvD@6)GXcPDPh&vNIb2=))ku)qkbAJBK!ZJ;yT&-6Aaa&PBB=*{dzLF0 zcZ$*Nx5eWxQ=C%mCNM2#$T}s%=MwmBZ`B%bubzBl#^K=Q!(#1i zuSQkM%`xdkM@bAD1AA6_5oz>25K3^uG62->lo6%}44kXb<#M#xze-TZJ3($^lTL#Y zT&Nq=(OC}A`lbKHC`sfHrPNuC)pX*Tzk{w%zIVg{IgnjMoyUygRle zR{=Rxgp!GEudLBa3)A#v(Jb9qn+X#ZjsRrMO_OfaHuAlsHgY-2S^YbrkA-zy{jBmo zpaMT}G;%Ea0pH%h1zu^_v?3#udm%i>vY7#t;%u@yk&ki}#T52~`;5IH1o^J4iq~Man$xb9lXi;mKt=<reP-OfyQ;p}1w9np%s4!Pa`QGM4OA!PUbND(M*$IwThtx#*KH0dqBocQ$7Lih zg+7Dpv`1CwRRcRYuK%OAQx#9^+<>gVM?Jb6;nYMay}eDRxQ9M4#2&8k(e?V~JEo>8 zuO>;?n8@SGF)k<<6s)_W6$%uej&{#tpV#9uHZt`PkJ6AbA$s*rJu_c$# zq4j&xlw7yUmeC4@`sl`H#j(cfISa>xv7eslsIK|oX|NHR;Ww|N(86C zfXp`)BMMbfF{$#md;2G36*28 zNXMrg=#`0Cb1ln53=Y$78(~Q%xTwjx+09gWt4uQ&=}34xj8?8SN!e4P!~o6+k65Tu z9+_YpMJ6?~FK2)l_M^cS{KFO9{DO)(8jpxgCSkHkK{^2N+janK?sjT7kMJX65UO(` zW7MDvsDc7vtzm1l(|i5ML^(1+biPH*OdmY$nD~RnmfUlqD9X(KZ2~iQv&dOEPz8kT zZ;QH)Oy-7d5vn#^YjhYgXoM$wha;|jW#Z=QKkVdA-8C7a1l{WKNXjctP+ohu=cj6v zQUG*;(`151kWlvvL>XM)Hgzq3K0O8 z#&WR6j}##WuO4Nu9z|yFLtra`*+7ibdZDx@(jPYd@k^S97$t=lydrRR>>kp|bqQ+B>V*U3)+)#IQ9 zfByxOWmzI_)gaUXC(G}jq=D+-ebGz@r;OjmR{r-~%yhFNQ0up69TLJDc)ce?!H&n} zAG0ceE^+3VQ&nqDR%JGeod-zh2+j~T>_JlsKo7kNIBPx@K4C#< z=py3+WepT48S_(+f))&qVA#NKot$v#q~S||vNK1kvgD0^A!P0Nk&0h(F44;Y*v^bQ z1=vlK9CaFq@NZ}29vrI4E;_eKbe_XH{#qhhL!3?gIh-(cI~#4&BxIjoQ7#`usXBm>bD6{H&nWCOGhA8fJ8wW;jb<`L;@YS3f+E9I&F`e zo(YN2feY4#1sUjq3a$0Yfz9;n3wJ-uEM>pov#-^*F6w%_`P!_3yqQyv5;~e=np@hS z$Kdk@lz&xOXdXQqS$p)InJw1?tUF!{R`E-fDD8?>V=%n)XX>ulXab#|lauNwytPy; zy$|(Aq{sB(3h|e4c4XjFSFO(>2$ly(@+t_;%y)_Hc?tWmy^MxzRih^^@V2ixd@qhI5;Bo%UPtshqkpD8VYZ(x$(E+&GH&|{#`=Uu+PV#Z#`o1Z+X<}LtGs26trN=e<_>8(pX zBynpbV6}G8)AuPeW!`k2Xj8T9x7W&cwJl?0f4?%zlj+(t&#y5?VrWJYItRzPG=VaB5d|7q zVjZl#v;|HNVdF)9%+dz#Wo2%-rPb>+$D5Z|cRT{C-IM~@acxZty&cXQrF2h@THj4e9!J#deaz4+3|7(Y@?wjOhD8@XjCFR*`Uvz?7xwWTE-7^!Cj zRd@?#3`{sm=X|1LH{qz4o2=puq$ zDnox{UmkIe7%{~rPWXx`m~+moj9eH?Rg*jmPDJg z10{$V|BF6~aE5bTj9An!trtgvUa7F0rN4U*31L9bIM>HENUfZgFQ%ru#1rssN2r2hM)kA;`{4wjCTFw2)jfq+3}6>@hh{k09KejSBz5jQqjC4 zBS*)4bcQYKALC4Cz*I06oudyYWBKm6w?Mc1wfe_i7HNgeH-Yxl&u<4O&?HoXcUPz=WI5%&KVPP+YrlVx8r2fm?#t#yat@&Zw@ z3y2tpc#{>6yCP%S|(RRDk6OXK()`ui!Loh}zs+ zR(H4Y^7aX#3WBmPkUH=M#)f<<9kP(wY~55t1I6&N-0&S$?c8rh>QP%-Y5q2WF@Svi#JxK_5n zs{D>mR0TUUF~eoQ)ITk48iW##pDxx`-^J#XZpNj2E|sFN*f~ z(F(Yqx4bAmF->zcBZU8AJIY(1ac9M7O}M#PidO^_X0}xwq7FuRihs0vT)vk!aseI4 z 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 None: + scheduler.stop() + entropy.stop() + watcher.stop() + repository.stop() + + scheduler._thread.join() + entropy._thread.join() + watcher._thread.join() + repository._thread.join() + + QApplication.exit(0) + + def open(path: str) -> None: + entropy.reset() + scheduler.reset() + + if watcher.receivers(watcher.resetted) != 0: + watcher.resetted.disconnect() + watcher.resetted.connect(lambda path=path: watcher.watchFile(path)) + # watcher.resetted.connect(watcher.updateFile) + watcher.reset() + + if repository.receivers(repository.resetted) != 0: + repository.resetted.disconnect() + repository.resetted.connect(lambda path=path: repository.changeShader(Path(path))) + # repository.resetted.connect(watcher.updateFile) + repository.reset() + + def changeMinifier(version: str) -> None: + scheduler.selectMinifier(version) + if watcher._path is not None: + open(str(watcher._path)) + watcher.resetted.connect(watcher.updateFile) + + mainWindow.quitRequested.connect(cleanup) + mainWindow.exportRequested.connect(watcher.saveHistory) + mainWindow.commitRequested.connect(repository.createCommit) + mainWindow.minifierVersionRequested.connect(changeMinifier) + + # Set up state from command line args. + arguments: List[str] = parser.positionalArguments() + if len(arguments) > 0: + open(arguments[0]) + scheduler.minifiersObtained.connect(watcher.updateFile) + + if len(arguments) > 1: + print("Warning: Ignoring additional positional CLI arguments: `{}`.".format(','.join(arguments[1:]))) + + mainWindow.show() + + QApplication.exit(application.exec()) diff --git a/shader_minifier/diffmodel.py b/shader_minifier/diffmodel.py new file mode 100644 index 0000000..9323562 --- /dev/null +++ b/shader_minifier/diffmodel.py @@ -0,0 +1,210 @@ +from PyQt6.QtCore import ( + QAbstractTableModel, + QModelIndex, + QObject, + Qt, + QSize, + QVariant, +) +from PyQt6.QtGui import ( + QFont, + QColor, +) +from PyQt6.QtWidgets import ( + QApplication, +) +from typing import ( + Any, + Self, + List, + Optional, +) +from shader_minifier.watcher import Watcher +from shader_minifier.scheduler import Scheduler +from difflib import Differ + + +class DiffModel(QAbstractTableModel): + HorizontalHeaders = ["Diff"] + + def __init__( + self: Self, + parent: Optional[QObject] = None, + ) -> None: + + super().__init__(parent) + + QApplication.styleHints().colorSchemeChanged.connect(self._updateColors) + + self._watcher: Optional[Watcher] = None + self._scheduler: Optional[Scheduler] = None + self._referenceSHA: Optional[str] = None + self._diff: Optional[List[str]] = None + self._filteredDiff: Optional[List[str]] = None + self._differ: Differ = Differ() + self._rowHeaders: List[str] = [] + self._colors: List[QColor] = [] + self._font: QFont = QFont("Monospace") + self._font.setStyleHint(QFont.StyleHint.TypeWriter) + self._minified: bool = True + + def updateWatcher(self: Self, watcher: Watcher) -> None: + self.beginResetModel() + self._watcher = watcher + self._determineDiff() + self.endResetModel() + + def updateScheduler(self: Self, scheduler: Scheduler) -> None: + self.beginResetModel() + self._scheduler = scheduler + self._determineDiff() + self.endResetModel() + + def updateReferenceSHA(self: Self, hash: str) -> None: + self.beginResetModel() + self._referenceSHA = hash + self._determineDiff() + self.endResetModel() + + def updateMinified(self: Self, minified: bool) -> None: + self.beginResetModel() + self._minified = minified + self._determineDiff() + self.endResetModel() + + def _updateColors(self: Self) -> None: + self.beginResetModel() + self._determineDiff() + self.endResetModel() + + def _determineDiff(self: Self) -> None: + if True in [ + self._referenceSHA is None, + self._scheduler is None, + self._watcher is None, + ] or False in [ + self._referenceSHA in self._scheduler._versions, + self._watcher.latestHash in self._scheduler._versions, + ]: + return + + # TODO: Can we make this code block more maintainable? + if self._minified: + if type(self._scheduler._versions[self._referenceSHA]) != str: + self._original = ["Reference ref errored."] + self._new = self._scheduler._versions[self._referenceSHA].args[0].strip().splitlines() + elif type(self._scheduler._versions[self._watcher.latestHash]) != str: + self._original = ["Latest ref errored."] + self._new = self._scheduler._versions[self._watcher.latestHash].args[0].strip().splitlines() + else: + self._original = self._scheduler._versions[self._referenceSHA].splitlines() + self._new = self._scheduler._versions[self._watcher.latestHash].splitlines() + else: + if type(self._scheduler._versions[self._referenceSHA]) != str: + self._original = ["Reference ref errored."] + self._new = self._scheduler._versions[self._referenceSHA].args[0].strip().splitlines() + elif type(self._scheduler._versions[self._watcher.latestHash]) != str: + self._original = ["Latest ref errored."] + self._new = self._scheduler._versions[self._watcher.latestHash].args[0].strip().splitlines() + else: + self._original = self._watcher._versions[self._referenceSHA].splitlines() + self._new = self._watcher._versions[self._watcher.latestHash].splitlines() + + self._diff = list(self._differ.compare( + self._original, + self._new, + )) + self._filteredDiff = list(filter( + lambda line: not line.startswith(' '), + self._diff, + )) + def mapping(lineInDiff: str) -> str: + if lineInDiff.startswith('-'): + return "R:{}".format( + self._original.index(lineInDiff[2:]), + ) + elif lineInDiff.startswith('+'): + return "L:{}".format( + self._new.index(lineInDiff[2:]), + ) + return "" + self._rowHeaders = list(map( + mapping, + self._filteredDiff, + )) + def mapping(line: str) -> QColor: + if QApplication.styleHints().colorScheme() == Qt.ColorScheme.Dark: + if line.startswith('-'): + return QColor(74, 35, 36) + elif line.startswith('+'): + return QColor(31, 54, 35) + else: + return + else: + if line.startswith('-'): + return QColor(251, 233, 235) + elif line.startswith('+'): + return QColor(236, 253, 240) + else: + return + self._colors = list(map( + mapping, + self._filteredDiff, + )) + + + def rowCount( + self: Self, + parent: QModelIndex = QModelIndex(), + ) -> int: + return len(self._filteredDiff) if self._filteredDiff is not None else 0 + + def columnCount( + self: Self, + parent: QModelIndex = QModelIndex(), + ) -> int: + return len(DiffModel.HorizontalHeaders) + + def data( + self: Self, + index: QModelIndex, + role: Qt.ItemDataRole = Qt.ItemDataRole.DisplayRole, + ) -> Any: + if not index.isValid(): + return + + if self._watcher is None: + return + + if self._scheduler is None: + return + + if self._filteredDiff is None: + return + + if role == Qt.ItemDataRole.DisplayRole: + if index.column() == 0: + return self._filteredDiff[index.row()] + else: + return + + elif role == Qt.ItemDataRole.FontRole: + return self._font + + elif role == Qt.ItemDataRole.BackgroundRole: + return self._colors[index.row()] + + def headerData( + self: Self, + section: int, + orientation: Qt.Orientation, + role: Qt.ItemDataRole = Qt.ItemDataRole.DisplayRole, + ) -> Any: + if self._filteredDiff is None: + return + + if role == Qt.ItemDataRole.DisplayRole: + if orientation == Qt.Orientation.Horizontal: + return DiffModel.HorizontalHeaders[section] + + return self._rowHeaders[section] diff --git a/shader_minifier/entropy.py b/shader_minifier/entropy.py new file mode 100644 index 0000000..3d51ab2 --- /dev/null +++ b/shader_minifier/entropy.py @@ -0,0 +1,105 @@ +from typing import ( + Self, + Optional, + List, + Tuple, + Dict, +) +from platform import ( + system, +) +from enum import ( + IntEnum, + auto, +) +from subprocess import ( + run, + CompletedProcess, +) +from pathlib import Path +from parse import parse +from threading import Thread +from queue import Queue +from PyQt6.QtCore import ( + QObject, + pyqtSignal, + QVariant, +) +from time import sleep + + +class LinkerType(IntEnum): + Unavailable = auto() + Crinkler = auto() + Cold = auto() + + +class Entropy(QObject): + FPS = 10 + built: pyqtSignal = pyqtSignal(QVariant) + stopped: pyqtSignal = pyqtSignal() + + def __init__( + self: Self, + buildCommand: Optional[List[str]] = None, + home: Optional[Path] = None, + ) -> None: + super().__init__() + + self._buildCommand: Optional[List[str]] = buildCommand + self._home: Path = home if home is not None else Path('.') + print("Will determine entropy from pwd `{}`.".format(self._home)) + + self._versions: Dict[str, float] = {} + + self._thread: Thread = Thread(target=self._run) + self._queue: Queue = Queue() + self._running: bool = True + self._reset: bool = False + + + def start(self: Self) -> None: + self._thread.start() + + def stop(self: Self) -> None: + self._running = False + + def _run(self: Self) -> int: + while self._running: + if self._reset: + while self._queue.qsize() != 0: + self._queue.get() + self._versions = {} + self._reset = False + + while self._queue.qsize() != 0: + hash = self._queue.get() + print("Getting entropy for", hash) + + if self._buildCommand is not None: + try: + result: Optional[CompletedProcess] = run( + self._buildCommand, + cwd=self._home, + capture_output=True, + ) + + if result.returncode == 0: + output: str = result.stdout.decode('utf-8').strip() + [data_size, _, _] = parse("{} + {} = {}", output) + self._versions[hash] = data_size + except: + self._versions[hash] = 'Errored' + self.built.emit(self) + + sleep(1./Entropy.FPS) + + self.stopped.emit() + + return 0 + + def determineEntropy(self: Self, sha256: str) -> Optional[Tuple[int, int, int]]: + self._queue.put(sha256) + + def reset(self: Self) -> None: + self._reset = True diff --git a/shader_minifier/mainwindow.py b/shader_minifier/mainwindow.py new file mode 100644 index 0000000..e8d8069 --- /dev/null +++ b/shader_minifier/mainwindow.py @@ -0,0 +1,223 @@ +from PyQt6.QtCore import ( + Qt, + pyqtSignal, + QSettings, + QDir, + QFileInfo, + QItemSelection, + QItemSelectionModel, + QModelIndex, + QVariant, +) +from PyQt6.QtWidgets import ( + QMainWindow, + QWidget, + QMessageBox, + QFileDialog, + QTableView, + QHeaderView, + QComboBox, + QToolBar, +) +from PyQt6.QtGui import ( + QAction, + QCloseEvent, + QIcon, +) +from PyQt6.uic import loadUi +from typing import ( + Self, + Optional, + List, +) +from importlib.resources import files +from importlib.abc import Traversable +import shader_minifier +from shader_minifier.version import Version +from shader_minifier.watcher import Watcher +from shader_minifier.versionmodel import VersionModel +from shader_minifier.scheduler import Scheduler +from shader_minifier.diffmodel import DiffModel +from shader_minifier.entropy import Entropy +from shader_minifier.minifier import MinifierVersion + + +class MainWindow(QMainWindow): + UiFile: Traversable = files(shader_minifier) / 'mainwindow.ui' + IconFile: Traversable = files(shader_minifier) / 'team210.ico' + + SupportedExportFileTypes: str = "All Supported Files (*.json);;JSON files (*.json)" + SupportedFileTypes: str = "All Supported Files (*.glsl *.frag *.vert *.geom *.tess *.hlsl);;Shader files (*.glsl *.frag *.vert *.geom *.tess *.hlsl)" + + quitRequested: pyqtSignal = pyqtSignal() + fileChangeRequested: pyqtSignal = pyqtSignal(str) + exportRequested: pyqtSignal = pyqtSignal(str) + # hash, size, entropy + commitRequested: pyqtSignal = pyqtSignal(str, int, QVariant) + minifierVersionRequested: pyqtSignal = pyqtSignal(str) + + def __init__( + self: Self, + parent: Optional[QWidget] = None, + flags: Qt.WindowType = Qt.WindowType.Window, + ) -> None: + super().__init__(parent, flags) + + loadUi(MainWindow.UiFile, self) + self.setWindowIcon(QIcon(str(MainWindow.IconFile))) + + self.actionQuit: QAction + self.actionQuit.triggered.connect(self.quitRequested.emit) + + self.actionExport_History: QAction + self.actionExport_History.triggered.connect(self.exportHistory) + + self.actionOpen: QAction + self.actionOpen.triggered.connect(self.open) + + self.actionAbout: QAction + self.actionAbout.triggered.connect(lambda: QMessageBox.about( + self, + "About pyshader_minifier...", + "pyshader_minifier {} is (c) 2024 Alexander Kraus .".format( + Version().describe(), + ), + )) + + self.actionAbout_Qt: QAction + self.actionAbout_Qt.triggered.connect(lambda: QMessageBox.aboutQt( + self, + "About Qt...", + )) + + self._versionModel: VersionModel = VersionModel(self) + + self.versionView: QTableView + self.versionView.setModel(self._versionModel) + self.versionView.selectionModel().selectionChanged.connect(self.versionSelectionChanged) + + self._diffModel: DiffModel = DiffModel(self) + + self.diffView: QTableView + self.diffView.setModel(self._diffModel) + self.diffView.setWordWrap(False) + self.diffView.setTextElideMode(Qt.TextElideMode.ElideNone) + self.diffView.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeMode.ResizeToContents) + + self.actionCommit: QAction + self.actionCommit.triggered.connect(self.commit) + + self.actionMinified: QAction + self.actionMinified.triggered.connect(self.minified) + + self.minifierComboBox: QComboBox = QComboBox(self) + for minifierVersion in MinifierVersion: + if minifierVersion != MinifierVersion.unavailable: + self.minifierComboBox.addItem(minifierVersion.name) + self.minifierComboBox.currentTextChanged.connect(self.minifierSelected) + + self.toolBar: QToolBar + self.toolBar.addWidget(self.minifierComboBox) + + def minifierSelected(self: Self) -> None: + self.minifierVersionRequested.emit(self.minifierComboBox.currentText()) + + def open(self: Self) -> None: + settings = QSettings() + filename, _ = QFileDialog.getOpenFileName( + self, + 'Open shader...', + settings.value("open_path", QDir.homePath()), + MainWindow.SupportedFileTypes, + ) + + if filename == "": + return + + file_info = QFileInfo(filename) + settings.setValue("open_path", file_info.absoluteDir().absolutePath()) + + self.statusBar().showMessage("Opening file {}.".format(filename)) + self.fileChangeRequested.emit(filename) + + def fileChanged(self: Self, filename: str) -> None: + self.statusBar().clearMessage() + self.setWindowTitle("PyShaderMinifier by Team210 - {}.".format(filename)) + self.statusBar().showMessage("Finished opening file {}.".format(filename), 2000) + + def exportHistory(self: Self) -> None: + settings: QSettings = QSettings() + filename, _ = QFileDialog.getSaveFileName( + self, + 'Export history as...', + settings.value("save_path", QDir.homePath()), + MainWindow.SupportedExportFileTypes, + ) + + if filename == "": + return + + file_info = QFileInfo(filename) + settings.setValue("save_path", file_info.absoluteDir().absolutePath()) + + self.statusBar().showMessage("Exporting history to {}.".format(filename)) + self.exportRequested.emit(filename) + + def historyExported(self: Self, filename: str) -> None: + self.statusBar().clearMessage() + self.statusBar().showMessage("Finished exporting history to {}.".format(filename), 2000) + + def updateModelsFromWatcher(self: Self, watcher: Watcher) -> None: + self._versionModel.updateWatcher(watcher) + self._diffModel.updateWatcher(watcher) + self._updateSelection() + + def _updateSelection(self: Self) -> None: + if self._diffModel._referenceSHA is None: + return + + referenceHashes: List[QModelIndex] = self._versionModel.match(self._versionModel.index(0, 0), Qt.ItemDataRole.DisplayRole, self._diffModel._referenceSHA) + if len(referenceHashes) > 0: + self.versionView.selectionModel().select(referenceHashes[0], QItemSelectionModel.SelectionFlag.Select | QItemSelectionModel.SelectionFlag.Rows) + + def updateModelsFromScheduler(self: Self, scheduler: Scheduler) -> None: + self._versionModel.updateScheduler(scheduler) + self._diffModel.updateScheduler(scheduler) + self._updateSelection() + + def updateModelsFromEntropy(self: Self, entropy: Entropy) -> None: + self._versionModel.updateEntropy(entropy) + self._updateSelection() + + def versionSelectionChanged( + self: Self, + selected: QItemSelection, + _: QItemSelection, + ) -> None: + if len(selected.indexes()) < 1: + return + + selectedSHA: str = self._versionModel.data(self._versionModel.index(selected.indexes()[0].row(), 0)) + self._diffModel.updateReferenceSHA(selectedSHA) + + def closeEvent( + self: Self, + _: Optional[QCloseEvent], + ) -> None: + self.quitRequested.emit() + + def commit(self: Self) -> None: + if self._versionModel._watcher is None: + return + + if self._versionModel._entropy is None: + return + + self.commitRequested.emit( + self._versionModel._watcher.latestHash, + len(self._versionModel._watcher._versions[self._versionModel._watcher.latestHash]), + QVariant(self._versionModel._entropy._versions[self._versionModel._watcher.latestHash] if self._versionModel._watcher.latestHash in self._versionModel._entropy._versions else QVariant('Errored')) + ) + + def minified(self: Self) -> None: + self._diffModel.updateMinified(self.actionMinified.isChecked()) diff --git a/shader_minifier/mainwindow.ui b/shader_minifier/mainwindow.ui new file mode 100644 index 0000000..55bee45 --- /dev/null +++ b/shader_minifier/mainwindow.ui @@ -0,0 +1,186 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + PyShaderMinifier by Team210 - No shader loaded. + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::ScrollBarAsNeeded + + + QAbstractItemView::ScrollPerPixel + + + + + + + + + 0 + 0 + 800 + 22 + + + + + File + + + + + + + + + + ? + + + + + + + Diff + + + + + + Git + + + + + + + + + + + + toolBar + + + TopToolBarArea + + + false + + + + + + + Versions + + + 1 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + + + + + + + Open... + + + Ctrl+O + + + + + Quit + + + Ctrl+Q + + + + + About... + + + + + About Qt... + + + + + Export History + + + Ctrl+S + + + + + true + + + true + + + Minified + + + + + Commit + + + + + + diff --git a/shader_minifier/minifier.py b/shader_minifier/minifier.py new file mode 100644 index 0000000..a56bfec --- /dev/null +++ b/shader_minifier/minifier.py @@ -0,0 +1,244 @@ +from typing import ( + Self, + Dict, + List, + Optional, +) +from enum import ( + IntEnum, + auto, +) +from subprocess import ( + run, + CompletedProcess, +) +from pathlib import Path +from cached_path import cached_path +from parse import parse +from hashlib import sha256 +from tempfile import TemporaryDirectory +from platform import system +from stat import S_IEXEC + + +class ShaderMinifierError(Exception): + pass + + +class ValidationError(Exception): + pass + + +class ObtainmentStrategy(IntEnum): + EnvironmentVariables = auto() + Download = auto() + + +class MinifierVersion(IntEnum): + unavailable = auto() + v1_3_6 = auto() + v1_3_5 = auto() + v1_3_4 = auto() + v1_3_3 = auto() + v1_3_2 = auto() + v1_3_1 = auto() + v1_3 = auto() + v1_2 = auto() + v1_1_6 = auto() + + +class shader_minifier: + if system() == 'Windows': + validatorUrl: str = 'https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-windows-x64-Release.zip!bin/glslangValidator.exe' + Locator: str = 'where' + CRLF: str = '\r\n' + else: + validatorUrl: str = 'https://github.com/KhronosGroup/glslang/releases/download/main-tot/glslang-main-linux-Release.zip!bin/glslangValidator' + Locator: str = 'which' + CRLF: str = '\n' + + hashes: Dict[MinifierVersion, str] = { + MinifierVersion.v1_1_6: '6ce3e12ab598c35a8eb9edf108928c6d43d828b475124eddeed299546318c9a1', + MinifierVersion.v1_2: 'c91a6109bce3f0bf40573893628dd29c61b4ec498a5f08a8b32d553ae7b57a5a', + MinifierVersion.v1_3: 'b4f3790d6f6d7ba090cc5ce412aa175362105a156fa0b68fc0be9a4fa4158af7', + MinifierVersion.v1_3_1: '200020d7c1ffc481625d56ec0294e2d3321a92daf52fb27f80fb5c95a0617939', + MinifierVersion.v1_3_2: 'a0b25ca99e40d35ca1b8f88e5a3ef512205b82188ec8077d74734005b117abe6', + MinifierVersion.v1_3_3: '3c12749684c394dcf3a19a274eb9ae28b0fb3d77e859ef2c3f63ed33def49fb9', + MinifierVersion.v1_3_4: '5c7da81cb612e9367596197c6f6d3d798686542d3c312d3c12bf211a23e79bdc', + MinifierVersion.v1_3_5: '6fe8dce492bb3b25c1f13e910d72a26ed22bce5765b0eed9922d2f1ed58a6681', + MinifierVersion.v1_3_6: 'c71e0ac9c2e73083e4d5faa232382dee1c1665b5f494fc2abebb89fa90c5aa1f', + } + validatorHash: str = '64df5da3b9b496b764fe7884fb730814639bf4b200da6fc4ed5fb1d6fc506302' + + @staticmethod + def versionString(version: MinifierVersion) -> str: + return version.name[1:].replace('_', '.') + + @staticmethod + def versionFromString(versionString: str) -> MinifierVersion: + return MinifierVersion['v{}'.format(versionString.replace('.', '_'))] + + urls: Dict[MinifierVersion, str] = {} + for version in MinifierVersion: + urls[version] = 'https://github.com/laurentlb/Shader_Minifier/releases/download/{}/shader_minifier.exe'.format(versionString(version)) + + @staticmethod + def determineVersion(path: Path) -> MinifierVersion: + if path.is_dir(): + return MinifierVersion.unavailable + + try: + result: Optional[CompletedProcess] = run( + [ + path, '--help', + ], + capture_output=True, + ) + + lines: List[str] = result.stdout.decode('utf-8').split(shader_minifier.CRLF) + if len(lines) < 1: + return MinifierVersion.unavailable + + versionString = parse('Shader Minifier {} - https://github.com/laurentlb/Shader_Minifier', lines[0])[0] + return shader_minifier.versionFromString(versionString) + + except FileNotFoundError: + return MinifierVersion.unavailable + + def __init__( + self: Self, + version: MinifierVersion=MinifierVersion.v1_3_6, + obtain: ObtainmentStrategy=ObtainmentStrategy.EnvironmentVariables, + ) -> None: + # Find or get shader_minifier + path: Optional[Path] = None + if obtain == ObtainmentStrategy.EnvironmentVariables: + result: Optional[CompletedProcess] = run( + [ + shader_minifier.Locator, 'shader_minifier', + ], + capture_output=True, + ) + if result.returncode == 0: + paths: List[Path] = list(filter( + lambda pathOption: shader_minifier.determineVersion(pathOption) == version, + map( + lambda pathString: Path(pathString.rstrip()), + result.stdout.decode('utf-8').split(shader_minifier.CRLF), + ), + )) + + if len(paths) == 0: + print("All shader_minifier executables in PATH have the wrong version. Will download.") + obtain = ObtainmentStrategy.Download + else: + path = paths[0] + + else: + print("No shader_minifier executable found in PATH. Will download.") + obtain = ObtainmentStrategy.Download + + if obtain == ObtainmentStrategy.Download: + path = cached_path(shader_minifier.urls[version], quiet=True) + path.chmod(path.stat().st_mode | S_IEXEC) + assert sha256(path.read_bytes()).digest() == bytes.fromhex(shader_minifier.hashes[version]) + + # Find or get glslangValidator + validator: Optional[Path] = None + downloadValidator: bool = False + result: Optional[CompletedProcess] = run( + [ + shader_minifier.Locator, 'glslangValidator', + ], + capture_output=True, + ) + if result.returncode == 0: + paths: List[Path] = list(map( + lambda pathString: Path(pathString.rstrip()), + result.stdout.decode('utf-8').split(shader_minifier.CRLF), + )) + + if len(paths) == 0: + downloadValidator = True + else: + validator = paths[0] + else: + downloadValidator = True + + if downloadValidator: + validator = cached_path(shader_minifier.validatorUrl, extract_archive=True) + validator.chmod(validator.stat().st_mode | S_IEXEC) + assert sha256(validator.read_bytes()).digest() == bytes.fromhex(shader_minifier.validatorHash) + + self._path: Path = path + self._version: MinifierVersion = version + self._obtain: ObtainmentStrategy = obtain + self._validator: Path = validator + + @property + def version(self: Self) -> MinifierVersion: + return self._version + + @property + def path(self: Self) -> Path: + return self._path + + def validate(self: Self, source: str) -> bool: + with TemporaryDirectory() as tempDir: + (Path(tempDir) / 'shader.frag').write_text(source) + + result: CompletedProcess = run( + [ + self._validator, + Path(tempDir) / 'shader.frag', + ], + capture_output=True, + ) + + if result.returncode != 0: + raise ValidationError(result.stdout.decode('utf-8')) + + def minify(self: Self, source: str) -> Optional[str]: + with TemporaryDirectory() as tempDir: + (Path(tempDir) / 'unminified.frag').write_text(source) + + # Validate unminified shader + result: CompletedProcess = run( + [ + self._validator, + Path(tempDir) / 'unminified.frag', + ], + capture_output=True, + ) + + if result.returncode != 0: + raise ValidationError(result.stdout.decode('utf-8')) + + # Minify shader + result: CompletedProcess = run( + [ + self._path, + '-o', Path(tempDir) / 'minified.frag', + '--format', 'indented', + Path(tempDir) / 'unminified.frag', + ], + capture_output=True, + ) + + if result.returncode != 0: + raise ShaderMinifierError(result.stdout.decode('utf-8')) + + # Validate minified shader + result: CompletedProcess = run( + [ + self._validator, + Path(tempDir) / 'minified.frag', + ], + capture_output=True, + ) + + if result.returncode != 0: + raise ValidationError('Invalid minified shader - \n{}\n >>> THIS IS A SHADER_MINIFIER_BUG. REPORT IT TO https://github.com/laurentlb/Shader_Minifier/issues !!\n'.format(result.stdout)) + + # Return minified result + return (Path(tempDir) / 'minified.frag').read_text() diff --git a/shader_minifier/scheduler.py b/shader_minifier/scheduler.py new file mode 100644 index 0000000..de574c8 --- /dev/null +++ b/shader_minifier/scheduler.py @@ -0,0 +1,110 @@ +from PyQt6.QtCore import ( + QObject, + pyqtSignal, + QVariant, +) +from typing import ( + Self, + Dict, + Optional, +) +from threading import Thread +from queue import Queue +from time import sleep +from shader_minifier.minifier import ( + MinifierVersion, + shader_minifier, + ObtainmentStrategy, + ShaderMinifierError, + ValidationError, +) + + +class Scheduler(QObject): + FPS = 10 + + # Hash, minified source + minified: pyqtSignal = pyqtSignal(str, str) + versionsUpdated: pyqtSignal = pyqtSignal(QVariant) + + # Hash, error text + errored: pyqtSignal = pyqtSignal(str, QVariant) + stopped: pyqtSignal = pyqtSignal() + minifiersObtained: pyqtSignal = pyqtSignal() + + def __init__(self: Self) -> None: + super().__init__() + + self._thread: Thread = Thread(target=self._run) + self._queue: Queue = Queue() + self._running: bool = True + self._reset: bool = False + self._minifiers: Dict[MinifierVersion, shader_minifier] = {} + self._selectedVersion: MinifierVersion = MinifierVersion.v1_3_6 + + self._versions: Dict[str, str] = {} + + def start(self: Self) -> None: + self._thread.start() + + def minifyShader(self: Self, hash: str, source: str) -> None: + self._queue.put((hash, source)) + + def selectMinifierVersion(self: Self, version: MinifierVersion) -> None: + self._selectedVersion = version + + def stop(self: Self) -> None: + self._running = False + + def _load(self: Self, version: MinifierVersion) -> int: + self._minifiers[version] = shader_minifier(version, ObtainmentStrategy.Download) + return 0 + + def _run(self: Self) -> int: + threads: Dict[MinifierVersion, Thread] = {} + + for version in MinifierVersion: + if version != MinifierVersion.unavailable: + threads[version] = Thread(target=self._load, args=[version]) + threads[version].start() + + for version in MinifierVersion: + if version != MinifierVersion.unavailable: + threads[version].join() + + self.minifiersObtained.emit() + + while self._running: + if self._reset: + while self._queue.qsize() != 0: + self._queue.get() + self._versions = {} + self._reset = False + self.versionsUpdated.emit(self) + + while self._queue.qsize() != 0: + hash, source = self._queue.get() + result: Optional[str] = None + try: + result = self._minifiers[self._selectedVersion].minify(source) + self.minified.emit(hash, result) + except ShaderMinifierError as error: + result = error + self.errored.emit(hash, error) + except ValidationError as error: + result = error + self.errored.emit(hash, error) + self._versions[hash] = result + self.versionsUpdated.emit(self) + + sleep(1. / Scheduler.FPS) + + self.stopped.emit() + + return 0 + + def reset(self: Self) -> None: + self._reset = True + + def selectMinifier(self: Self, version: str) -> None: + self._selectedVersion = MinifierVersion[version] diff --git a/shader_minifier/team210.ico b/shader_minifier/team210.ico new file mode 100644 index 0000000000000000000000000000000000000000..779b9f6198ea74f2b9d34d36600b3ed3423d7342 GIT binary patch literal 318 zcmZQzU<5(|0RbS%!l1#(z#zuJz@P!d0zj+)#2|4HXaJKC0wf2*|NsAI&{I3lkU349 v;e4$cNB~I{VWu%oV8Fn@43dP?%myI70RuA-5kmtl2djh7IP4+pLi{QKCtn;0 literal 0 HcmV?d00001 diff --git a/shader_minifier/vcs.py b/shader_minifier/vcs.py new file mode 100644 index 0000000..072acab --- /dev/null +++ b/shader_minifier/vcs.py @@ -0,0 +1,134 @@ +from typing import ( + Self, + Optional, +) +from pygit2 import ( + Repository, + Oid, +) +from pathlib import Path +from queue import Queue +from threading import Thread +from time import sleep +from PyQt6.QtCore import ( + pyqtSignal, + QVariant, + QObject, +) +from traceback import print_exc + + +class VCS(QObject): + GitRepositorySuffix: str = '.git' + FPS: int = 10 + + commited: pyqtSignal = pyqtSignal(QVariant) + stopped: pyqtSignal = pyqtSignal() + resetted: pyqtSignal = pyqtSignal() + hasRepoChanged: pyqtSignal = pyqtSignal(bool) + + def __init__( + self: Self, + path: Optional[Path] = None, + ) -> None: + super().__init__() + + self._path: Path = Path(path) if path is not None else path + + self._queue: Queue = Queue() + self._thread: Thread = Thread(target=self._run) + self._running: bool = True + + self._latestHash: str = "" + self._shader: Optional[Path] = None + + self._reset: bool = False + + @property + def shader(self: Self) -> Optional[Path]: + return self._shader + + @shader.setter + def shader(self: Self, value: Path) -> None: + self._shader = Path(value).absolute() + + path = Path(value).absolute() + while path.parent != path: + repoPath: Path = path / VCS.GitRepositorySuffix + if(repoPath.exists()): + self._path = path + self._repository: Repository = Repository(str(path)) + break + + path = path.parent + + if path.parent == path: + self._path = None + + self.hasRepoChanged.emit(self._path is not None) + + def changeShader(self: Self, value: Path) -> None: + self.shader = value + + def start(self: Self) -> None: + self._thread.start() + + def stop(self: Self) -> None: + self._running = False + + def _run(self: Self) -> None: + while self._running: + if self._reset: + while self._queue.qsize() != 0: + self._queue.get() + self._latestHash = "" + self._shader = "" + self._reset = False + self.resetted.emit() + + while self._queue.qsize() != 0: + hash, size, entropy = self._queue.get() + + if not self._latestHash == hash: + print("Creating commit.") + try: + self._repository.index.add(self._shader.relative_to(self._path)) + self._repository.index.write() + + commit: Oid = self._repository.create_commit( + None, + self._repository.default_signature, + self._repository.default_signature, + """Crunched {shaderName} to {size} bytes using PyShaderMinifier. + Shader file: {shader} + New size: {size} + New entropy: {entropy} + """.format( + shader=self._shader.relative_to(self._path), + shaderName=self._shader.name if self._shader is not None else 'Unavailable', + size=size, + entropy=entropy, + ), + self._repository.index.write_tree(), + [self._repository.head.target], + ) + self._repository.head.set_target(commit) + except: + print("Could not create commit.") + print_exc() + else: + print("Ignoring attempted empty commit with identical hash.") + + sleep(1 / VCS.FPS) + + def createCommit( + self: Self, + hash: str, + size: int, + entropy: Optional[int] = None, + ) -> None: + print("putting", hash, size, entropy) + self._queue.put((hash, size, entropy)) + + def reset(self: Self) -> None: + self._reset = True diff --git a/shader_minifier/version.py b/shader_minifier/version.py new file mode 100644 index 0000000..7d71c9e --- /dev/null +++ b/shader_minifier/version.py @@ -0,0 +1,115 @@ +from typing import ( + Self, + Optional, +) +from types import ModuleType +from pygit2 import ( + Repository, + GIT_DESCRIBE_TAGS, +) +from pathlib import Path +from enum import Enum +from importlib.util import ( + spec_from_file_location, + module_from_spec, +) +from importlib.machinery import ModuleSpec +from importlib.resources import files +import shader_minifier + + +class VersionType(Enum): + Unavailable = 0x0 + GitTag = 0x1 + GeneratedModule = 0x2 + + +class Version: + GitRepositorySuffix = '.git' + NoVCSDescription = "novcs" + ImportAttemptDescription = "imported" + DirtySuffix = "-dirty" + VersionModuleName = 'generated_version' + + def __init__(self: Self) -> None: + self._repositoryPath: Optional[Path] = self._findRepositoryPath() + self._versionType: VersionType = VersionType.Unavailable + + if self.hasRepository: + self._versionType = VersionType.GitTag + self._repository: Repository = Repository(self.repositoryPath) + + self._versionModule: ModuleType = self._findVersionModule() + if self.hasVersionModule: + self.versionType = VersionType.GeneratedModule + + def _findRepositoryPath(self: Self) -> Optional[Path]: + """ + Return nearest git repository's path above __file__, or None + if there is none available. + """ + path = Path(__file__) + while path.parent != path: + repoPath: Path = path / Version.GitRepositorySuffix + + if(repoPath.exists()): + return repoPath + + path = path.parent + + return None + + @property + def repositoryPath(self: Self) -> Optional[Path]: + return self._repositoryPath + + @property + def hasRepository(self: Self) -> bool: + return self._repositoryPath is not None + + def _findVersionModule(self: Self) -> Optional[ModuleType]: + """ + Try to load the version number from a module + which was generated at build time using `generateVersionModule`. + """ + try: + path: Path = Path(files(shader_minifier)) / '{}.py'.format(Version.VersionModuleName) + spec: ModuleSpec = spec_from_file_location(path.name, path) + module: Optional[ModuleType] = module_from_spec(spec) + spec.loader.exec_module(module) + return module + except: + return None + + @property + def versionModule(self: Self) -> Optional[ModuleType]: + return self._versionModule + + @property + def hasVersionModule(self: Self) -> bool: + return self._versionModule is not None + + def describe(self: Self) -> str: + """ + Returns a str containing the most appropriate version description available. + """ + if self.hasRepository: + return self._repository.describe( + describe_strategy=GIT_DESCRIBE_TAGS, + show_commit_oid_as_fallback=True, + dirty_suffix=Version.DirtySuffix, + ) + + if self.hasVersionModule: + return self._versionModule.__version__ + + return Version.NoVCSDescription + + def generateVersionModule(self: Self, path: str) -> None: + """ + Generates a module containing the most appropriate version string. + Use this for example from pyinstaller spec files. + """ + (Path(path) / (Version.VersionModuleName + '.py')).write_text(""" +__version__ = '{}' +""".format(self.describe())) diff --git a/shader_minifier/versionmodel.py b/shader_minifier/versionmodel.py new file mode 100644 index 0000000..7aaadef --- /dev/null +++ b/shader_minifier/versionmodel.py @@ -0,0 +1,171 @@ +from PyQt6.QtCore import ( + QAbstractTableModel, + QModelIndex, + QObject, + Qt, +) +from PyQt6.QtGui import ( + QFont, + QColor, +) +from PyQt6.QtWidgets import ( + QApplication, +) +from typing import ( + Any, + Self, + Optional, +) +from shader_minifier.watcher import Watcher +from shader_minifier.scheduler import Scheduler +from shader_minifier.entropy import Entropy + +class VersionModel(QAbstractTableModel): + HorizontalHeaders = ['SHA256', 'size', 'ratio', 'entropy'] + + def __init__( + self: Self, + parent: Optional[QObject] = None, + ) -> None: + super().__init__(parent) + + self._watcher: Optional[Watcher] = None + self._scheduler: Optional[Scheduler] = None + self._entropy: Optional[Entropy] = None + + def updateWatcher(self: Self, watcher: Watcher) -> None: + self.beginResetModel() + self._watcher = watcher + self.endResetModel() + + def updateScheduler(self: Self, scheduler: Scheduler) -> None: + self.beginResetModel() + self._scheduler = scheduler + self.endResetModel() + + def updateEntropy(self: Self, entropy: Entropy) -> None: + self.beginResetModel() + self._entropy = entropy + self.endResetModel() + + def rowCount( + self: Self, + parent: QModelIndex = QModelIndex(), + ) -> int: + return len(self._watcher._history.values()) if self._watcher is not None else 0 + + def columnCount( + self: Self, + parent: QModelIndex = QModelIndex(), + ) -> int: + return len(VersionModel.HorizontalHeaders) + + def data( + self: Self, + index: QModelIndex, + role: Qt.ItemDataRole = Qt.ItemDataRole.DisplayRole, + ) -> Any: + if not index.isValid(): + return + + if self._watcher is None: + return + + if self._scheduler is None: + return + + if role == Qt.ItemDataRole.DisplayRole: + hash: str = list(self._watcher._history.values())[index.row()] + if index.column() == 0: + # Hash + return hash + if index.column() == 1: + # File size + if hash not in self._scheduler._versions.keys(): + return 'Pending' + + minified: Any = self._scheduler._versions[hash] + if type(minified) == str: + return len(minified) + + return 'Error' + if index.column() == 2: + # Compression ratio + if hash not in self._scheduler._versions.keys(): + return 'Pending' + + unminified: str = self._watcher._versions[hash] + minified: Any = self._scheduler._versions[hash] + if type(minified) == str: + return len(minified) / len(unminified) + + return 'Error' + if index.column() == 3: + if self._entropy is None: + return 'Unavailable' + + if hash not in self._entropy._versions.keys(): + return 'Unavailable' + + return self._entropy._versions[hash] + + if role == Qt.ItemDataRole.FontRole: + hash: str = list(self._watcher._history.values())[index.row()] + + if hash == self._watcher.latestHash: + font: QFont = QFont() + font.setBold(True) + return font + + if role == Qt.ItemDataRole.ForegroundRole: + hash: str = list(self._watcher._history.values())[index.row()] + if QApplication.styleHints().colorScheme() == Qt.ColorScheme.Dark: + # Pending + if hash not in self._scheduler._versions.keys(): + return QColor(119, 119, 119) + + # Error + minified: Any = self._scheduler._versions[hash] + if type(minified) != str: + return QColor(255, 173, 51) + + # Ok + return QColor(76, 255, 76) + + if role == Qt.ItemDataRole.BackgroundRole: + hash: str = list(self._watcher._history.values())[index.row()] + if QApplication.styleHints().colorScheme() == Qt.ColorScheme.Dark: + # Pending + if hash not in self._scheduler._versions.keys(): + return QColor(60, 60, 60) + + # Error + minified: Any = self._scheduler._versions[hash] + if type(minified) != str: + return QColor(74, 35, 36) + + # Ok + return QColor(31, 54, 35) + else: + # Pending + if hash not in self._scheduler._versions.keys(): + return QColor(255, 251, 231) + + # Error + minified: Any = self._scheduler._versions[hash] + if type(minified) != str: + return QColor(251, 233, 235) + + # Ok + return QColor(236, 253, 240) + + def headerData( + self: Self, + section: int, + orientation: Qt.Orientation, + role: Qt.ItemDataRole = Qt.ItemDataRole.DisplayRole, + ) -> Any: + if role == Qt.ItemDataRole.DisplayRole: + if orientation == Qt.Orientation.Horizontal: + return VersionModel.HorizontalHeaders[section] + return list(self._watcher._history.keys())[section].strftime("%H:%M:%S") diff --git a/shader_minifier/watcher.py b/shader_minifier/watcher.py new file mode 100644 index 0000000..3068e88 --- /dev/null +++ b/shader_minifier/watcher.py @@ -0,0 +1,131 @@ +from typing import ( + Self, + Dict, + Any, + Optional, +) +from pathlib import Path +from PyQt6.QtCore import ( + QObject, + pyqtSignal, + QVariant, + QFileSystemWatcher, +) +from hashlib import sha256 +from datetime import datetime +from json import dumps +from threading import Thread +from queue import Queue +from time import sleep + + +class Watcher(QObject): + FPS = 10 + + fileChanged: pyqtSignal = pyqtSignal(QVariant) + fileLoaded: pyqtSignal = pyqtSignal(str) + historyExported: pyqtSignal = pyqtSignal(str) + stopped: pyqtSignal = pyqtSignal() + resetted: pyqtSignal = pyqtSignal() + + def __init__(self: Self) -> None: + super().__init__() + + self._path: Optional[Path] = None + self._versions: Dict[str, str] = {} + self._history: Dict[datetime, str] = {} + self._latestHash: Optional[str] = None + + self._watcher: QFileSystemWatcher = QFileSystemWatcher() + + self._queue: Queue = Queue() + self._thread: Thread = Thread(target=self._run) + + self._running: bool = True + self._reset: bool = False + + def start(self: Self) -> None: + self._thread.start() + + def stop(self: Self) -> None: + self._running = False + + def _run(self: Self) -> int: + while self._running: + if self._watcher is not None and self._path is not None and len(self._watcher.files()) == 0: + print("We lost our directory (wtf, qt, no signal?!). Reclaiming.") + self._watcher.addPath(str(self._path)) + self.updateFile() + + if self._reset: + while self._queue.qsize() != 0: + self._queue.get() + self._versions = {} + self._latestHash = None + self._reset = False + self.resetted.emit() + + while self._queue.qsize() != 0: + self._queue.get() + + print("Updating.") + if self._path is None: + break + + data: bytes = self._path.read_bytes() + hash: str = sha256(data).digest().hex() + source: str = data.decode('utf-8') + + if not self._latestHash == hash: + if hash not in self._versions.keys(): + self._versions[hash] = source + + self._history[datetime.now()] = hash + self._latestHash = hash + self.fileChanged.emit(self) + else: + print("Ignored update.") + + sleep(1 / Watcher.FPS) + + self.stopped.emit() + return 0 + + def watchFile(self: Self, path: Any) -> None: + if self._path is not None: + self._watcher.removePath(str(self._path)) + + self._versions: Dict[str, str] = {} + self._history: Dict[datetime, str] = {} + self._latestHash: Optional[str] = None + self._path = Path(path) + + self._watcher.addPath(str(self._path)) + self._watcher.fileChanged.connect(self.updateFile) + self.fileLoaded.emit(str(self._path)) + + def updateFile(self: Self) -> None: + self._queue.put(None) + + def saveHistory(self: Self, filename: Any) -> None: + Path(filename).write_text(dumps( + { + "versions": self._versions, + "history": list(map( + lambda _datetime: { + "datetime": _datetime.isoformat(), + "sha256": self._history[_datetime], + }, + self._history, + )), + }, + indent=4, + )) + self.historyExported.emit(filename) + + @property + def latestHash(self: Self) -> Optional[str]: + return self._latestHash + + def reset(self: Self) -> None: + self._reset = True diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/simple_error_shader.frag b/tests/simple_error_shader.frag new file mode 100644 index 0000000..88a6e0d --- /dev/null +++ b/tests/simple_error_shader.frag @@ -0,0 +1,10 @@ +#version 450 + +out vec4 out_color; + +uniform float iTime; +uniform vec2 iResolution; + +void main() { + a +} diff --git a/tests/simple_shader.frag b/tests/simple_shader.frag new file mode 100644 index 0000000..a0f04d1 --- /dev/null +++ b/tests/simple_shader.frag @@ -0,0 +1,10 @@ +#version 450 + +out vec4 out_color; + +uniform float iTime; +uniform vec2 iResolution; + +void main() { + out_color = vec4(0, 1, 0, 1); +} diff --git a/tests/test_minifier.py b/tests/test_minifier.py new file mode 100644 index 0000000..f4f3ed7 --- /dev/null +++ b/tests/test_minifier.py @@ -0,0 +1,45 @@ +from unittest import ( + TestCase, + main, +) +from typing import ( + Self, +) +from shader_minifier import ( + shader_minifier, + MinifierVersion, + ObtainmentStrategy, + ValidationError, + ShaderMinifierError, +) +from importlib.resources import files +import tests + + +class TestMinifier(TestCase): + SimpleShaderSource: str = (files(tests) / 'simple_shader.frag').read_text() + SimpleErrorShaderSource: str = (files(tests) / 'simple_error_shader.frag').read_text() + + def testPath(self: Self) -> None: + minifier: shader_minifier = shader_minifier() + self.assertEqual(minifier.version, MinifierVersion.v1_3_6) + + def testDownload(self: Self) -> None: + minifier: shader_minifier = shader_minifier( + version=MinifierVersion.v1_3_3, + obtain=ObtainmentStrategy.Download, + ) + self.assertEqual(shader_minifier.determineVersion(minifier.path), MinifierVersion.v1_3_3) + + def testMinify(self: Self) -> None: + result: str = shader_minifier().minify(TestMinifier.SimpleShaderSource) + self.assertIsNotNone(result) + self.assertNotEqual(result, '') + + def testMinifyError(self: Self) -> None: + with self.assertRaises(ValidationError) as error: + shader_minifier().minify(TestMinifier.SimpleErrorShaderSource) + + +if __name__ == '__main__': + main()