diff --git a/.gitattributes b/.gitattributes
index a6344aac8c09253b3b630fb776ae94478aa0275b..19f713198a07a288ec10ec8637be85da145e26fa 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -33,3 +33,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
+extensions/canvas-zoom/dist/templates/frontend/assets/index-363a40f4.js.map filter=lfs diff=lfs merge=lfs -text
+extensions/sd-canvas-editor/doc/images/overall.png filter=lfs diff=lfs merge=lfs -text
+extensions/sd-canvas-editor/doc/images/panels.png filter=lfs diff=lfs merge=lfs -text
+extensions/sd-canvas-editor/doc/images/photos.png filter=lfs diff=lfs merge=lfs -text
diff --git a/extensions/StylePile/.gitignore b/extensions/StylePile/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..723ef36f4e4f32c4560383aa5987c575a30c6535
--- /dev/null
+++ b/extensions/StylePile/.gitignore
@@ -0,0 +1 @@
+.idea
\ No newline at end of file
diff --git a/extensions/StylePile/LICENSE b/extensions/StylePile/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..f288702d2fa16d3cdf0035b15a9fcbc552cd88e7
--- /dev/null
+++ b/extensions/StylePile/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/extensions/StylePile/README.md b/extensions/StylePile/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..b56f431272a6a8c0b85b03cb903a24249bc7ffca
--- /dev/null
+++ b/extensions/StylePile/README.md
@@ -0,0 +1,98 @@
+
+
+**Note:** This manual is somewhat incomplete at the moment, it does not explain the variable functions, but those should be reasonably self explanatory. Will be finalized later.
+
+**Important:** If you had any previous version you need to remove that from the scripts directory to avoid conflicts. Just delete the **StylePile.py** file and the **StylePile** folder there.
+
+**StylePile**[^1] is an extension for https://github.com/AUTOMATIC1111/stable-diffusion-webui for mixing and matching elements to prompts that affect the style of the result. Hence the name. By default, these elements are placed in a specific order and given strength values. Which means the result sort-of evolves. I have generated thousands of images for each main **Image type** and tweaked the keywords to attempt giving expected results most of the time. Here are some examples on what you can get with a couple of clicks:
+
+
+
+
+
+
+
+I left the less successful results in on purpose, to show that this isn't some magical tool that overcomes all the difficulties that Stable Diffusion currently has. But it does help you go on that artistic journey way easier. So let's begin.
+
+## Installation
+In theory you should be able to use the **Install from URL** feature:
+* Copy the main address (https://github.com/some9000/StylePile) of this repository,
+* In SDUI go to **Extensions tab**,
+* Select **Install from URL** and paste that URL into the **URL for extension's git repository field,
+* Press Install.
+
+If all goes well the necessary directories will be automatically created and all the files downloaded into them. After which the extension should be available under the **Scripts** dropdown in both **txt2img** and **img2img**. If you get error messages or it does not show up even after a full SD restart try this:
+* Click the green **Code** button at the top of the page,
+* Select the **Download ZIP** option,
+* When done extract everything from there and drop it into your **stable-diffusion-webui\extensions\StylePile** folder.
+
+Basically you should have a **scripts** and **StylePile** folder inside that folder. It is ok to have another StylePile folder inside the main one. This is what should show up when it loads (without the cyborg knight, though, you will have to render that on your own):
+
+
+## Base workflow
+As you can see in the above image, the prompt seems fairly simple, but the result has a distinct look. That is thanks to the selections from the StylePile dropdowns below. Main workflow is - come up with a interesting theme, then easily mix and match style elements to get it closer to desired result.
+For example, if you select the **Painting** image type, then almost all results will look like Paintings. Selecting **Mood** will have a certain influence on the overall look in some way (if it's something humanoid it may show emotion, but also colors and overall feel may change). Setting **Colors** will change the general tonality of the result. And setting **View** will attempt to change how the subject is viewed. Attempt, because view appears to be the least reliable keyword. These elements are placed in order of influence and supported by certain strength values. These basic settings produce very quick results close to the general look you want.
+
+Moving on, adding a **Visual style** will combine with **Image type** to influence how the result generally looks. These styles are based on classic and modern Painting/Art/design movements (which I picked after hours and thousands of samples of testing) and can have a strong influence on the end result. Either it will be more realistic or artistic, or look like a comic book etc. In general, this is a really strong element for getting the look you want. Its influence can be adjusted with the slider above. Experiment with the values, keeping in mind that anything above 1.5 will start becoming a mess. In a similar way, but more focused, you can select an **Artist** and, of course, that will have a very visible effect on the result as well. Currently there are 135 artists, 55 art styles and 25 emotions available for selection and represented with preview images.
+
+Strength of these settings has been preset at 1.3, as that appears to be the golden ratio for getting good results. Sometimes very low settings have an interesting result as well. You can, and should, freely mix and match these settings to get different results. Classic Painting styles affected or affecting 3D look quite interesting. Photography can look cool with some of the brighter, more artistic styles etc. Sometimes raising CFG scale to 15,20 or more also helps to REALLY push the style onto the image.
+
+## Advanced workflow
+
+
+StylePile can overtake the generation process, allowing you to generate a large amount of different results with very little extra work. There are two types of variables you can use: [X] and [R]. When you add an [X] to your prompt, it sequentially takes values from the **Sequential prompts** text area. You can have dozens of lines there and they will be processed in sequence. When you add [R] to the prompt a value from the **Random prompts** text area will be inserted in its place. By combining these a huge variety in prompts is very easy to do.
+
+When using this, **Batch count** will move through the prompts and **Batch size** will set how many copies with the given prompt to make. If the seed is not random, it will increase with each batch size step. Any random elements will still be picked randomly. Here are the results from the demo above:
+
+
+## Tips and tricks
+If you add your own Artist, I would recommend having "by Artist" in front of their name. Depending on Artist's popularity (or lack thereof) this appears to have a very tangible influence on the result.
+
+Parenthesis can be added to make pArts of the prompt stronger. So **((cute kitten))** will make it extra cute (try it out). This is also important if a style is affecting your original prompt too much. Make that prompt stronger by adding parenthesis around it, like this: **((promt))**. A strength modifier value can also be used, like this **(prompt:1.1)**. To save some typing you can select the line you want to make stronger and use **Ctrl+Shift+Arrow keys up** or **down** to add these parenthesis and change the value. As you can see by default values on most sliders, 1.3 seems like a good stArting point if you want to see some impact.
+
+Prompts can be split like **[A|B]** to sequentially use terms, one after another on each step. For example **[cat|dog]** will produce a hybrid catdog.
+
+Using **[A:B:0.4]** will switch to other terms after the first one has been active for a certain percentage of steps. So **[cat:dog:0.4]** will build a cat 40% of the time and then start turning it into a dog. Usually this needs more steps to work properly.
+
+Additionally the command line will also share more information than by default so you can get a better idea on the progress of your artworks:
+
+
+## In conclusion
+I made this because manually changing keywords, looking up possible styles, etc was a pain. It is meant as a fun tool to explore possibilities and make learning Stable Diffusion easier. If you have some ideas or, better yet, would like to contribute[^2] in some way do get in touch.
+
+
+
+
+
+## Focus on (partially implemented)
+At the bottom the **Focus on** option adds a much larger amount of elements to the prompt with a single click. And that greatly affects the final result. Currently there are not too many presets but, hopefully, with your help that will change soon. So here is how it works:
+
+Prompt of **Knight in armor** without any input:
+
+
+
+A little boring, a little random. Let's try **Feminine and extra attractive**:
+
+
+
+And now **Masculine and extra attractive**:
+
+
+
+There are also more artistic adjustments, such as **Monsters**. A trick was used in this example - if you use just the Monsters focus the result will be mostly chaotic and horrifying as a monster should be. But if, as in this case, you pick a style from the menu above that can greatly affect the result. In this case it was Photography and brought a little balance into those results:
+
+
+
+Also, not all adjustments will work with all prompts, such as this **Robots** one having a hard time with knights:
+
+
+
+So you should just mix and match and experiment to find out which styles work well together. Or don't, that also produces interesting results.
+
+# With img2img
+For example, you liked that lady knight example from above, but would prefer it as a painting. Just transfer it to img2img, mix styles with Focus and get a pleasant result quickly (but, preferrably do a batch, Stable Diffusion still doesn't magically make every result great).
+
+
+
+[^1]: Pun intended.
+[^2]: Hey, if you have a 12Gb graphics card just laying around I'm happy to take it (:
diff --git a/extensions/StylePile/StylePile/Art Movements/50s Art.jpg b/extensions/StylePile/StylePile/Art Movements/50s Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7991b1b5d6079834c42cb446ffe24bb8c78c5739
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/50s Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/60s Art.jpg b/extensions/StylePile/StylePile/Art Movements/60s Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..755fab125431cf62404763d39310b99fc0a5bc76
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/60s Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/70s Art.jpg b/extensions/StylePile/StylePile/Art Movements/70s Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..410d80359e8cb42959d830a52d2bb8381743ccd0
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/70s Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/80s Art.jpg b/extensions/StylePile/StylePile/Art Movements/80s Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..045266c8707879b7da9c3010c8ab587d1974de38
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/80s Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Abstract Art.jpg b/extensions/StylePile/StylePile/Art Movements/Abstract Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3a865cde7e0717e3958af51727bee31937dc34a2
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Abstract Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Abstract Expressionism.jpg b/extensions/StylePile/StylePile/Art Movements/Abstract Expressionism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c9afcd411649809f43f77bda4fefd28d570693df
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Abstract Expressionism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Abstract Illusionism.jpg b/extensions/StylePile/StylePile/Art Movements/Abstract Illusionism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e1088435e056eee978c4f9dbc245e059b980d650
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Abstract Illusionism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Academism.jpg b/extensions/StylePile/StylePile/Art Movements/Academism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bb7a09b0f98ecb4003108b4b87c9de69be01b441
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Academism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Action Painting.jpg b/extensions/StylePile/StylePile/Art Movements/Action Painting.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eaa68f310c11426c734e1a571ab69a967fbca096
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Action Painting.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Aestheticism.jpg b/extensions/StylePile/StylePile/Art Movements/Aestheticism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4361d60ac715f6ab899b396bedfdb87aa0a8c031
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Aestheticism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Afrofuturism.jpg b/extensions/StylePile/StylePile/Art Movements/Afrofuturism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..38612daa065677e2103b5a8c6550c7417b30f886
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Afrofuturism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/American Impressionism.jpg b/extensions/StylePile/StylePile/Art Movements/American Impressionism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9d3dbe38d54b0eb38dd2228e93dc64f58676770d
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/American Impressionism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/American Scene Painting.jpg b/extensions/StylePile/StylePile/Art Movements/American Scene Painting.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8d6017364bcc3f15dd9e9c24fdb8a8cf6413a258
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/American Scene Painting.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Art Brut.jpg b/extensions/StylePile/StylePile/Art Movements/Art Brut.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6ef5e38613b0be68000a24c6e3006ddb0230f34e
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Art Brut.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Art Deco.jpg b/extensions/StylePile/StylePile/Art Movements/Art Deco.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8b33581e3f17a01c620d3a6a31de8bb3ef25bbef
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Art Deco.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Art Nouveau.jpg b/extensions/StylePile/StylePile/Art Movements/Art Nouveau.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..db65b3e05132608dcea2cc47e5e331cb4605ba30
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Art Nouveau.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Art Photography.jpg b/extensions/StylePile/StylePile/Art Movements/Art Photography.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e11d19166d3b753d54d228878ef9c677445ab6e4
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Art Photography.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Arts and Crafts Movement.jpg b/extensions/StylePile/StylePile/Art Movements/Arts and Crafts Movement.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d2ca87d7ac00d5de6000565aa4d2370181cc9268
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Arts and Crafts Movement.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Ascii Art.jpg b/extensions/StylePile/StylePile/Art Movements/Ascii Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4a4dc600372af81030bd88edaf398f28a067c1e4
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Ascii Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Ashcan School.jpg b/extensions/StylePile/StylePile/Art Movements/Ashcan School.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e4b2372b6bad49d17d5f844130cf5ec4b9822747
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Ashcan School.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Australian Tonalism.jpg b/extensions/StylePile/StylePile/Art Movements/Australian Tonalism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b935394dcb505e331b9c065a98e3a96fbbd435c6
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Australian Tonalism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Baroque Art.jpg b/extensions/StylePile/StylePile/Art Movements/Baroque Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..37bd4e707f4f0b19be5c2a60310b38c644b1474f
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Baroque Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Bauhaus Art.jpg b/extensions/StylePile/StylePile/Art Movements/Bauhaus Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8d729d8a360360be07c35a15e5dbfe5c5e9fef75
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Bauhaus Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Berlin Secession.jpg b/extensions/StylePile/StylePile/Art Movements/Berlin Secession.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5a7bb79ec778875a26526bccdd8ce09749370067
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Berlin Secession.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/CGI Art.jpg b/extensions/StylePile/StylePile/Art Movements/CGI Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..93709795ccfbe9eb990ca528ce6bd166c849d655
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/CGI Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Classical Realism.jpg b/extensions/StylePile/StylePile/Art Movements/Classical Realism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d8ed3a4819198ec7da267dcd25448ba4dac7dd13
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Classical Realism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Classicism Art.jpg b/extensions/StylePile/StylePile/Art Movements/Classicism Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1a5362e2eb8227c305134ed7e440e04427f0b3e7
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Classicism Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Cloisonnism.jpg b/extensions/StylePile/StylePile/Art Movements/Cloisonnism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..13cae2827ed3ffaec760b787be068a2685584db9
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Cloisonnism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Computer Art.jpg b/extensions/StylePile/StylePile/Art Movements/Computer Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bcc5f8465d3726a33b577c6f723e8489393039ec
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Computer Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Conceptual Art.jpg b/extensions/StylePile/StylePile/Art Movements/Conceptual Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7cafc9b9f416bddab9b3458f8730337471cc2a5e
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Conceptual Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Constructivism Art.jpg b/extensions/StylePile/StylePile/Art Movements/Constructivism Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..855a1d57e6a020f30636346fb33085dc71e07f22
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Constructivism Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Crystal Cubism.jpg b/extensions/StylePile/StylePile/Art Movements/Crystal Cubism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..52e22bee5a48c0feb8ad3a66651e83ca45fa5074
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Crystal Cubism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Cubism.jpg b/extensions/StylePile/StylePile/Art Movements/Cubism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d5d5b27193bc663acbdbc83fb7455aef8cef6569
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Cubism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Cubo-Futurism.jpg b/extensions/StylePile/StylePile/Art Movements/Cubo-Futurism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..514f7777ec5f0ec5a172769fc3d7c676cf2ebfc6
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Cubo-Futurism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Cutester Art.jpg b/extensions/StylePile/StylePile/Art Movements/Cutester Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7145567f1b9b04fe494306561625807e83f59a1b
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Cutester Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Cybergoth Art.jpg b/extensions/StylePile/StylePile/Art Movements/Cybergoth Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e22aa2cfe351150c390303cad0b1f65bc04e1d93
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Cybergoth Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Cyberpunk Art.jpg b/extensions/StylePile/StylePile/Art Movements/Cyberpunk Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c6b803e6323c8ba956575cdb3db064caf46ffb6b
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Cyberpunk Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Dada Art.jpg b/extensions/StylePile/StylePile/Art Movements/Dada Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7c70688c09dc4d11b60b3481207d5a7359fecb0f
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Dada Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Dark Wave Art.jpg b/extensions/StylePile/StylePile/Art Movements/Dark Wave Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7ad634e7be39f07d7685fe2aaeb5ee967f9ab41e
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Dark Wave Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Digital Art.jpg b/extensions/StylePile/StylePile/Art Movements/Digital Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0b0213db563e5423b37d698914b12fc5818b41fd
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Digital Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Emo Art.jpg b/extensions/StylePile/StylePile/Art Movements/Emo Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b69531d8c2c89abff7480c07cfc906030aabc44c
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Emo Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Expressionism.jpg b/extensions/StylePile/StylePile/Art Movements/Expressionism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9600fa72454982a0c880c6ad3a55ae1993cf7d01
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Expressionism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Fauvism.jpg b/extensions/StylePile/StylePile/Art Movements/Fauvism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..110fdf8552bed4e308072f14d5b341e76c4043b5
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Fauvism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Figurative Art.jpg b/extensions/StylePile/StylePile/Art Movements/Figurative Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1e72c1735c0072a47d8f752bf8ac7975d1df8ada
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Figurative Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Fluxus Art.jpg b/extensions/StylePile/StylePile/Art Movements/Fluxus Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9921d00fb9aefd4dbafda45eae1ecb7378039084
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Fluxus Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Folk Art.jpg b/extensions/StylePile/StylePile/Art Movements/Folk Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6536cab38b3a971328c03372200d7e7431c8090f
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Folk Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Funk Art.jpg b/extensions/StylePile/StylePile/Art Movements/Funk Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b626082655f355d1b1c67fb11d5d7ffe8454dcc0
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Funk Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Futurism.jpg b/extensions/StylePile/StylePile/Art Movements/Futurism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5e507b4152273a9716e075fc43a03a36e4f32cbe
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Futurism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Geometric Abstract Art.jpg b/extensions/StylePile/StylePile/Art Movements/Geometric Abstract Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..74b0e95b07cb863d5ce70cffba0b9d74f9fa2028
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Geometric Abstract Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Glitch Art.jpg b/extensions/StylePile/StylePile/Art Movements/Glitch Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bc313718088bf9fdcbca164fe92e295940292756
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Glitch Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Graffiti Street Art.jpg b/extensions/StylePile/StylePile/Art Movements/Graffiti Street Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4c6208ccf7960062ddd8fcc395e8a4f1731c9c9e
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Graffiti Street Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Grunge Art.jpg b/extensions/StylePile/StylePile/Art Movements/Grunge Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..26674a86a7945bffd8193a848a4776b039c6d1e3
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Grunge Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Gutai Group.jpg b/extensions/StylePile/StylePile/Art Movements/Gutai Group.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..08b01c1c737b25040ad3dfb88f3b988172c8a2b2
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Gutai Group.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Hardcore Art.jpg b/extensions/StylePile/StylePile/Art Movements/Hardcore Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a23f4bd097d127be145cbb530871d823c81f903c
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Hardcore Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Harlem Renaissance.jpg b/extensions/StylePile/StylePile/Art Movements/Harlem Renaissance.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5810901ca2d6786b6c7290c4ab9b341221e81387
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Harlem Renaissance.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Health Goth Art.jpg b/extensions/StylePile/StylePile/Art Movements/Health Goth Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0f6f779587b87e05d4d025563af39c52fb7c573e
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Health Goth Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Heidelberg School.jpg b/extensions/StylePile/StylePile/Art Movements/Heidelberg School.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6862844cce3f35ed7391c2f6b5327af0be132506
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Heidelberg School.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Hippie Art.jpg b/extensions/StylePile/StylePile/Art Movements/Hippie Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..55082a4ba6ac9ff576849c05dbe3e711915ef87f
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Hippie Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Hipster Art.jpg b/extensions/StylePile/StylePile/Art Movements/Hipster Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4a6296e2b26bb33944ea2ef394364b3432be0e16
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Hipster Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Hyperrealism.jpg b/extensions/StylePile/StylePile/Art Movements/Hyperrealism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c1e7ec5b77c585e26d5c475fabc2f691279cc114
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Hyperrealism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Impressionism.jpg b/extensions/StylePile/StylePile/Art Movements/Impressionism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..39438d5d43cc739a943685fc6601a866bd93200b
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Impressionism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Industrial Art.jpg b/extensions/StylePile/StylePile/Art Movements/Industrial Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b54a979eebd5381abddb6a4c52d77bedcc9a64ea
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Industrial Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Kinetic Pointillism.jpg b/extensions/StylePile/StylePile/Art Movements/Kinetic Pointillism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3b34fb856cf7f4eb5da0624431ad819ae5f0b2c7
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Kinetic Pointillism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Land Art.jpg b/extensions/StylePile/StylePile/Art Movements/Land Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..33714635bacc43cbe5dd7a057aca5a56737f2abc
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Land Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Lowbrow Art.jpg b/extensions/StylePile/StylePile/Art Movements/Lowbrow Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b3d70b8673d465fae8f6c0438cb30fb735e95d13
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Lowbrow Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Lyrical Abstraction.jpg b/extensions/StylePile/StylePile/Art Movements/Lyrical Abstraction.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0f0c823b71e214b4bdac7cb748d8fc67d5e2c5ad
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Lyrical Abstraction.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Magical Realism.jpg b/extensions/StylePile/StylePile/Art Movements/Magical Realism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..221e8a16ec27f8581a7e4141080d594255bb0c22
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Magical Realism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Mannerism Art.jpg b/extensions/StylePile/StylePile/Art Movements/Mannerism Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..322ce1425d01afdc6488985cd8a6382cb667cc51
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Mannerism Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Memecore Ar.jpg b/extensions/StylePile/StylePile/Art Movements/Memecore Ar.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..39bf48dfd29bcd8265a94b41df7ee0e32de45caf
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Memecore Ar.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Metaphysical Painting.jpg b/extensions/StylePile/StylePile/Art Movements/Metaphysical Painting.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..788bed83bbd3782eaaa27737c644b6c5a39edc33
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Metaphysical Painting.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Mingei.jpg b/extensions/StylePile/StylePile/Art Movements/Mingei.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5c0056e0c51bf317cb468c16b55517d1912d747d
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Mingei.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Minimalism Art.jpg b/extensions/StylePile/StylePile/Art Movements/Minimalism Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bbb621efb2326504eeb7d52232e5090cff7760b3
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Minimalism Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Modern Art.jpg b/extensions/StylePile/StylePile/Art Movements/Modern Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6bedd5c8d4fb0c783d76d2d1f4d797b99bc3a850
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Modern Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Modern European Ink Painting.jpg b/extensions/StylePile/StylePile/Art Movements/Modern European Ink Painting.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d1e70ae8acb48f784ff36267ff317f48d324f814
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Modern European Ink Painting.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Modernism Art.jpg b/extensions/StylePile/StylePile/Art Movements/Modernism Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..94a1ab4374ea73da85bc11ab208d5558129baf6c
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Modernism Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Naive Art.jpg b/extensions/StylePile/StylePile/Art Movements/Naive Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e5fd263348936453a2510fa907b7fa1f1da604ab
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Naive Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Neo Dada Art.jpg b/extensions/StylePile/StylePile/Art Movements/Neo Dada Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3e0cfbe8efb560c90f99b3e917a3274268deffdd
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Neo Dada Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Neo-Dadaism Art.jpg b/extensions/StylePile/StylePile/Art Movements/Neo-Dadaism Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0f8a3a42a765f07c28e9c4960f5799f6c734f59e
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Neo-Dadaism Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Neo-Expressionism.jpg b/extensions/StylePile/StylePile/Art Movements/Neo-Expressionism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1a456229d4d66a67662cf2c88e4276be89cdb117
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Neo-Expressionism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Neo-Fauvism.jpg b/extensions/StylePile/StylePile/Art Movements/Neo-Fauvism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f3926182ddffccb8574ef3b9783daf01d86229f5
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Neo-Fauvism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Neo-Primitivism.jpg b/extensions/StylePile/StylePile/Art Movements/Neo-Primitivism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6895598f656cdaffd9dd1d4e5ba9c0501cb49357
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Neo-Primitivism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Neo.jpg b/extensions/StylePile/StylePile/Art Movements/Neo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d2cc12e217638435219a866be35a9f12a6709627
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Neo.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Neoclassicism.jpg b/extensions/StylePile/StylePile/Art Movements/Neoclassicism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..583e237b696abc39a88b464b043ff8dbba42b06a
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Neoclassicism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Neogothic Art.jpg b/extensions/StylePile/StylePile/Art Movements/Neogothic Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..92f7631ee3770415535c71acd91bfb521ece26a0
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Neogothic Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/New Wave Art.jpg b/extensions/StylePile/StylePile/Art Movements/New Wave Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b622892c100eebee2ed1cc017c3ac9123f2fc2da
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/New Wave Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Normcore Art.jpg b/extensions/StylePile/StylePile/Art Movements/Normcore Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2faba7d8451741c2b7f2e60425806e1bde1bc99e
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Normcore Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Nu Goth Art.jpg b/extensions/StylePile/StylePile/Art Movements/Nu Goth Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5a96d715e932984cc9d73e0e5aa0a42c37c88713
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Nu Goth Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Orphism.jpg b/extensions/StylePile/StylePile/Art Movements/Orphism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b1b34d198f77322c7d5610ca2f30062297b29880
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Orphism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Panfuturism.jpg b/extensions/StylePile/StylePile/Art Movements/Panfuturism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9a26468d29ab2ebc82a172e432fa81a422dfd29a
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Panfuturism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Pastel Goth Art.jpg b/extensions/StylePile/StylePile/Art Movements/Pastel Goth Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cd5e251c6a8da32dce8f6d423837ebd23487c48b
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Pastel Goth Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Photorealism.jpg b/extensions/StylePile/StylePile/Art Movements/Photorealism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4d3b72489b329716d8c28a220c035988c1899304
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Photorealism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Pixel Art.jpg b/extensions/StylePile/StylePile/Art Movements/Pixel Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..32e170dc5819a43ba36de17c2519aa2d81dd9d50
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Pixel Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Pointillism.jpg b/extensions/StylePile/StylePile/Art Movements/Pointillism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..88dc11b6671fc3cfeb341e54bbc8e5f25fd47eb5
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Pointillism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Pop Art.jpg b/extensions/StylePile/StylePile/Art Movements/Pop Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..369a84c493d09c96163bc91f7d998a3ea397f1e6
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Pop Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Post-Impressionism.jpg b/extensions/StylePile/StylePile/Art Movements/Post-Impressionism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d4003bd216b3c7e6fd602aa92bd9babd32112702
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Post-Impressionism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Pre-Raphaelitism.jpg b/extensions/StylePile/StylePile/Art Movements/Pre-Raphaelitism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e1ff52f838a4b43b909871f0a8d5057c62b5d2b9
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Pre-Raphaelitism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Primitivism Art.jpg b/extensions/StylePile/StylePile/Art Movements/Primitivism Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..199c04b17e9106066a7df955ce29f104b133b4e3
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Primitivism Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Primitivism.jpg b/extensions/StylePile/StylePile/Art Movements/Primitivism.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..809b4f02a59aeb7ea450b743da72f0d22e3fc51b
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Primitivism.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Private Press.jpg b/extensions/StylePile/StylePile/Art Movements/Private Press.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..44bebd1ac52e115ada3a7e9fe38d9810971a070b
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Private Press.jpg differ
diff --git a/extensions/StylePile/StylePile/Art Movements/Process Art.jpg b/extensions/StylePile/StylePile/Art Movements/Process Art.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c6442156c46b3201b7155d6ffd079484e27e99f3
Binary files /dev/null and b/extensions/StylePile/StylePile/Art Movements/Process Art.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Adam Hughes.jpg b/extensions/StylePile/StylePile/Artists/Adam Hughes.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..136d3a079943e4d4ed191948fde05d6f29f1ca1c
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Adam Hughes.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Adi Granov.jpg b/extensions/StylePile/StylePile/Artists/Adi Granov.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6b4147f96adf8a060bc2b584c20845555a789e07
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Adi Granov.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Adolf Kosarek.jpg b/extensions/StylePile/StylePile/Artists/Adolf Kosarek.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1268c90e74a49c05b848df866b3e50a6a0dcb316
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Adolf Kosarek.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Adolph Von Menzel.jpg b/extensions/StylePile/StylePile/Artists/Adolph Von Menzel.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b5b447fefad151965e68cca1865d001602eb75c4
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Adolph Von Menzel.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Akihiko Yoshida.jpg b/extensions/StylePile/StylePile/Artists/Akihiko Yoshida.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..34343124c0ae5321dff4b2d29121189677fff810
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Akihiko Yoshida.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Al Williamson.jpg b/extensions/StylePile/StylePile/Artists/Al Williamson.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..41ab6ba978cb100783fe4a4e48798aabc8a434f4
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Al Williamson.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Albert Lynch.jpg b/extensions/StylePile/StylePile/Artists/Albert Lynch.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..70bf23189b1083ab9755edbb09c265fc0d1165b2
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Albert Lynch.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alberto Seveso.jpg b/extensions/StylePile/StylePile/Artists/Alberto Seveso.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c06a26b911ddbabd02510c5e01da3a07b78fbc11
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alberto Seveso.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alberto Vargas.jpg b/extensions/StylePile/StylePile/Artists/Alberto Vargas.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8325c9c75bd06267aa023c8f06a95d04011c8efd
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alberto Vargas.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alena Aenami.jpg b/extensions/StylePile/StylePile/Artists/Alena Aenami.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d8a8dbc3b27694bf6f115784e8000fc754c500e6
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alena Aenami.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alex Andreev.jpg b/extensions/StylePile/StylePile/Artists/Alex Andreev.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..22d778cb096f4beead4b13e1e4404db16d070a53
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alex Andreev.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alex Grey.jpg b/extensions/StylePile/StylePile/Artists/Alex Grey.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d5d5e4a6e6c4781c8228a789a94c83a1bac0c911
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alex Grey.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alex Ross.jpg b/extensions/StylePile/StylePile/Artists/Alex Ross.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..871834618984b4ed977ac48a9718bff40799f795
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alex Ross.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alex Toth.jpg b/extensions/StylePile/StylePile/Artists/Alex Toth.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cab8a188ddf0a72ab5a94ec9ede2625db10a9fab
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alex Toth.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alexander Archipenko.jpg b/extensions/StylePile/StylePile/Artists/Alexander Archipenko.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ff9bf28383e87458adb9c6e138c7c3ba9eb3cb60
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alexander Archipenko.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alexander Jansson.jpg b/extensions/StylePile/StylePile/Artists/Alexander Jansson.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3d2d3cd2b61794c99b54d39574ad038cb2ccaf72
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alexander Jansson.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alfred Steiglitz.jpg b/extensions/StylePile/StylePile/Artists/Alfred Steiglitz.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..76a65e1da62e214126e5431b9a80cc1ff7ac05b1
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alfred Steiglitz.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alphonse Mucha.jpg b/extensions/StylePile/StylePile/Artists/Alphonse Mucha.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5c92f775eb490e2dec2933df16a3e6641dbed746
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alphonse Mucha.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Alvar Aalto.jpg b/extensions/StylePile/StylePile/Artists/Alvar Aalto.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..40a45a3763db4c0a83c6fba9e730d4ff8b8a303d
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Alvar Aalto.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Anato Finnstark.jpg b/extensions/StylePile/StylePile/Artists/Anato Finnstark.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8fda8dc5dbeb95addfaa5083f0464d0bdf62a852
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Anato Finnstark.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Andre Masson.jpg b/extensions/StylePile/StylePile/Artists/Andre Masson.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2f9c7dfc511ba61ffd75d013235220c77019271b
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Andre Masson.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Andrew Loomis.jpg b/extensions/StylePile/StylePile/Artists/Andrew Loomis.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..338ecfe1886aaf08351e83a8af718feb30632b42
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Andrew Loomis.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Andy Fairhurst.jpg b/extensions/StylePile/StylePile/Artists/Andy Fairhurst.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..db440b6329aa6f28b367d3552c10ba48a462103f
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Andy Fairhurst.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Anna Dittman.jpg b/extensions/StylePile/StylePile/Artists/Anna Dittman.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..47100d0e398b301e87e0c65d0e066cc1ff3b7e61
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Anna Dittman.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Apollonia Saintclair.jpg b/extensions/StylePile/StylePile/Artists/Apollonia Saintclair.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f05421cc5fa98a6bf069a97a666906dfe2ca8126
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Apollonia Saintclair.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Artgerm.jpg b/extensions/StylePile/StylePile/Artists/Artgerm.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1e30e8f0eb095224afa3f56b9ce03b79c025dea8
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Artgerm.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Arthur Adams.jpg b/extensions/StylePile/StylePile/Artists/Arthur Adams.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..86811983a489d64b9458baae250c6d2e205d82b4
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Arthur Adams.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Arthur Rackham.jpg b/extensions/StylePile/StylePile/Artists/Arthur Rackham.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a6d2e4962ebd19513ee03b678dc5d91fdf594283
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Arthur Rackham.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Aubrey Beardsley.jpg b/extensions/StylePile/StylePile/Artists/Aubrey Beardsley.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d37c7d583ad07eb89706e6c48ce5de0f2334e2c8
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Aubrey Beardsley.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Austin Briggs.jpg b/extensions/StylePile/StylePile/Artists/Austin Briggs.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2e08dde881fe6a9dbb4ac9956115174088cb34be
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Austin Briggs.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Ayami Kojima.jpg b/extensions/StylePile/StylePile/Artists/Ayami Kojima.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a4630da67332115ce7cc80b9b61ebb551bc91b6b
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Ayami Kojima.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Barbara Kruger.jpg b/extensions/StylePile/StylePile/Artists/Barbara Kruger.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..026c02c1c424b38434c6f7389616976d8f57b888
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Barbara Kruger.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bastien Lecouffe Deharme.jpg b/extensions/StylePile/StylePile/Artists/Bastien Lecouffe Deharme.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6226b06500418e87d931a717dcc0370b0c735ad4
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bastien Lecouffe Deharme.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Beeple.jpg b/extensions/StylePile/StylePile/Artists/Beeple.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bbe4bacc0c808b609e346562f92008cdc12f4e79
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Beeple.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bill Sienkiewicz.jpg b/extensions/StylePile/StylePile/Artists/Bill Sienkiewicz.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..52734b209a34257c8e924fdb9712ed4bf031a03e
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bill Sienkiewicz.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bill Ward.jpg b/extensions/StylePile/StylePile/Artists/Bill Ward.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f31bbe17bca2efc2271d5fcb827b9874d0961677
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bill Ward.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bo Bartlett.jpg b/extensions/StylePile/StylePile/Artists/Bo Bartlett.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..406a371ae5e411a8c7ae3f542073ae435ee49498
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bo Bartlett.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bob Byerley.jpg b/extensions/StylePile/StylePile/Artists/Bob Byerley.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..35b52b3fe72e877277516c23d56d52836012f6e2
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bob Byerley.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bob Eggleton.jpg b/extensions/StylePile/StylePile/Artists/Bob Eggleton.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7031c7f308457e9265eb5804ab4e99282eb9cb6f
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bob Eggleton.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bob Haberfield.jpg b/extensions/StylePile/StylePile/Artists/Bob Haberfield.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c9d9410408c55dab69c305d4810820f5b2995622
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bob Haberfield.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bob Peak.jpg b/extensions/StylePile/StylePile/Artists/Bob Peak.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..39fc923d3639eee23203dbb7d643759d52f29be2
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bob Peak.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Boris Vallejo.jpg b/extensions/StylePile/StylePile/Artists/Boris Vallejo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fa977197277ec98947310c9463812f80da1d26db
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Boris Vallejo.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Brandon Woelfel.jpg b/extensions/StylePile/StylePile/Artists/Brandon Woelfel.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bb90a27a0f6b94e391f0c6f482c87f6f3ac67c11
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Brandon Woelfel.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Brian Bolland.jpg b/extensions/StylePile/StylePile/Artists/Brian Bolland.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..078d7237a1ea9e40247a11fa250f0278901eced0
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Brian Bolland.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Brian Froud.jpg b/extensions/StylePile/StylePile/Artists/Brian Froud.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a51c655fd95c6e3bf992adf6b3bc4fe60a069e11
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Brian Froud.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bruce Pennington.jpg b/extensions/StylePile/StylePile/Artists/Bruce Pennington.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e8c05ad266b4063e24502db7a84e2f2b7c8d239e
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bruce Pennington.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Bryan Hitch.jpg b/extensions/StylePile/StylePile/Artists/Bryan Hitch.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..61d0aa79ebc17da47e4d93fd814ec19383220570
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Bryan Hitch.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Butcher Billy.jpg b/extensions/StylePile/StylePile/Artists/Butcher Billy.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..20ff36f2b67f6b629f922f5300bb4323a50a1181
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Butcher Billy.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Camille Walala.jpg b/extensions/StylePile/StylePile/Artists/Camille Walala.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ecef23c297ff9708803f9a5afdfee6e71e4bb37b
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Camille Walala.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Carel Willink.jpg b/extensions/StylePile/StylePile/Artists/Carel Willink.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fb074190a9ca4ab63e9700d6a1be7ef7c44f6712
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Carel Willink.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Carmine Infantino.jpg b/extensions/StylePile/StylePile/Artists/Carmine Infantino.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7647b2e6cb5c1f0b2e6973d43bed2d84bee60087
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Carmine Infantino.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Carrie Ann Baade.jpg b/extensions/StylePile/StylePile/Artists/Carrie Ann Baade.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6a8c67f427cb88af5eb26414e745b767e5e46e7c
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Carrie Ann Baade.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Casey Baugh.jpg b/extensions/StylePile/StylePile/Artists/Casey Baugh.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..beab2500e79491681099e07d7040df817eb36e37
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Casey Baugh.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Casey Weldon.jpg b/extensions/StylePile/StylePile/Artists/Casey Weldon.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4196b5dfdbcf330ccdaea3a3ffbaf79e145e2e27
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Casey Weldon.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Cedric Peyravernay.jpg b/extensions/StylePile/StylePile/Artists/Cedric Peyravernay.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..386a60fd74e78a4bbe3629889387733404225685
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Cedric Peyravernay.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Charles Adams.jpg b/extensions/StylePile/StylePile/Artists/Charles Adams.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4efde847ca7d5b79c87054a5d2d937b74b05de69
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Charles Adams.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Charlie Bowater.jpg b/extensions/StylePile/StylePile/Artists/Charlie Bowater.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dd5a1fdedd8d5449261dff099338ccf515956fb2
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Charlie Bowater.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Chesley Bonestell.jpg b/extensions/StylePile/StylePile/Artists/Chesley Bonestell.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e72046ecf237de73ef051ca31f57a6915a188e29
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Chesley Bonestell.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Chris Foss.jpg b/extensions/StylePile/StylePile/Artists/Chris Foss.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..70f1f1b0b1a35ad8de039aa5f39deeb43ecfddb5
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Chris Foss.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Christopher Balaskas.jpg b/extensions/StylePile/StylePile/Artists/Christopher Balaskas.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..af51f5cada2d6d15eea232499413ac6bbacc6a3a
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Christopher Balaskas.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Claude Monet.jpg b/extensions/StylePile/StylePile/Artists/Claude Monet.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dec7906e29d55e870b06190b5914f44f5af01d25
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Claude Monet.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Clive Barker.jpg b/extensions/StylePile/StylePile/Artists/Clive Barker.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4d90eb3325e9c1e29085edb053baa4a02a6331d6
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Clive Barker.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Coles Phillips.jpg b/extensions/StylePile/StylePile/Artists/Coles Phillips.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ccb0effb20729fd2473527ce70d10f5758f6812c
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Coles Phillips.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Conrad Roset.jpg b/extensions/StylePile/StylePile/Artists/Conrad Roset.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ea85cc7c79a19ef1e3211bcbdfceb13c2e300df6
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Conrad Roset.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Curt Swan.jpg b/extensions/StylePile/StylePile/Artists/Curt Swan.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b87135537e0b3b1c6d8e23383d2fdf60fde3bc02
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Curt Swan.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Dan Mumford.jpg b/extensions/StylePile/StylePile/Artists/Dan Mumford.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a7c53a7a186ce02b5eb4599d3504101ae119694b
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Dan Mumford.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Diego Rivera.jpg b/extensions/StylePile/StylePile/Artists/Diego Rivera.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..72e1fdd7d6c45cb3eb9cfae6f8389d26f55074c8
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Diego Rivera.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Don Bergland.jpg b/extensions/StylePile/StylePile/Artists/Don Bergland.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0e271e584a5d94d9e9a4f109973a3ab9c9cbc634
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Don Bergland.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Donato Giancola.jpg b/extensions/StylePile/StylePile/Artists/Donato Giancola.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9041be7422b9169314ea572e580ba1b5fc7dd862
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Donato Giancola.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Dorina Costras.jpg b/extensions/StylePile/StylePile/Artists/Dorina Costras.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..af6ab7383ea7f85b80358dfe01b1ecd7c9329b74
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Dorina Costras.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/E.H. Shepard.jpg b/extensions/StylePile/StylePile/Artists/E.H. Shepard.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3c8fe37ea671f98dd9f696ca590a803d76324618
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/E.H. Shepard.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Earl Norem.jpg b/extensions/StylePile/StylePile/Artists/Earl Norem.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ebbd701f0c4c9e0de53c5df648398939ab679be3
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Earl Norem.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Earle Bergey.jpg b/extensions/StylePile/StylePile/Artists/Earle Bergey.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a83cbd1b9652b642c1d261d7593b76ad06d182c9
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Earle Bergey.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Earnst Haeckel.jpg b/extensions/StylePile/StylePile/Artists/Earnst Haeckel.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..14ae4374649b731e4cc4d97fc1d84c7b97bd9022
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Earnst Haeckel.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Ed Emshwiller.jpg b/extensions/StylePile/StylePile/Artists/Ed Emshwiller.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7bfb808ce716a15235ba53ed5cd381723943d4ff
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Ed Emshwiller.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Ed Mell.jpg b/extensions/StylePile/StylePile/Artists/Ed Mell.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ade131d9aff03457a0f3e9163b4aa2811e6d3105
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Ed Mell.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Edith Head.jpg b/extensions/StylePile/StylePile/Artists/Edith Head.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..99500df5360747a027490c2f575e06c7bc538f50
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Edith Head.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Edmund Dulac.jpg b/extensions/StylePile/StylePile/Artists/Edmund Dulac.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8a26e2e3dba8704cc40f7a78416d8ba4a8cbeafd
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Edmund Dulac.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Edvard Munch.jpg b/extensions/StylePile/StylePile/Artists/Edvard Munch.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..badc2f5aff9c48e05d6461b38526bca7b2ef67dd
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Edvard Munch.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Ellen Jewett.jpg b/extensions/StylePile/StylePile/Artists/Ellen Jewett.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..723b721f25fa996ad36ebf858b4306fd82a0dae2
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Ellen Jewett.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Emily Balivet.jpg b/extensions/StylePile/StylePile/Artists/Emily Balivet.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..152f0802e9d14390a1cd6aff2683ad213ea2250e
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Emily Balivet.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Enki Bilal.jpg b/extensions/StylePile/StylePile/Artists/Enki Bilal.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b72c699c558032292083b788a4d6001fa1bf8e77
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Enki Bilal.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Eric Kennington.jpg b/extensions/StylePile/StylePile/Artists/Eric Kennington.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..00272f0768c1da7eb49b64b17034c2dc426cf187
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Eric Kennington.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Erin Hanson.jpg b/extensions/StylePile/StylePile/Artists/Erin Hanson.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..36497ebc7fdd5960f16cc99884324b19e16c5d6c
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Erin Hanson.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Ernie Barnes.jpg b/extensions/StylePile/StylePile/Artists/Ernie Barnes.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..561f3da0b00b99b2a51ab12e8e31f5896d548557
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Ernie Barnes.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Esao Andrews.jpg b/extensions/StylePile/StylePile/Artists/Esao Andrews.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b82bbfb9fc1e72599ceebffd1be76dea0bbed8c0
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Esao Andrews.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Esteban Maroto.jpg b/extensions/StylePile/StylePile/Artists/Esteban Maroto.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f6d6d65552386a96ea8058eba118dd9da73eba9c
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Esteban Maroto.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Ethan Van Sciver.jpg b/extensions/StylePile/StylePile/Artists/Ethan Van Sciver.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1d9e17b5a0c1ecec0b2e758e2e030e3f802e6bbd
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Ethan Van Sciver.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Eve Ventrue.jpg b/extensions/StylePile/StylePile/Artists/Eve Ventrue.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a9335fd0d39880464306d7b40f1abc40d852b7c0
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Eve Ventrue.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Eyvind Earle.jpg b/extensions/StylePile/StylePile/Artists/Eyvind Earle.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..919704ccf709ce9c36a83a7bf9f35778f7b86996
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Eyvind Earle.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/F. Scott Hess.jpg b/extensions/StylePile/StylePile/Artists/F. Scott Hess.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..be71ed5c7478030733b0f6c4b742d1a222b39618
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/F. Scott Hess.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Fernand Khnopff.jpg b/extensions/StylePile/StylePile/Artists/Fernand Khnopff.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..aca3453005f5aed7f8a022df1e0638195b82938b
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Fernand Khnopff.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Filippino Lippi.jpg b/extensions/StylePile/StylePile/Artists/Filippino Lippi.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bd2be524524e37b26fa9661ab4afb4207463b1a4
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Filippino Lippi.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Frank Bowling.jpg b/extensions/StylePile/StylePile/Artists/Frank Bowling.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..40076e5b1cb9b015c2d94d0101402bd2dc2c9c50
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Frank Bowling.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Frank Cadogan Cowper.jpg b/extensions/StylePile/StylePile/Artists/Frank Cadogan Cowper.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..31f86f014e8256b1f243d226df083bbeedcdd4d1
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Frank Cadogan Cowper.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Frank Frazetta.jpg b/extensions/StylePile/StylePile/Artists/Frank Frazetta.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f85166870b91bd889f420efb4db474646b450a2f
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Frank Frazetta.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Frank Tenney Johnson.jpg b/extensions/StylePile/StylePile/Artists/Frank Tenney Johnson.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1bae54c8f1710a1aa6be6436523167f911bc7e3b
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Frank Tenney Johnson.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Frank Xavier.jpg b/extensions/StylePile/StylePile/Artists/Frank Xavier.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..48bb63e27c9e7bfd4525e1a981fb7ce80a3a26cc
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Frank Xavier.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Franklin Booth.jpg b/extensions/StylePile/StylePile/Artists/Franklin Booth.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7449aadacc8a4e912b502dd2fb719d2a9f59f5c7
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Franklin Booth.jpg differ
diff --git a/extensions/StylePile/StylePile/Artists/Fred Calleri.jpg b/extensions/StylePile/StylePile/Artists/Fred Calleri.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6ed25be5e675d05f028a38d87e08baa13d73226d
Binary files /dev/null and b/extensions/StylePile/StylePile/Artists/Fred Calleri.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Agfacolor.jpg b/extensions/StylePile/StylePile/Colors/Agfacolor.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..39782fc422ad4af528e8e98f1a0704c1b4786b9d
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Agfacolor.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/BW.jpg b/extensions/StylePile/StylePile/Colors/BW.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7a7e352d26bf469ffc100e408a411b5c15940c8c
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/BW.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Blue hue.jpg b/extensions/StylePile/StylePile/Colors/Blue hue.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2328567362d2eec053300e38ec8c210ac22f98ec
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Blue hue.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/CMYK Colors.jpg b/extensions/StylePile/StylePile/Colors/CMYK Colors.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ce4e11940a9be49254a6219ac7647d36ffd66e3d
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/CMYK Colors.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Cathode tube.jpg b/extensions/StylePile/StylePile/Colors/Cathode tube.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eb80d90fd7815e18fd01107f6e77bea81cf94a42
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Cathode tube.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/CineColor.jpg b/extensions/StylePile/StylePile/Colors/CineColor.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..67ccfa79b0ba5ad1616f9f1fcdd37d8731fa6614
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/CineColor.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Cold Colors.jpg b/extensions/StylePile/StylePile/Colors/Cold Colors.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e569411d7f1b0e9fd96a8af16fe179c3f064d7cc
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Cold Colors.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Colorful.jpg b/extensions/StylePile/StylePile/Colors/Colorful.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..21f1381aada08458a252487dcbd746df3ff200a2
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Colorful.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Colorless.jpg b/extensions/StylePile/StylePile/Colors/Colorless.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e6c0935cdad06bf1375e8ffb201074255c3ed636
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Colorless.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Cyan hue.jpg b/extensions/StylePile/StylePile/Colors/Cyan hue.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b7c0e80f1d2d47094b3009563e2d568367b0f90e
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Cyan hue.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Dark hue.jpg b/extensions/StylePile/StylePile/Colors/Dark hue.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8b86b8e08ea3f1db7979520e5a4d1e9eb1743c8d
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Dark hue.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Desaturated.jpg b/extensions/StylePile/StylePile/Colors/Desaturated.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..60c32aede391f8477f4d7ff706853e24bc3dbd1c
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Desaturated.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Dichromatic.jpg b/extensions/StylePile/StylePile/Colors/Dichromatic.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0aff4b018a5798f095d9c567f4b03e13fdffee04
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Dichromatic.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Electric Colors.jpg b/extensions/StylePile/StylePile/Colors/Electric Colors.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..81b5406169d47abc7e30bae81e81406b39e04a39
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Electric Colors.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Fujifilm Superia.jpg b/extensions/StylePile/StylePile/Colors/Fujifilm Superia.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b5e33ffda6f6decc0c8caebc11d7e983393dbdd4
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Fujifilm Superia.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Grayscale.jpg b/extensions/StylePile/StylePile/Colors/Grayscale.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..07c36b803d925e156d39027aec85377b8fdd68e0
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Grayscale.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Green hue.jpg b/extensions/StylePile/StylePile/Colors/Green hue.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cfd82e017156735e8d2609e4f07019559bd8c996
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Green hue.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/High Contrast.jpg b/extensions/StylePile/StylePile/Colors/High Contrast.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b278f572b299dbfb1482009b8572f38a9e5c4701
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/High Contrast.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Hypersaturated.jpg b/extensions/StylePile/StylePile/Colors/Hypersaturated.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..80b28cf6b240310ead46441232b435bed74e0ff8
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Hypersaturated.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Infrared.jpg b/extensions/StylePile/StylePile/Colors/Infrared.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7edb6659882e8efe699afe018f9f5abefe97e486
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Infrared.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Kinemacolor.jpg b/extensions/StylePile/StylePile/Colors/Kinemacolor.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eb5fe3669627340187b3a7560e295ac77647f514
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Kinemacolor.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Kodachrome.jpg b/extensions/StylePile/StylePile/Colors/Kodachrome.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..23cbaab6a7ae0f7febf54cf34bb5346348f872a0
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Kodachrome.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Kodak Ektar.jpg b/extensions/StylePile/StylePile/Colors/Kodak Ektar.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f39ab72a20830e33c769b94a32a9502b6d0d3889
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Kodak Ektar.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Kodak Portra.jpg b/extensions/StylePile/StylePile/Colors/Kodak Portra.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e60344d2f149e67bfe6702bb104e8f3782ec3be5
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Kodak Portra.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Low Contrast.jpg b/extensions/StylePile/StylePile/Colors/Low Contrast.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..30d71de8139f60820888c21d37fd66e38b049db7
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Low Contrast.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Magenta hue.jpg b/extensions/StylePile/StylePile/Colors/Magenta hue.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4560d3e1d73265cd051368e06acc48a182695a0f
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Magenta hue.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Mono Color.jpg b/extensions/StylePile/StylePile/Colors/Mono Color.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..98c1fb5f1cba50a6432bb7867f1709dde329c346
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Mono Color.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Muted Colors.jpg b/extensions/StylePile/StylePile/Colors/Muted Colors.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1cc63dd75c6f64e2f4ba21b644022c2d934b0175
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Muted Colors.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Offset print.jpg b/extensions/StylePile/StylePile/Colors/Offset print.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..093537128a335fdd125a1f0e6984ce444a82ae94
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Offset print.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/One Color.jpg b/extensions/StylePile/StylePile/Colors/One Color.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..39c86f74ad0ec1c2460bd45cd8565b108aff0dee
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/One Color.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Oversaturated.jpg b/extensions/StylePile/StylePile/Colors/Oversaturated.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..191bd8ae12f49a1e278c0fcce254b8d0ea197f6c
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Oversaturated.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Pastel Colors.jpg b/extensions/StylePile/StylePile/Colors/Pastel Colors.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..db96dabfbe3df38f682b0c732d9c6ade4c66ac15
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Pastel Colors.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Polychromatic.jpg b/extensions/StylePile/StylePile/Colors/Polychromatic.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..aa3a0319717fe470af081c64f18feb997fcc7687
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Polychromatic.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Primary Colors.jpg b/extensions/StylePile/StylePile/Colors/Primary Colors.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9db22d2ccbda8f2720c9bcbbbfdbf5276b328c8f
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Primary Colors.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Provia.jpg b/extensions/StylePile/StylePile/Colors/Provia.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..35d6a95368c909428302b4adbe53ab6ccc84b5e3
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Provia.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Purple hue.jpg b/extensions/StylePile/StylePile/Colors/Purple hue.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a095590c94eaf09615b409712138db3d6e51873f
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Purple hue.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Red hue.jpg b/extensions/StylePile/StylePile/Colors/Red hue.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..134f212a7c2542a9762714fecf9fffb48b041ef5
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Red hue.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Saturated.jpg b/extensions/StylePile/StylePile/Colors/Saturated.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0ab54a0b0c861525eeb05f984ae82d4a3a343452
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Saturated.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Single Color.jpg b/extensions/StylePile/StylePile/Colors/Single Color.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..70a578af34e1447ea1d58bd23442e693c8a273c0
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Single Color.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Technicolor.jpg b/extensions/StylePile/StylePile/Colors/Technicolor.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b563b6872091c42c071c7309ca7038c6f73e757e
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Technicolor.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Velvia.jpg b/extensions/StylePile/StylePile/Colors/Velvia.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..125423cde8952b69289585e3bfc4aea15cce1e4a
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Velvia.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Vivid Colors.jpg b/extensions/StylePile/StylePile/Colors/Vivid Colors.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..67c16928a78077f0d26ca82bc335041a63e03676
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Vivid Colors.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Warm Colors.jpg b/extensions/StylePile/StylePile/Colors/Warm Colors.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..92f6fcd1ca4ad564ab84af189b708fa2b7e45925
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Warm Colors.jpg differ
diff --git a/extensions/StylePile/StylePile/Colors/Yellow hue.jpg b/extensions/StylePile/StylePile/Colors/Yellow hue.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..974c5949014cb955440ff48911f8c85c1393e504
Binary files /dev/null and b/extensions/StylePile/StylePile/Colors/Yellow hue.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Cel shaded.jpg b/extensions/StylePile/StylePile/Directions/Cel shaded.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..56e658435a6ca6d0c8b95dae7cc3a023d6004297
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Cel shaded.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Cel shading.jpg b/extensions/StylePile/StylePile/Directions/Cel shading.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ae56bd526c4d1f7bafba9b77148882248c201c0b
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Cel shading.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Detailed illustration.jpg b/extensions/StylePile/StylePile/Directions/Detailed illustration.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0cc0ec974da70a02049df1d89a66ba318a2404d1
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Detailed illustration.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Graphic novel.jpg b/extensions/StylePile/StylePile/Directions/Graphic novel.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c607fd27a80bee8c65516cc6a9baab680aaec543
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Graphic novel.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Illustration.jpg b/extensions/StylePile/StylePile/Directions/Illustration.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..58f2713f6c5cdb6d01d557f48ef90b77b812da6d
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Illustration.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Masterpiece.jpg b/extensions/StylePile/StylePile/Directions/Masterpiece.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..985fcc0609fac40585c287b4321a8cc656045d50
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Masterpiece.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Realistic.jpg b/extensions/StylePile/StylePile/Directions/Realistic.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5dfcf823bed9f6dd0a5699ae3a572300d34cdcef
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Realistic.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Rough sketch.jpg b/extensions/StylePile/StylePile/Directions/Rough sketch.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fbae212286cc680a5e0345eb7dab8093a2d62a49
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Rough sketch.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Screen print.jpg b/extensions/StylePile/StylePile/Directions/Screen print.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a1fa430bd8e2a64a2121ba713a5a474f981ed1c0
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Screen print.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Simple illustration.jpg b/extensions/StylePile/StylePile/Directions/Simple illustration.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c362d0a0ce9fee773816adecc80a46986b150569
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Simple illustration.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Sketch.jpg b/extensions/StylePile/StylePile/Directions/Sketch.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f47cdcd6d51df5202832728f1431fee510f56566
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Sketch.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Sketched.jpg b/extensions/StylePile/StylePile/Directions/Sketched.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5189e0bad509fe6580ac51b8acd2c093867d977f
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Sketched.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Technical illustration.jpg b/extensions/StylePile/StylePile/Directions/Technical illustration.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..566e58465f4a4bccd4f4729685a94e3d85271fc4
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Technical illustration.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Ultra detailed.jpg b/extensions/StylePile/StylePile/Directions/Ultra detailed.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..db7737cc4b6cd8805cb4a7d36ceed916a5bff036
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Ultra detailed.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Ultrarealistic.jpg b/extensions/StylePile/StylePile/Directions/Ultrarealistic.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..79f2d80c31d3918b156af890385e262f34dace76
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Ultrarealistic.jpg differ
diff --git a/extensions/StylePile/StylePile/Directions/Visual novel.jpg b/extensions/StylePile/StylePile/Directions/Visual novel.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3fd21160e00571e76faea168bdc1ea3e5bae05dd
Binary files /dev/null and b/extensions/StylePile/StylePile/Directions/Visual novel.jpg differ
diff --git a/extensions/StylePile/StylePile/Inspiration/Actions.txt b/extensions/StylePile/StylePile/Inspiration/Actions.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a151752205c1d29ba64664df5b841c77dc1c1226
--- /dev/null
+++ b/extensions/StylePile/StylePile/Inspiration/Actions.txt
@@ -0,0 +1,20 @@
+Standing
+Sitting
+Kneeling
+Thinking
+Looking into distance
+Looking towards us
+Being concerned
+Riding a horse
+Riding a beast
+Riding a motorcycle
+Holding a sword
+Holding flowers
+Running
+Riding a dragon
+Riding a robot
+Holding a gun
+Shooting
+Action pose
+Relaxed
+Symmetric
\ No newline at end of file
diff --git a/extensions/StylePile/StylePile/Inspiration/Locations.txt b/extensions/StylePile/StylePile/Inspiration/Locations.txt
new file mode 100644
index 0000000000000000000000000000000000000000..eb9279f41db289b0f8cdf7dbf03b52a3dc9e4e44
--- /dev/null
+++ b/extensions/StylePile/StylePile/Inspiration/Locations.txt
@@ -0,0 +1,40 @@
+In Postapocalyptic wasteland
+In Deep forest
+On Snowy mountaintop
+In Dark cave
+In Futuristic city
+In Cyberpunk city
+In Abandoned factory
+In Windy desert
+On Tropical island
+In Military base
+In Underground facility
+In Ruined city
+On Beautiful lake
+In Dreamy landscape
+Underwater
+In space
+On an asteroid
+On the Moon
+On Mars
+Inside spaceship
+In Warzone
+In Mystical area
+In Elegant room
+In forest
+In Jungle
+In Enchanted Forest
+In Alleyway
+In Spaceship
+In Space
+Inside Temple
+Inside Castle
+In Cathedral
+In Cyberspace
+On Battlefield
+On Ice
+On Coastline
+In Office
+In front of Flower shop
+In front of Armor shop
+In front of Gun shop
\ No newline at end of file
diff --git a/extensions/StylePile/StylePile/Inspiration/Subjects.txt b/extensions/StylePile/StylePile/Inspiration/Subjects.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b5df30d28460dcdfc609ec32d67ed8a40e78ff41
--- /dev/null
+++ b/extensions/StylePile/StylePile/Inspiration/Subjects.txt
@@ -0,0 +1,80 @@
+Knight
+Futuristic Knight
+Medieval Knight
+Cyborg
+Damaged Cyborg
+Robot
+Damaged Robot
+Futuristic Soldier
+Soldier
+Beautiful lady
+Lady
+Georgeous young woman
+Masculine man
+Bearded man
+Amazon
+Sorceress
+Witch
+Priestess
+Barbarian
+Demon hunter
+Necromancer
+Wizard
+Alien
+Monster
+Princess
+Animal
+Cat
+Dog
+Fox
+Steampunk Robot
+Scientist
+Ghost
+Demon
+Technician
+Car
+Bicycle
+Motorbike
+Tree
+Death
+Life
+Humanoid
+Dragon
+Minotaur
+Golem
+Vampire
+Machine
+Creature
+Shiba Inu
+Elemental
+Frozen monster
+Fire monster
+Dinosaur
+Skeleton
+Bounty hunter
+Pirate
+Officer
+Astronaut
+Mech
+Battle robot
+Cute robot
+Hero
+Superhero
+Hologram
+Fashion Model
+Panda
+Tiger
+Bear
+Statue
+Prince
+Marine
+Handsome man
+Handsome woman
+Cyborg cat
+Cyborg dog
+Ninja
+Buff man
+Buff woman
+Attractive woman
+Attractive man
+Husky
\ No newline at end of file
diff --git a/extensions/StylePile/StylePile/Moods/Amusing.jpg b/extensions/StylePile/StylePile/Moods/Amusing.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bcf8d7712d4b6a3ad4e2a450cfb8f09cc0dc5caf
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Amusing.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Angry.jpg b/extensions/StylePile/StylePile/Moods/Angry.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..392feed0928279953d73d640d939793576e2ce0c
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Angry.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Cosy.jpg b/extensions/StylePile/StylePile/Moods/Cosy.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..501220d5b03dbd81d0430beac5d167c80b1f658f
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Cosy.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Depressing.jpg b/extensions/StylePile/StylePile/Moods/Depressing.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..05d920d163425f80813b22929b49edd209757e8c
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Depressing.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Disgusting.jpg b/extensions/StylePile/StylePile/Moods/Disgusting.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..742e064356264f16318e5f8a7ad48140147ad5a7
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Disgusting.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Embarrassing.jpg b/extensions/StylePile/StylePile/Moods/Embarrassing.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8cfadc22fddec55b08c421a64f9dfd607a617b13
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Embarrassing.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Energetic.jpg b/extensions/StylePile/StylePile/Moods/Energetic.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..03a98974e103f5a49109e7b74acb02808eef3edf
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Energetic.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Evil.jpg b/extensions/StylePile/StylePile/Moods/Evil.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7fd31d7df554221d0dec7e154e19e98a226eb4a0
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Evil.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Fearful.jpg b/extensions/StylePile/StylePile/Moods/Fearful.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0acddbaebe6fd9c97bb908e7e405674b998095df
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Fearful.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Frightening.jpg b/extensions/StylePile/StylePile/Moods/Frightening.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eb7460fb8d233d1e2a9ca685867539bfe6ad94aa
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Frightening.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Grim.jpg b/extensions/StylePile/StylePile/Moods/Grim.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ce026c9abb1ffb2ff9a66354b5034143f1c9790a
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Grim.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Guilty.jpg b/extensions/StylePile/StylePile/Moods/Guilty.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..368bfd4a0932e269b56f916a2eafc5b13c1b559c
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Guilty.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Happy.jpg b/extensions/StylePile/StylePile/Moods/Happy.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9bbca210eeadb06cf207696cabc5178af2a54828
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Happy.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Hopeful.jpg b/extensions/StylePile/StylePile/Moods/Hopeful.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b09408f3ea82c054dd74224407b578164d1b975f
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Hopeful.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Hopeless.jpg b/extensions/StylePile/StylePile/Moods/Hopeless.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e51882db2a27223761d285ae48a3990434326e2e
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Hopeless.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Lonely.jpg b/extensions/StylePile/StylePile/Moods/Lonely.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f03ce662f5ebb2d720951883275b024ce5890117
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Lonely.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Lustful.jpg b/extensions/StylePile/StylePile/Moods/Lustful.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..290df352612bbd3c32dd092b444e9795d58e07fd
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Lustful.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Peaceful.jpg b/extensions/StylePile/StylePile/Moods/Peaceful.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cfaa5295c610c1f4037e02f580bc68705d701124
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Peaceful.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Proud.jpg b/extensions/StylePile/StylePile/Moods/Proud.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7cb577b7ebb254e4f2bcd43a106dd391a32302a2
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Proud.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Relieving.jpg b/extensions/StylePile/StylePile/Moods/Relieving.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b0aa613c3f751fe94427d0e67ee5d60340897edc
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Relieving.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Romantic.jpg b/extensions/StylePile/StylePile/Moods/Romantic.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0664f4f576f6a5fb44bce7fac67b079afc1b9dea
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Romantic.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Sad.jpg b/extensions/StylePile/StylePile/Moods/Sad.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..68cb3ace6368738681405b9e7be06204d3454665
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Sad.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Satisfying.jpg b/extensions/StylePile/StylePile/Moods/Satisfying.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0d023dbd2c428f430b0d80a813b061b70fb0c510
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Satisfying.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Shameful.jpg b/extensions/StylePile/StylePile/Moods/Shameful.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bf210f0f6b8b6703fc13158188d4dd4afbdd9a8b
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Shameful.jpg differ
diff --git a/extensions/StylePile/StylePile/Moods/Surprising.jpg b/extensions/StylePile/StylePile/Moods/Surprising.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2d98bd098a312d1ec1746f08fc9cfaec7de0501f
Binary files /dev/null and b/extensions/StylePile/StylePile/Moods/Surprising.jpg differ
diff --git a/extensions/StylePile/scripts/StylePile.py b/extensions/StylePile/scripts/StylePile.py
new file mode 100644
index 0000000000000000000000000000000000000000..f203d75fa234867381dcd07fb7806919ff5538ea
--- /dev/null
+++ b/extensions/StylePile/scripts/StylePile.py
@@ -0,0 +1,927 @@
+# ,, ,, ,,
+# .M"""bgd mm `7MM `7MM"""Mq. db `7MM
+# ,MI "Y MM MM MM `MM. MM
+# `MMb. mmMMmm `7M' `MF'MM .gP"Ya MM ,M9 `7MM MM .gP"Ya
+# `YMMNq. MM VA ,V MM ,M' Yb MMmmdM9 MM MM ,M' Yb
+# . `MM MM VA ,V MM 8M"""""" MM MM MM 8M""""""
+# Mb dM MM VVV MM YM. , MM MM MM YM. ,
+# P"Ybmmd" `Mbmo ,V .JMML.`Mbmmd'.JMML. .JMML..JMML.`Mbmmd'
+# ,V
+# OOb"
+#
+# A helper script for AUTOMATIC1111/stable-diffusion-webui.
+# Enter your keywords and let the selections help you determine the look.
+# https://replicate.com/methexis-inc/img2prompt has been an incredible help for improving the prompts.
+# https://docs.google.com/document/d/1ZtNwY1PragKITY0F4R-f8CarwHojc9Wrf37d0NONHDg/ has been equally super important.
+# Thanks to https://github.com/xram64 for helping fix the interface
+# Art movements from https://en.wikipedia.org/wiki/List_of_art_movements I threw out the ones that did not work
+
+# Portrait prompt - Portrait of an attractive young lady,flower field background, (by artist [X]:1.3), square ratio
+# Negative - missing limbs, extra limbs
+
+# Landscape prompt - Small house in the middle of a forest,near a lake
+# Action prompt - Astronaut floating in space,firing laser at alien ship,galaxy background
+
+# Negatives - watermark,label,text
+
+# 20 steps on Euler A
+# Seed - 669
+
+import copy
+import os
+import random
+from os import listdir, path
+from os.path import isfile, join
+
+import modules.scripts as scripts
+import gradio as gr
+from modules.processing import Processed, process_images
+from modules.shared import cmd_opts, opts, state
+from modules import scripts
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ResourceDir = os.path.join(scripts.basedir(), f"StylePile/")
+
+def FilesInFolder(SourceFolder):
+ return [file for file in os.listdir(SourceFolder)]
+
+def FilesInFolderFullPath(SourceFolder):
+ return [SourceFolder + file for file in os.listdir(SourceFolder)]
+
+ElementConcept = [
+ "Acclaimed",
+ "Alternative",
+ "Amateur",
+ "Artificial",
+ "Award Winning",
+ "Basic",
+ "Beginner",
+ "Bipolar",
+ "Boyish",
+ "Childish",
+ "Cinematic",
+ "Clever",
+ "Clumsy",
+ "Cognitive",
+ "Complex",
+ "Compressed",
+ "Controllable",
+ "Corrupted",
+ "Damaged",
+ "Destroyed",
+ "Disgusting",
+ "Divisive",
+ "Dramatic",
+ "Dumb",
+ "Eliminated",
+ "Excessive",
+ "Exciting",
+ "Extreme",
+ "Feminine",
+ "Filtered",
+ "Fixated",
+ "Fixed",
+ "Foolish",
+ "Fragile",
+ "Girlish",
+ "Gorgeous",
+ "Groundbreaking",
+ "Hated",
+ "Hidden",
+ "Highly Rated",
+ "Horrifying",
+ "Imaginary",
+ "Imaginative",
+ "Imitated",
+ "Jaded",
+ "Light hearted",
+ "Loved",
+ "Low Rated",
+ "Magical",
+ "Masculine",
+ "Masterful",
+ "Masterpiece",
+ "Maximalist",
+ "Methodological",
+ "Misunderstood",
+ "Mundane",
+ "Overprocessed",
+ "Pathetic",
+ "Photoshopped",
+ "Preview",
+ "Raw",
+ "Recycled",
+ "Religious",
+ "Rough",
+ "Sacrificial",
+ "Sacrilegious",
+ "Schematic",
+ "Simple",
+ "Sophisticated",
+ "Stupid",
+ "Trustworthy",
+ "Unbelievable",
+ "Understandable",
+ "Unearthed",
+ "Unfiltered",
+ "Unfinished",
+ "Unhinged",
+ "Universal",
+ "Unsuccessful",
+ "Venerable",
+ "Visionary",
+ "Vivacious"
+]
+
+ResultConcept = ["Not set","Random"] + ElementConcept
+
+ResultNames = [
+ "Photo",
+ "Digital Artwork",
+ "3D Rendering",
+ "Painting",
+ "Drawing",
+ "Vector Art"
+]
+
+ResultTypeBefore = {
+ "Photo": "Photo",
+ "Digital Artwork": "Digital Artwork",
+ "3D Rendering": "Professional 3D rendering",
+ "Painting": "Painting",
+ "Drawing": "Drawing",
+ "Vector Art": "Vector image"
+}
+
+#"3D Rendering": ",Highly detailed,Art by senior Artist,Polycount,trending on CGSociety,trending on ArtStation",
+#"Photo": ",HD,4K,8K,highly detailed,Sharp,Photo-realism,Professional photograph,Masterpiece",
+
+ResultTypePositives = {
+ "Photo": ",Highly Detailed",
+ "Digital Artwork": ",CGSociety,ArtStation",
+ "3D Rendering": ",CGSociety,ArtStation",
+ "Painting": " ",
+ "Drawing": " ",
+ "Vector Art": ",(Flat style:1.3),Illustration,Behance"
+}
+
+ResultTypeNegatives = {
+ "Photo": ",Amateur,Low rated,Phone,Wedding,Frame,Painting,tumblr",
+ "Digital Artwork": ",Scribbles,Low quality,Low rated,Mediocre,3D rendering,Screenshot,Software,UI",
+ "3D Rendering": ",((Wireframe)),Polygons,Screenshot,Character design,Software,UI",
+ "Painting": "Low quality,Bad composition,Faded,(Photo:1.5),(Frame:1.3)",
+ "Drawing": ",Low quality,Photo,Artifacts,Table,Paper,Pencils,Pages,Wall",
+ "Vector Art": ",(Watermark:1.5),(Text:1.3)"
+}
+
+ResultType = {
+ "Not set": "",
+ "Random": "Random",
+}
+
+ResultType.update(ResultTypePositives)
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ResultDirectionList = FilesInFolder(ResourceDir + "Directions/")
+ResultDirectionList = list(
+ map(lambda x: x.replace(".jpg", ""), ResultDirectionList))
+ResultDirection = ["Not set", "Random"] + ResultDirectionList
+
+ResultDirectionImages = FilesInFolderFullPath(ResourceDir + "Directions/")
+ResultDirectionImages = list(
+ map(lambda x: x.replace("\\", "/"), ResultDirectionImages))
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ResultMoodList = FilesInFolder(ResourceDir + "Moods/")
+ResultMoodList = list(map(lambda x: x.replace(".jpg", ""), ResultMoodList))
+ResultMood = ["Not set", "Random"] + ResultMoodList
+
+ResultMoodImages = FilesInFolderFullPath(ResourceDir + "Moods/")
+ResultMoodImages = list(map(lambda x: x.replace("\\", "/"), ResultMoodImages))
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ResultArtistList = FilesInFolder(ResourceDir + "Artists/")
+ResultArtistList = list(map(lambda x: x.replace(".jpg", ""), ResultArtistList))
+Artists = ["Not set", "Random"] + ResultArtistList
+
+ResultArtistImages = FilesInFolderFullPath(ResourceDir + "Artists/")
+ResultArtistImages = list(
+ map(lambda x: x.replace("\\", "/"), ResultArtistImages))
+
+#ResultArtistColumn = "\n".join(str(item) for item in ResultArtistList)
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ArtMovementList = FilesInFolder(ResourceDir + "Art Movements/")
+ArtMovementList = list(map(lambda x: x.replace(".jpg", ""), ArtMovementList))
+ArtMovements = ["Not set", "Random"] + ArtMovementList
+
+ArtMovementImages = FilesInFolderFullPath(ResourceDir + "Art Movements/")
+ArtMovementImages = list(
+ map(lambda x: x.replace("\\", "/"), ArtMovementImages))
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ResultColorList = FilesInFolder(ResourceDir + "Colors/")
+ResultColorList = list(map(lambda x: x.replace(".jpg", ""), ResultColorList))
+ResultColor = ["Not set", "Random"] + ResultColorList
+
+ResultColorImages = FilesInFolderFullPath(ResourceDir + "Colors/")
+ResultColorImages = list(
+ map(lambda x: x.replace("\\", "/"), ResultColorImages))
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+with open(ResourceDir + "Inspiration/Subjects.txt", 'r+') as tf:
+ Subjects = [line.rstrip() for line in tf]
+
+with open(ResourceDir + "Inspiration/Actions.txt", 'r+') as tf:
+ Actions = [line.rstrip() for line in tf]
+
+with open(ResourceDir + "Inspiration/Locations.txt", 'r+') as tf:
+ Locations = [line.rstrip() for line in tf]
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+TipsAndTricks = [
+ "Be specific. Add details in sequence, separated by commas. Like 'Cute black kitten, yellow eyes' + selecting Photography as image type, will get you to the result you want faster than just 'black kitten'.",
+ "Try out random values. For example, set artist to random, crank up the batch count and enjoy the show. Mix and match random settings.",
+ "If you add your own artist, I would recommend having 'by Artist' in front of their name. Depending on their popularity (or lack thereof) this appears to have a very tangible influence on the result.",
+ "Mix and match artists from the dropdowns (or type your own) for some interesting results. Having one artist selected and other(s) set to random is also a nice way to find new looks with some amount of predictability.",
+ "Parenthesis can be added to make parts of the prompt stronger. So ((cute kitten)) will make it extra cute (try it out). This is also important if a style is affecting your original prompt too much. Make that prompt stronger by adding parenthesis around it, like this: ((promt)). A strength modifier value can also be used, like this (prompt:1.1).",
+ "Prompts can be split like [A|B] to sequentially use terms, one after another on each step. For example **[cat|dog]** will produce a hybrid catdog.",
+ "Using **[A:B:0.4]** will switch to other terms after the first one has been active for a certain percentage of steps. So [cat:dog:0.4] will build a cat 40% of the time and then start turning it into a dog. Usually this needs more steps to work properly.",
+ "During long cold winter nights, you can turn your PC into a heater by generating hundreds of images non-stop.",
+ "Feel free to share feedback and ideas on github: https://github.com/some9000/StylePile",
+ "Some things work together, others don't. Like Photo doesn't work too great with many Art movements or Drawing will not become photorealistic just because that was selected."
+]
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+Preset = {
+ "None": "",
+ "Portraits": ",(close portrait:1.3),thematic background",
+ "Feminine portrait": ",(close portrait:1.3),(Feminine:1.4),(beautiful:1.4),(attractive:1.3),handsome,calendar pose,perfectly detailed eyes,studio lighting,thematic background",
+ "Masculine portrait": ",(close portrait:1.3),(Masculine:1.4),attractive,handsome,calendar pose,perfectly detailed eyes,studio lighting,thematic background",
+ "WaiFusion": ",close portrait,(manga:1.3),beautiful,attractive,handsome,trending on ArtStation,DeviantArt contest winner,CGSociety,ultrafine,detailed,studio lighting",
+ "Horrible Monsters": ",monster,ugly,surgery,evisceration,morbid,cut,open,rotten,mutilated,deformed,disfigured,malformed,missing limbs,extra limbs,bloody,slimy,goo,Richard Estes,Audrey Flack,Ralph Goings,Robert Bechtle,Tomasz Alen Kopera,H.R.Giger,Joel Boucquemont,ArtStation,DeviantArt contest winner,thematic background",
+ "Robots": ",robot,((cyborg)),machine,futuristic,concept Art by senior character Artist,featured on zbrush central,trending on polycount,trending on ArtStation,CGSociety,hard surface modeling",
+ "Retrofuturism": ",((retrofuturism)),(science fiction),dystopian Art,ultrafine,detailed,future tech,by Clarence Holbrook CArter,by Ed Emshwiller,CGSociety,ArtStation contest winner,trending on ArtStation,DeviantArt contest winner,Fallout",
+ "Propaganda": ",propaganda poster,soviet poster,sovietwave",
+ "Landscapes": ",naturalism,land Art,regionalism,shutterstock contest winner,trending on unsplash,featured on Flickr"
+}
+
+PresetNegatives = {
+ "None": "",
+ "Portraits": ",robot eyes,distorted pupils,distorted eyes,Unnatural anatomy,strange anatomy,things on face",
+ "Feminine portrait": ",robot eyes,distorted pupils,distorted eyes,Unnatural anatomy,strange anatomy,things on face",
+ "Masculine portrait": ",robot eyes,distorted pupils,distorted eyes,Unnatural anatomy,strange anatomy,things on face",
+ "WaiFusion": ",things on face,Unnatural anatomy,strange anatomy",
+ "Horrible Monsters": ",(attractive),pretty,smooth,cArtoon,pixar,human",
+ "Robots": ",cartoon",
+ "Retrofuturism": ",extra limbs,malformed limbs,modern",
+ "Propaganda": ",extra limbs,malformed limbs,modern",
+ "Landscapes": ",((hdr)),((terragen)),((rendering)),(high contrast)"
+}
+
+# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+# At some point in time it looked like adding a bunch of these negative prompts helps,but now I am not so sure...
+AlwaysBad = ",watermark,signature"
+
+class Script(scripts.Script):
+ txt2img_prompt = None
+ img2img_prompt = None
+ batch_count = None
+ batch_size = None
+ steps = None
+
+ def after_component(self, component, **kwargs):
+ if kwargs.get('elem_id') == 'txt2img_prompt':
+ self.txt2img_prompt = component
+ if kwargs.get('elem_id') == 'img2img_prompt':
+ self.img2img_prompt = component
+ # if kwargs.get('elem_id') == 'batch_count':
+ # self.batch_count = component
+ # if kwargs.get('elem_id') == 'batch_size':
+ # self.batch_size = component
+ # if kwargs.get('elem_id') == 'steps':
+ # self.steps = component
+
+ def title(self):
+ return "StylePile"
+
+ def show(self, is_img2img):
+ return True
+
+ def ui(self, is_img2img):
+ with gr.Tab("Parameters"):
+ with gr.Row():
+ ddResultConcept = gr.Dropdown(
+ ResultConcept, label="Conceptually", value="Not set")
+ ddCoreResultType = gr.Dropdown(
+ list(ResultType.keys()), label="Image type", value="Not set")
+ slResultTypeStrength = gr.Slider(
+ 0, 2, value=1.3, step=0.05, show_label=False)
+ with gr.Row():
+ with gr.Column():
+ ddResultDirection = gr.Dropdown(
+ ResultDirection, label="Direction", value="Not set")
+ slResultDirectionStrength = gr.Slider(
+ 0, 2, value=1.3, step=0.05, show_label=False)
+ with gr.Column():
+ ddResultMood = gr.Dropdown(
+ ResultMood, label="Mood", value="Not set")
+ slResultMoodStrength = gr.Slider(
+ 0, 2, value=1.3, step=0.05, show_label=False)
+ with gr.Column():
+ ddResultColor = gr.Dropdown(
+ ResultColor, label="Colors", value="Not set")
+ slResultColorStrength = gr.Slider(
+ 0, 2, value=1.3, step=0.05, show_label=False)
+ with gr.Row():
+ cbChangeCount = gr.Checkbox(
+ value=True, label="Set batch count to prompt count")
+ cbIncreaseSeed = gr.Checkbox(
+ value=True, label="Increase seed with batch size")
+ cbShowTips = gr.Checkbox(
+ value=False, label="Show tips when generating")
+ ddPreset = gr.Dropdown(list(Preset.keys()), label="Style influence (incomplete)", value="None")
+ with gr.Row():
+ strSequentialPrompt = gr.Textbox(
+ lines=3, label="Sequential prompts [X]", placeholder="Insert [X] anywhere in main prompt to sequentially insert values from here. Random values will be added here or to main prompt.")
+ with gr.Row():
+ strSubSequentialPrompt = gr.Textbox(
+ lines=3, label="SubSequential prompts [Y]", placeholder="Insert [Y] in the final prompt <== to sequentially insert values from here (and increase prompt count). This is done after all other prompts and loops through all lines.")
+
+ with gr.Row():
+ strRandomPromptA = gr.Textbox(
+ lines=3, label="Random [A]", placeholder="Insert [A] anywhere in main prompt (or [X] prompt) to randomly insert values from here.")
+ strRandomPromptB = gr.Textbox(
+ lines=3, label="Random [B]", placeholder="Insert [B] anywhere in main prompt (or [X] prompt) to randomly insert values from here.")
+ strRandomPromptC = gr.Textbox(
+ lines=3, label="Random [C]", placeholder="Insert [C] anywhere in main prompt (or [X] prompt) to randomly insert values from here.")
+
+ with gr.Row():
+ with gr.Column():
+ selArtistA = gr.Dropdown(Artists, label="Artist", value="Not set")
+ sliImageArtistStrengthA = gr.Slider(0, 2, value=1.3, step=0.05, label="Influence")
+ selArtistB = gr.Dropdown(Artists, label="Artist", value="Not set")
+ sliImageArtistStrengthB = gr.Slider(0, 2, value=1.3, step=0.05, label="Influence")
+ selArtistC = gr.Dropdown(Artists, label="Artist", value="Not set")
+ sliImageArtistStrengthC = gr.Slider(0, 2, value=1.3, step=0.05, label="Influence")
+ with gr.Column():
+ selArtMovementA = gr.Dropdown(ArtMovements, label="Art movement", value="Not set")
+ selArtMovementStrengthA = gr.Slider(0, 2, value=1.3, step=0.05, label="Influence")
+ selArtMovementB = gr.Dropdown(ArtMovements, label="Art movement", value="Not set")
+ selArtMovementStrengthB = gr.Slider(0, 2, value=1.3, step=0.05, label="Influence")
+ selArtMovementC = gr.Dropdown(ArtMovements, label="Art movement", value="Not set")
+ selArtMovementStrengthC = gr.Slider(0, 2, value=1.3, step=0.05, label="Influence")
+
+ if self.txt2img_prompt is not None:
+ with gr.Row():
+ bTestPrompt = gr.Button('Insert default prompt')
+ #if self.txt2img_prompt is not None:
+ bTestPrompt.click(fn=lambda x: "Portrait of an attractive young lady,flower field background, square ratio",
+ inputs = [self.txt2img_prompt],
+ outputs = [self.txt2img_prompt])
+
+ bInspireMe = gr.Button('Inspire me, StylePile')
+ #if self.txt2img_prompt is not None:
+ bInspireMe.click(fn=lambda x: random.choice(Subjects) +","+ random.choice(Actions) +","+ random.choice(Locations)+",",
+ inputs = [self.txt2img_prompt],
+ outputs = [self.txt2img_prompt])
+
+
+ # with gr.Row():
+ # b4images = gr.Button('4 images')
+ # b8images = gr.Button('8 images')
+ # b4x4images = gr.Button('4x4 images')
+ # bMorphImages = gr.Button('4@40 images')
+ # bStandardPreview = gr.Button('Preview')
+
+ # b4images.click(fn = lambda p:40, inputs = [self.steps],outputs = [self.steps])
+ # b8images.click(fn = lambda p:8, inputs = [self.batch_count],outputs = [self.batch_count])
+ # b8images.click(fn = lambda p:8, inputs = [self.batch_size],outputs = [self.batch_size])
+
+ with gr.Tab("Directions") as StyleTab:
+ gr.Gallery(value=ResultDirectionImages, show_label=False).style(
+ grid=(3, 3, 3, 3, 4, 4), container=False)
+
+ with gr.Tab("Moods"):
+ gr.Gallery(value=ResultMoodImages, show_label=False).style(
+ grid=(3, 3, 3, 3, 4, 4), container=False)
+
+ with gr.Tab("Artists"):
+ gr.Gallery(value=ResultArtistImages, show_label=False).style(
+ grid=(2, 2, 2, 2, 3, 3), container=False)
+
+ with gr.Tab("Art movements"):
+ gr.Gallery(value=ArtMovementImages, show_label=False).style(
+ grid=(3, 3, 3, 3, 4, 4), container=False)
+
+ with gr.Tab("Colors"):
+ gr.Gallery(value=ResultColorImages, show_label=False).style(
+ grid=(3, 3, 3, 3, 4, 4), container=False)
+
+ with gr.Tab("Tools & Info") as HelpTab:
+ with gr.Row():
+ gr.Markdown(
+ """
+ ### Tips and tricks
+ If you add your own Artist, I would recommend having **by Artist** in front of their name. Depending on their popularity (or lack thereof) this appears to have a very tangible influence on the result. In general, most of the elements that influence the look appear to work best with a certain strength boost, hence the 1.3 default values.
+ Another thing to keep in mind is relationships between keywords and type of content. For example, if you want a reasonably realistic looking image of an alien cyborg. Selecting **Photo** will mostly produce fairly clumsy results. But, if you select **3D rendering** and **Realistic, Ultrarealistic** or **Ultra detailed** as direction, the result may actually be closer to what you expect. The opposite is true as well. There are certain things that you will not get to look realistic no matter what the modifiers are if Image type is not set to **Photo**. Try kittens.
+ In general just experiment with **Image type** and **Direction**. An easy way to do it is selecting random settings, a high batch count and then checking the keywords on the results you like.
+ ### Modifiers
+ Elements of the prompt can be modified to have a certain strength or change over time. Normally you do this by typing into the prompt, but here I have added tools that will actually insert pre-formatted text so it is easier to understand what it should look like. Note that it doesn't have to be a single word, it is a part of the prompt, so it can be several words or a full sentence. Also note that it will be added to the end of the prompt no matter where the cursor was due to limitations of gradio.
+ """
+ )
+ with gr.Row():
+ with gr.Column():
+ gr.Markdown(
+ """
+ A strength modifier value can be added to parts of the prompt like this **(A:1.3)** < this part would be about 30% stronger. To save some typing you can select the line you want to make stronger and use **Ctrl+Shift+Arrow keys up** or **down** to add these parenthesis and change the value. 1.3 seems like a good starting point if you want to see some impact. Interestingly, adding **very** as a keyword may have a similar or even stronger effect.
+ """
+ )
+ with gr.Column():
+ tbAdjustStrength = gr.Textbox(label="Adjust strength", placeholder="Enter prompt here")
+ sbAdjustStrength = gr.Slider(0.1, 2.0, value=1.3, step=0.1, label="Strength")
+ bAdjustStrength = gr.Button('Insert')
+ with gr.Row():
+ with gr.Column():
+ tbMorphFrom = gr.Textbox(label="Morph from", placeholder="Prompt A")
+ tbMorphTo = gr.Textbox(label="Morph to", placeholder="Prompt B")
+ sbMorphStrength = gr.Slider(0.05, 0.95, value=0.5, step=0.05, label="Starting point")
+ bInsertMorph = gr.Button('Insert')
+ with gr.Column():
+ gr.Markdown(
+ """
+ You can start with a prompt element and then, after a certain percentage of steps, start converting this prompt into something else. Basically it looks like [A:B:0.5] with A being the first part to do, B being what it should be morphing into and 0.5 representing a percentage of when it should start the conversion process. Thus in case of 0.5 that is 50% of the whole process.
+ """)
+ with gr.Row():
+ with gr.Column():
+ gr.Markdown(
+ """
+ You can mix two prompt elements where each step they get swapped. It looks like [A|B] thus processing A each odd step and B each even step.
+ """)
+ with gr.Column():
+ tbBounceFrom = gr.Textbox(label="Bounce from", placeholder="Prompt A")
+ rbBounceTo = gr.Textbox(label="Bounce to", placeholder="Prompt B")
+ bBounce = gr.Button('Insert')
+ with gr.Row():
+ gr.Markdown(
+ """
+ These last two sections appear to benefit from increasing sampling steps and CFG scale.
+ ### Example images, adding your own selections to dropdowns
+ Example images stored in the script folders are more than just images. Their filenames are used to create the **Direction**, **Mood**, **Artist** and Art **movement** dropdown selections. This gives you the ability to Add/Remove parameters as you wish. Just place an image in the folder and name it as the option you want to see in the dropdown. Delete image file to remove that option.
+
+ In case you would like to suggest an artist be added to the roster, I would recommend making 8+ sample images first. To see if SD actually "knows" that artist and their style appears unique enough. The portraits you can see in the info pages were generated with the following settings:
+
+ ### Sample portrait prompt
+ Positive: Portrait of an attractive young lady,flower field background,(by [X]:1.3), square ratio
+ Negative - missing limbs, extra limbs, watermark,label,text
+
+ [X] is **Artist Name Surname** From my research adding **Artist** can really help to get the correct look.
+
+ 20 steps on Euler A
+ Seed - 669 - batch of 4 images
+
+ Generally that produces a fairly nice portrait with enough room to show off the given style. Do compare the results to the actual style. As SD will produce something it 'thinks' may be correct based on their name (guessing nationality, basing it on something that has mentioned a similar name etc) and that influences the results, but not in a good way.
+ """)
+
+ if self.txt2img_prompt is not None:
+ bAdjustStrength.click(fn=lambda p,x,y: p + "(" + x + ":" + str(y) + ")",
+ inputs = [self.txt2img_prompt,tbAdjustStrength,sbAdjustStrength],
+ outputs = [self.txt2img_prompt])
+
+ bInsertMorph.click(fn=lambda p,x,y,z: p + "[" + x + ":" + y + ":" + str(z) + "]",
+ inputs = [self.txt2img_prompt,tbMorphFrom,tbMorphTo,sbMorphStrength],
+ outputs = [self.txt2img_prompt])
+
+ bBounce.click(fn=lambda p,x,y: p + "[" + x + "|" + y + "]",
+ inputs = [self.txt2img_prompt,tbBounceFrom,rbBounceTo],
+ outputs = [self.txt2img_prompt])
+
+ if self.img2img_prompt is not None:
+ bAdjustStrength.click(fn=lambda p,x,y: p + "(" + x + ":" + str(y) + ")",
+ inputs = [self.img2img_prompt,tbAdjustStrength,sbAdjustStrength],
+ outputs = [self.img2img_prompt])
+
+ bInsertMorph.click(fn=lambda p,x,y,z: p + "[" + x + ":" + y + ":" + str(z) + "]",
+ inputs = [self.img2img_prompt,tbMorphFrom,tbMorphTo,sbMorphStrength],
+ outputs = [self.img2img_prompt])
+
+ bBounce.click(fn=lambda p,x,y: p + "[" + x + "|" + y + "]",
+ inputs = [self.img2img_prompt,tbBounceFrom,rbBounceTo],
+ outputs = [self.img2img_prompt])
+
+ with gr.Tab("Help"):
+ gr.Markdown(
+ """
+ ## Hello, StylePile here
+ ### Introduction
+ **StylePile** is a mix and match system for adding elements to prompts that affect the style of the result. Hence the name. By default, these elements are placed in a specific order and given strength values. Which means the result sort-of evolves. I have generated thousands of images for each main **Image type** and tweaked the keywords to attempt giving expected results most of the time. Certainly, your suggestions for improvements are very welcome.
+ ### Base workflow
+ You select extra settings in this script and then hit the standard orange **Generate** button to get results.
+
+ For example, if you select the **Painting** image type, then almost all results will look like Paintings. Selecting **Mood** will have a certain influence on the overall look in some way (if it's something humanoid it may show emotion, but also colors and overall feel may change). Setting **Colors** will change the general tonality of the result. And setting **View** will attempt to change how the subject is viewed. Attempt, because view appears to be the least reliable keyword. These elements are placed in order of influence and supported by certain strength values. These basic settings produce very quick results close to the general look you want.
+  ''})
+ Moving on, adding a **Art movement** will combine with **Image type** to influence how the result generally looks. These styles are based on classic and modern Painting/Art/design movements (which I picked after hours and thousands of samples of testing) and can have a strong influence on the end result. Either it will be more realistic or artistic, or look like a comic book etc. In general, this is a really strong element for getting the look you want. Its influence can be adjusted with the slider above. Experiment with the values, keeping in mind that anything above 1.5 will start becoming a mess. In a similar way, but more focused, you can select an **Artist** and, of course, that will have a very visible effect on the result as well. Currently there are 135 artists, 55 art styles and 25 emotions available for selection and represented with preview images.
+
+ Strength of these settings has been preset at 1.3, as that appears to be the golden ratio for getting good results. Sometimes very low settings have an interesting result as well. You can, and should, freely mix and match these settings to get different results. Classic Painting styles affected or affecting 3D look quite interesting. Photography can look cool with some of the brighter, more artistic styles etc. Sometimes raising CFG scale to 15,20 or more also helps to REALLY push the style onto the image.
+
+ ### Advanced workflow
+ StylePile can overtake the generation process, allowing you to generate a large amount of different results with very little extra work. There are two types of variables you can use: [X] and [R]. When you add an [X] to your prompt, it sequentially takes values from the **Sequential prompts** text area. You can have dozens of lines there and they will be processed in sequence. When you add [R] to the prompt a value from the **Random** text area will be inserted in its place. By combining these a huge variety in prompts is very easy to do.
+
+ When using this, **Batch count** will move through the prompts and **Batch size** will set how many copies with the given prompt to make. If the seed is not random, it will increase with each batch size step. Any random elements will still be picked randomly.
+
+ ### In conclusion
+ I made this because manually changing keywords, looking up possible styles, etc was a pain. It is meant as a fun tool to explore possibilities and make learning Stable Diffusion easier. If you have some ideas or, better yet, would like to contribute in some way*, just visit https://github.com/some9000/StylePile
+
+ *Hey, if you have a 12Gb graphics card just laying around I'm happy to take it (:
+ """)
+
+ return [ddResultConcept,
+ cbChangeCount,
+ cbIncreaseSeed,
+ strSequentialPrompt,
+ strSubSequentialPrompt,
+ strRandomPromptA,
+ strRandomPromptB,
+ strRandomPromptC,
+ slResultTypeStrength,
+ ddCoreResultType,
+ ddResultDirection,
+ slResultDirectionStrength,
+ ddResultMood,
+ slResultMoodStrength,
+ ddResultColor,
+ slResultColorStrength,
+ selArtMovementStrengthA,
+ selArtMovementA,
+ selArtMovementStrengthB,
+ selArtMovementB,
+ selArtMovementStrengthC,
+ selArtMovementC,
+ sliImageArtistStrengthA,
+ selArtistA,
+ sliImageArtistStrengthB,
+ selArtistB,
+ sliImageArtistStrengthC,
+ selArtistC,
+ cbShowTips,
+ ddPreset
+ ]
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ def run(self, p,
+ ddResultConcept,
+ cbChangeCount,
+ cbIncreaseSeed,
+ strSequentialPrompt: str,
+ strSubSequentialPrompt: str,
+ strRandomPromptA: str,
+ strRandomPromptB: str,
+ strRandomPromptC: str,
+ slResultTypeStrength,
+ ddCoreResultType,
+ ddResultDirection,
+ slResultDirectionStrength,
+ ddResultMood,
+ slResultMoodStrength,
+ ddResultColor,
+ slResultColorStrength,
+ selArtMovementStrengthA,
+ selArtMovementA,
+ selArtMovementStrengthB,
+ selArtMovementB,
+ selArtMovementStrengthC,
+ selArtMovementC,
+ sliImageArtistStrengthA,
+ selArtistA,
+ sliImageArtistStrengthB,
+ selArtistB,
+ sliImageArtistStrengthC,
+ selArtistC,
+ cbShowTips,
+ ddPreset
+ ):
+
+ # If it's all empty just exit function.
+ if len(p.prompt) == 0:
+ print(
+ f"\nEmpty prompt! It helps to have at least some guidance for SD. Remember to insert an [X], [A] or [B] into main prompt if you want to use variable values.")
+ return
+
+ # Batch lines present?
+ BatchLines = [x.strip() for x in strSequentialPrompt.splitlines()]
+ LineCount = len(BatchLines)
+
+ SubBatchLines = [x.strip() for x in strSubSequentialPrompt.splitlines()]
+ SubLineCount = len(SubBatchLines)
+
+ TempText = ""
+ SubTempText = ""
+
+ images = []
+ seeds = []
+ prompts = []
+ infotexts = []
+
+ # Overtake amounts of things to generate so we can go through different variables
+ MainJobCount = p.n_iter
+ p.n_iter = 1
+
+ SubIterationCount = p.batch_size
+ p.batch_size = 1
+
+ # If we have [X] variables use their amount, unless unchecked
+ if cbChangeCount == True and len(strSequentialPrompt) > 0:
+ MainJobCount = LineCount
+
+ SubCycleCount = 1
+
+ if SubLineCount > 0:
+ SubCycleCount = SubLineCount
+
+ # Any random lines present?
+ RandomLinesA = [r.strip() for r in strRandomPromptA.splitlines()]
+ RandomLinesB = [r.strip() for r in strRandomPromptB.splitlines()]
+ RandomLinesC = [r.strip() for r in strRandomPromptC.splitlines()]
+
+ # So the progress bar works correctly
+ state.job_count = MainJobCount * SubIterationCount * SubCycleCount
+
+ CurrentChoice = 0
+ SubCurrentChoice = 0
+
+ FinalResultDirection = ""
+
+ for x in range(MainJobCount):
+ SeedStep = 0
+
+ AllMovements = ""
+ AllArtists = ""
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ # Large artist selection
+ if selArtistA != "Not set":
+ # If Random is selected then pick a random artist
+ if selArtistA == "Random":
+ AllArtists += ",(by Artist " + random.choice(ResultArtistList) + \
+ ":" + str(sliImageArtistStrengthA) + ")"
+ # otherwise use the selected value
+ else:
+ AllArtists += ",(by Artist " + selArtistA + \
+ ":" + str(sliImageArtistStrengthA) + ")"
+
+ if selArtistB != "Not set":
+ if selArtistB == "Random":
+ AllArtists += ",(by Artist " + random.choice(ResultArtistList) + \
+ ":" + str(sliImageArtistStrengthB) + ")"
+ else:
+ AllArtists += ",(by Artist " + selArtistB + \
+ ":" + str(sliImageArtistStrengthB) + ")"
+
+ if selArtistC != "Not set":
+ if selArtistC == "Random":
+ AllArtists += ",(by Artist " + random.choice(ResultArtistList) + \
+ ":" + str(sliImageArtistStrengthC) + ")"
+ else:
+ AllArtists += ",(by Artist " + selArtistC + \
+ ":" + str(sliImageArtistStrengthC) + ")"
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ # Large style selection
+ if selArtMovementA != "Not set":
+ if selArtMovementA == "Random":
+ AllMovements += ",(" + random.choice(ArtMovementList) + ":" + str(selArtMovementStrengthA) + ")"
+ else:
+ AllMovements += ",(" + selArtMovementA + ":" + str(selArtMovementStrengthA) + ")"
+
+ if selArtMovementB != "Not set":
+ if selArtMovementB == "Random":
+ AllMovements += ",(" + random.choice(ArtMovementList) + ":" + str(selArtMovementStrengthB) + ")"
+ else:
+ AllMovements += ",(" + selArtMovementB + ":" + str(selArtMovementStrengthB) + ")"
+
+ if selArtMovementC != "Not set":
+ if selArtMovementC == "Random":
+ AllMovements += ",(" + random.choice(ArtMovementList) + ":" + str(selArtMovementStrengthC) + ")"
+ else:
+ AllMovements += ",(" + selArtMovementC + ":" + str(selArtMovementStrengthC) + ")"
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ for y in range(SubIterationCount):
+
+ # Clear the variables so random selection can work
+ FinalResultMood = ""
+ FinalResultColor = ""
+ FinalConcept = ""
+
+ # Preset the selection variables
+ MainType = ""
+
+ TypeFront = ""
+ TypePositives = ""
+ TypeNegatives = ""
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ if ddResultConcept != "Not set":
+ if ddResultConcept == "Random":
+ FinalConcept = random.choice(ElementConcept)
+ else:
+ FinalConcept = ddResultConcept
+ else:
+ FinalConcept = ""
+
+ # If main prompt isn't empty...
+ if ResultType[ddCoreResultType] != "":
+ # If it is random, give it a random value
+ if ResultType[ddCoreResultType] == "Random":
+ MainType = random.choice(ResultNames)
+ # otherwise use the selected value
+ else:
+ MainType = ddCoreResultType
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ if ddResultDirection != "Not set":
+ if ddResultDirection == "Random":
+ FinalResultDirection = " (" + random.choice(
+ ResultDirectionList) + ":" + str(slResultDirectionStrength) + ") "
+ else:
+ FinalResultDirection = " (" + ddResultDirection + \
+ ":" + str(slResultDirectionStrength) + ") "
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ # Pick the mood
+ if ddResultMood != "Not set":
+ if ddResultMood == "Random":
+ FinalResultMood = ",(" + random.choice(ResultMoodList) + \
+ ":" + str(slResultMoodStrength) + ") "
+ else:
+ FinalResultMood = ",(" + ddResultMood + \
+ ":" + str(slResultMoodStrength) + ") "
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ # If present, add batch element, otherwise remove that reference
+ TempText = ""
+ if LineCount > 0:
+ if len(BatchLines[CurrentChoice % LineCount]) > 0:
+ TempText = BatchLines[CurrentChoice % LineCount]
+
+ #TempText = copy_p.prompt.replace("[X]", TempText)
+ TempText = p.prompt.replace("[X]", TempText)
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ # If present, add random element, otherwise remove that reference
+ if len(RandomLinesA) > 0:
+ TempText = TempText.replace(
+ "[A]", random.choice(RandomLinesA))
+ else:
+ TempText = TempText.replace("[A]", "")
+
+ if len(RandomLinesB) > 0:
+ TempText = TempText.replace(
+ "[B]", random.choice(RandomLinesB))
+ else:
+ TempText = TempText.replace("[B]", "")
+
+ if len(RandomLinesC) > 0:
+ TempText = TempText.replace(
+ "[C]", random.choice(RandomLinesC))
+ else:
+ TempText = TempText.replace("[C]", "")
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ # Colors
+ if ddResultColor!= "Not set":
+ if ddResultColor == "Random":
+ FinalResultColor = ",(" + random.choice(ResultColorList) + \
+ ":" + str(slResultColorStrength) + ") "
+ else:
+ FinalResultColor = ",(" + ddResultColor + \
+ ":" + str(slResultColorStrength) + ") "
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ # If main prompt isn't empty...
+ if MainType != "":
+ # Format our variables to merge into positive prompt...
+ TypeFront = "(" + FinalConcept + " " + ResultTypeBefore[MainType] + \
+ ":" + str(slResultTypeStrength) + ") of "
+ TypePositives = ResultTypePositives[MainType]
+ TypeNegatives = ResultTypeNegatives[MainType]
+
+ # Our main prompt composed of all the selected elements
+ MainPositive = TypeFront + FinalResultDirection + FinalResultMood + TempText + \
+ AllArtists + TypePositives + AllMovements + \
+ FinalResultColor + Preset[ddPreset]
+
+ #MainNegative = copy_p.negative_prompt
+ MainNegative = p.negative_prompt
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ SubCurrentChoice = 0
+
+ for z in range(SubCycleCount):
+ # Copy of the main prompt module to make batches, I guess...
+ copy_p = copy.copy(p)
+
+ if copy_p.seed != -1: # and 'p.seed' in locals():
+ copy_p.seed += SeedStep
+
+ SubTempText = ""
+ if SubLineCount > 0:
+ if len(SubBatchLines[SubCurrentChoice % SubLineCount]) > 0:
+ SubTempText = SubBatchLines[SubCurrentChoice % SubLineCount]
+
+ TempText = MainPositive.replace("[Y]", SubTempText)
+
+ TempText = TempText.replace("[xs]", str(random.randrange(100000,999999,1)))
+ TempText = TempText.replace("[XS]", str(random.randrange(100000,999999,1)))
+
+ TempText = TempText.replace("[s]", ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=5)))
+ TempText = TempText.replace("[S]", ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=5)))
+
+ TempText = TempText.replace("[m]", ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=10)))
+ TempText = TempText.replace("[M]", ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=10)))
+
+ TempText = TempText.replace("[l]", ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=5)) + " " + ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=5)))
+ TempText = TempText.replace("[L]", ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=5)) + " " + ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=5)))
+
+ TempText = TempText.replace("[xl]", ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=10)) + " " + ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=10)))
+ TempText = TempText.replace("[XL]", ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=10)) + " " + ''.join(random.choices("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=10)))
+
+ # Clean up positive prompt
+ TempText = " ".join(TempText.split())
+ TempText = TempText.replace(",,", ",")
+ TempText = TempText.replace(" ,", ",")
+ TempText = TempText.replace(",", ",")
+ TempText = TempText.replace("( ", "(")
+ TempText = TempText.replace(" )", ")")
+ TempText = TempText.strip(",")
+ TempText = TempText.strip()
+
+ copy_p.prompt = TempText
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+
+ # Clean up negative prompt
+ TempText = MainNegative + TypeNegatives + \
+ AlwaysBad + PresetNegatives[ddPreset]
+
+ TempText = " ".join(TempText.split())
+ TempText = " ".join(TempText.split())
+ TempText = TempText.replace(",,", ",")
+ TempText = TempText.replace(" ,", ",")
+ TempText = TempText.replace(",", ",")
+ TempText = TempText.replace("( ", "(")
+ TempText = TempText.replace(" )", ")")
+ TempText = TempText.strip(",")
+ TempText = TempText.strip()
+
+ copy_p.negative_prompt = TempText
+
+ # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
+ # Add information in command prompt window and process the image
+
+ print(f"\n\n[Prompt {x+1}/{MainJobCount}][Iteration {y+1}/{SubIterationCount}][SubPrompt {z}/{SubLineCount}][Seed {int(copy_p.seed)}] >>> Positives <<< {copy_p.prompt} >>> Negatives <<< {copy_p.negative_prompt}\n")
+
+ proc = process_images(copy_p)
+ infotexts += proc.infotexts
+ images += proc.images
+ seeds.append(proc.seed)
+ prompts.append(proc.prompt)
+
+ SubCurrentChoice += 1
+
+ if cbIncreaseSeed == True:
+ SeedStep += 1
+
+ CurrentChoice += 1
+
+ p.batch_size = MainJobCount
+ p.n_iter = SubIterationCount
+
+ if cbShowTips:
+ print(
+ f"\n\nStylePile processing complete. Here's a random tip:\n{random.choice(TipsAndTricks)}\n")
+
+ return Processed(p=p, images_list=images, seed=p.seed, all_seeds=seeds, all_prompts=prompts, info=infotexts[0],
+ infotexts=infotexts)
diff --git a/extensions/StylePile/scripts/__pycache__/StylePile.cpython-310.pyc b/extensions/StylePile/scripts/__pycache__/StylePile.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..1362930385c6fbe80b7c94e6879f5fd75e23009b
Binary files /dev/null and b/extensions/StylePile/scripts/__pycache__/StylePile.cpython-310.pyc differ
diff --git a/extensions/canvas-zoom/README.MD b/extensions/canvas-zoom/README.MD
new file mode 100644
index 0000000000000000000000000000000000000000..7be68addaf7421cda631db5d01e7ea1b5a69c557
--- /dev/null
+++ b/extensions/canvas-zoom/README.MD
@@ -0,0 +1,206 @@
+# Canvas Zoom
+
+An extension of [stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui)
+
+Adds the ability to zoom into Inpaint, Sketch, and Inpaint Sketch.
+
+**The extension supports webui version [1.1](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.1.0), [1.2](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.2.0),[1.3](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.3.0) And the [March 25 version](https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/22bcc7be428c94e9408f589966c2040187245d81)**
+
+**The extension is fully compatible with webui version [1.4](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.4.0) and the built-in canvas-zoom-and-pan extension. However, I still recommend that you disable the built-in**
+
+https://github.com/richrobber2/canvas-zoom/assets/22278673/1f666443-34bc-421e-8edc-e4eaa22722a6
+
+## Important Notes
+
+**Webui versions earlier than March 25th are not supported**
+
+**After installation, be sure to restart webui**
+
+**If extension does not work check the troubleshooting page https://github.com/richrobber2/canvas-zoom/wiki/Troubleshooting**
+
+**You can check out the features of this extension in [canvas-zoom-showcase](https://github.com/richrobber2/canvas-zoom/wiki/Functionality)**
+
+**The extension description also available in RU language:**
+
+# EN
+
+You can edit the hotkeys as you want, to do this you need to go into the settings.
+
+The hotkeys only work in the image area
+
+## Default hotkeys:
+
+### Important hotkeys: Zoom (Shift+wheel) , Move Canvas (F) , Full Screen (S), and Reset Zoom (R).
+
+**Shift + wheel** - Zoom canvas
+
+**Ctr + wheel** - Change brush size
+
+**Ctr-Z** - Undo last action
+
+**F (hold)** - Move canvas
+
+**S** - Fullscreen mode, zoom in on the canvas so that it fits into the screen.
+
+**R** - Reset Zoom.
+
+**Q** - Open/Close color panel
+
+**T** - Open color panel right above the mouse.
+
+**H** - Fill the entire canvas with brush color ( Works in Sketch and Inpaint Sketch )
+
+**A** - Toggle dropper ( Works in Sketch and Inpaint Sketch )
+
+**O** - Overlap all elements and back
+
+**C** - Toggle mask transparency mode ( Works only in Inpaint )
+
+In transparency mode, you can paint but the effect will not be what you expect, this mode is useful to see how the mask fits on the picture.
+
+### Additional hotkeys
+
+**Shift + wheel (hold)** - Move canvas
+
+**Shift + "+" or Shift + "-"** - Scale canvas ( numpad keys also work )
+
+## Features
+
+1. You can fix the color bar wherever you want, for this purpose point the mouse on the place you want and press "T" and then every time you press "Q" the color bar will open in this place. If you click on the button in the right corner, the panel will reset and work as it should.
+
+2. If you zoom in on a picture that is too wide to fit in the window, pressing "S" will magnify it to full screen width without the scroll bar.
+
+3. You can add a white outline to the brush to better see its borders. You can turn it on in the settings
+
+4. You can select the color of the mask in Inpaint and the color of all your lines will change to the color of the mask
+
+5. In img2img in all tabs a new button "📏" has been added next to the width and height sliders. This button allows you to get the real width and height of the picture in 1 click. Removed from webui 1.3 and higher because a native solution is now available.
+
+6. If you are using ControlNet, you can enable integration with the extension in the settings. After enabling it, reload the page
+
+7. You can choose the default color of the mask in Inpaint, you can change the color of the mask in the settings.
+
+8. In the settings you can turn off the tooltip and functionality that you do not need
+
+## Known bugs:
+
+1. If a white image appears when you cancel on the Hotkey, press the cancel hotkey again and the image will return.
+
+2. This is not my bug, the problem is related to webui automatic1111. If you send a picture to Sketch or Inpaint Sketch via buttons, the undo last action on the hotkey and on the button breaks. What to avoid this problem: you can load the picture directly, via drag and drop or via copy and paste. **The problem is solved in the latest update, but only works on hotkeys ( Ctr+Z )**
+
+3. This is not my bug, the problem is with webui automatic1111. If you draw something in Sketch, Inpaint, Inpaint Sketch and then switch to another tab, when you go back and what else you draw, undo will undo on the previous 2 actions, the last one before the switch and the last one after.
+
+4. This is not my bug, the problem is with webui automatic1111. When the browser scale is more or less than 100%, Sketch and Inpaint Sketch break if you send an image to them via buttons. Change the browser and windows scale to 100% and everything will be fine.
+
+5. This is not my bug, the problem is with webui automatic1111. If you don't close the image in inpaint and transfer it to inpaint again in any way, the mask remains. **The problem was solved in the latest update**
+
+## Credits
+
+Thanks to everyone who supported this extension, everyone who gave ideas for this project.
+
+Special thanks to [richrobber2](https://github.com/richrobber2) for his idea, which later I ([daswer123](https://github.com/daswer123)) was able to strongly develop.
+
+I would also like to thank separately the author of popular models: Deliberate and Reliberate, the person under the nickname [XpucT](https://www.youtube.com/@XpucT) for supporting the project at an early stage of development.
+
+Thanks to the [AI Diffusion](https://discord.gg/xpuct) community on discord for support.
+
+# RU
+
+**Расширение совместимо с версией webui [1.1](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.1.0), [1.2](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.2.0),[1.3](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.3.0) и [версией от 25 марта](https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/22bcc7be428c94e9408f589966c2040187245d81)**
+
+**Расширение полностью совместимо с webui версии [1.4](https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.4.0) и встроенным расширением canvas-zoom-and-pan. Тем не менее, я рекомендую отключить встроенное расширение.**
+
+## Важные замечания
+
+**После установки обязательно перезапустите webui**
+
+**Если расширение не работает проверьте страницу с решением частых проблем https://github.com/richrobber2/canvas-zoom/wiki/Troubleshooting**
+
+**Вы можете ознакомиться с возможностями этого расширения в [canvas-zoom-showcase](https://github.com/daswer123/canvas-zoom-showcase)**
+
+## О Расширении
+
+Расширение [stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui).
+
+Добавляет возможность зума в Inpaint, Sketch и Inpaint Sketch и горячие клавиши для удобства в работе.
+Так же модифицирует возможности рисования в Sketch и Inpaint Sketch.
+
+Вы можете изменить горячие клавиши по своему усмотрению, для этого необходимо зайти в настройки.
+
+Горячие клавиши работают только в области изображения, мышка должна быть на этой области
+
+## Горячие клавиши по умолчанию:
+
+### Важные горячие клавиши: Зум (Shift+колесо), Перемещение (F), Полноэкранный режим (S) и Сброс зума (R).
+
+**Shift + колесо** - Масштабировать холст
+
+**Ctr + колесо** - Изменить размер кисти
+
+**Ctr-Z** - Отменить последнее действие
+
+**F (удерживать)** - Перемещение холста
+
+**S** - Полноэкранный режим. Максимально увеличить холст так, чтобы он поместился на экране
+
+**R** - Сброс зума.
+
+**Q** - Открыть/Закрыть выбор цвета
+
+**T** - Открыть выбор цвета прямо над мышкой.
+
+**H** - Заполнить весь холст цветом кисти ( Работает в Sketch и Inpaint Sketch )
+
+**A** - Включить пипетку ( Работает в Sketch и Inpaint Sketch )
+
+**O** - Перекрыть все элементы и обратно
+
+**C** - Переключение режима прозрачности маски ( Работает только в Inpaint )
+
+В режиме прозрачности, вы можете рисовать но эфект будет не такой какой вы ожидаете, этот режим удобен для просмотра того, как лежит маска на картинке.
+
+### Дополнительные горячие клавиши
+
+**Shift + колесо (удерживать)** - Переместить холст
+
+**Shift + "+" или Shift + "-"** - масштабирование холста (клавиши нумпада также работают)
+
+## Фичи
+
+1. Вы можете закрепить цветовую панель где угодно, для этого наведите мышкой на нужно место и нажмите "T" после чего каждый раз на "Q" Цветовая панель будет открываться в этом месте. Если вы нажмете на кнопку в правом углу, то панель сбросится и будет работать, как и должна.
+
+2. Если вы увеличите картинку с большой шириной, которая не помещается в окно, то при нажатии на "S" вы получите увеличенную во весь экран картинку в полную ширину без полосы прокрутки
+
+3. Вы можете добавить кисти белую обводку, что бы лучше видеть её границы. Включить можно в настройках.
+
+4. Вы можете выбрать цвет маски в Inpaint, и цвет всех ваших линий изменится на цвет маски. Цвет можно изменить в настройках.
+
+5. В img2img во всех вкладках добавилась новая кнопка "📏", которая находится рядом с ползунками width и height. Это кнопка позволяет получить ширину и высоту картинки в 1 клик. Удалено из webui 1.3 и выше, поскольку теперь доступно нативное решение
+
+6. Если вы используете СontrolNet, вы можете включить интеграцию с расширением в настройках. После включения перезагрузите страницу
+
+7. Вы можете выбрать цвет маски в Inpaint по умолчанию, цвет маски можно изменить в настройках.
+
+8. В настройках вы можете отключить подсказку и функционал которым вы не пользуетесь
+
+## Известные баги:
+
+1. Если при отмене на горячей клавише появляется белое изображение, нажмите горячую клавишу отмены еще раз, и изображение вернется.
+
+2. Это не мой баг, проблема связана с webui automatic1111. Если вы отправляете картинку в Sketch или Inpaint Sketch через кнопки, то ломается отмена последнего действия на горячую клавишу и на кнопку. Что избежать этой проблемы: вы можете загрузить картинку напрямую, перетащить её из результата или через копирование и вставку. **Проблема решена, но работает только на горячих клавишах ( Ctr+Z )**
+
+3. Это не мой баг, проблема связана с webui automatic1111. Если вы что-то нарисовали в Sketch, Inpaint, Inpaint Sketch, а потом переключили на другую вкладку, когда вы вернетесь, и что ещё нарисуете, то отмена будет отменять по предыдущих 2 действия, последнее до переключения и последнее после.
+
+4. Это не мой баг, проблема связана с webui automatic1111. При масштабе браузера больше или меньше 100%, Sketch и Inpaint Sketch ломаются, если отправить на них изображение через кнопки. Измените масштабе браузера и windows до 100% и все будет отлично.
+
+5. Это не мой баг, проблема связана с webui automatic1111. Если не закрыть изображение в inpaint и перенести его в inpaint снова любым способом, маска остается. **Проблема решена в последним обновлении**
+
+## Благодарность
+
+Спасибо всем, кто поддержал это расширение, всем, кто подал идеи для этого проекта.
+
+Отдельное спасибо [richrobber2](https://github.com/richrobber2) за его первоначальную идею, которую мне, [daswer123](https://github.com/daswer123), удалось значительно расширить и усовершенствовать.
+
+Также особую благодарность хочется выразить автору популярных моделей Deliberate и Reliberate - [XpucT](https://www.youtube.com/@XpucT), за его поддержку проекта в начальный период его развития.
+
+И наконец, спасибо всему сообществу [AI Diffusion](https://discord.gg/xpuct) в discord за их поддержку
diff --git a/extensions/canvas-zoom/dist/README.MD b/extensions/canvas-zoom/dist/README.MD
new file mode 100644
index 0000000000000000000000000000000000000000..f020b8fcca85428c67d586c2fe57a035a54e17c9
--- /dev/null
+++ b/extensions/canvas-zoom/dist/README.MD
@@ -0,0 +1,28 @@
+# A little clarification about the size of the extension:
+
+Canvas-zoom works with modified gradio, I compile it myself from sources and substitute original gradio, modified, in the folder venv.
+
+That's why it turns out that the extension weighs so much ~140mb.
+35mb new version, 35 mb old version, and git folder another 70mb.
+
+# Folder Assignment
+- **templates** ( Modified Gradio 3.31.0 )
+- **old-auto-v-1-0** ( Modified Gradio 3.23 ) For those who don't want to upgrade
+- **js** ( The original gradio files I changed )
+
+During installation, the folder with the modified gradio replaces the original one in the folder venv\Lib\site-packages\gradio
+
+# A small guide to development
+
+To change the changes in the main scripts, you need:
+1) download the source code of the gradio
+2) Transfer js ( "ui" in older version ) folder from this repo to gradio with substitution
+3) After you finish editing the changes in the source files. Run the file
+scripts\build_frontend.sh
+4) After you are done, go to gradio folder inside of the gradio source code and copy templates folder to dist folder inside of the extension
+5) Restart webui extension will replace the files by itself and you will see the change
+
+The folder where you work with the canvas : gradio-3.31.0\js\image\src
+
+https://user-images.githubusercontent.com/22278673/236323481-e60c5043-e07e-44dc-949d-b2f7163fc408.mp4
+
diff --git a/extensions/canvas-zoom/dist/js/image/README.md b/extensions/canvas-zoom/dist/js/image/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e5b427fdb3b640a5482b4336ea6d4bbd861d81b5
--- /dev/null
+++ b/extensions/canvas-zoom/dist/js/image/README.md
@@ -0,0 +1,11 @@
+# `@gradio/button`
+
+```html
+
+
+
+```
diff --git a/extensions/canvas-zoom/dist/js/image/package.json b/extensions/canvas-zoom/dist/js/image/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..54b6947a2110fe46fb8e4880dc319ff81f291dd3
--- /dev/null
+++ b/extensions/canvas-zoom/dist/js/image/package.json
@@ -0,0 +1,19 @@
+{
+ "name": "@gradio/image",
+ "version": "0.0.1",
+ "description": "Gradio UI packages",
+ "type": "module",
+ "main": "src/index.ts",
+ "author": "",
+ "license": "ISC",
+ "private": true,
+ "dependencies": {
+ "@gradio/atoms": "workspace:^0.0.1",
+ "@gradio/icons": "workspace:^0.0.1",
+ "@gradio/upload": "workspace:^0.0.1",
+ "@gradio/utils": "workspace:^0.0.1",
+ "cropperjs": "^1.5.12",
+ "lazy-brush": "^1.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+}
diff --git a/extensions/canvas-zoom/dist/js/image/src/Brushcolor.js b/extensions/canvas-zoom/dist/js/image/src/Brushcolor.js
new file mode 100644
index 0000000000000000000000000000000000000000..e216bc89b3db9f23160e7b79c0e4a4ad435b7048
--- /dev/null
+++ b/extensions/canvas-zoom/dist/js/image/src/Brushcolor.js
@@ -0,0 +1,3 @@
+import { writable } from "svelte/store";
+
+export const brush_color_store = writable("#000000");
diff --git a/extensions/canvas-zoom/dist/js/image/src/Cropper.svelte b/extensions/canvas-zoom/dist/js/image/src/Cropper.svelte
new file mode 100644
index 0000000000000000000000000000000000000000..ebfeaddf8992155bb4f79a5e0bdafa73e9903ef5
--- /dev/null
+++ b/extensions/canvas-zoom/dist/js/image/src/Cropper.svelte
@@ -0,0 +1,33 @@
+
+
+
+
+
diff --git a/extensions/canvas-zoom/dist/js/image/src/Image.svelte b/extensions/canvas-zoom/dist/js/image/src/Image.svelte
new file mode 100644
index 0000000000000000000000000000000000000000..e32b601c19fc93c05f8d3162642645dd265f3bd7
--- /dev/null
+++ b/extensions/canvas-zoom/dist/js/image/src/Image.svelte
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+
diff --git a/extensions/canvas-zoom/dist/js/image/src/index.ts b/extensions/canvas-zoom/dist/js/image/src/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..42800442a811e02457fda02133a44334c0231c46
--- /dev/null
+++ b/extensions/canvas-zoom/dist/js/image/src/index.ts
@@ -0,0 +1,3 @@
+export { default as Image } from "./Image.svelte";
+export { default as Webcam } from "./Webcam.svelte";
+export { default as StaticImage } from "./StaticImage.svelte";
diff --git a/extensions/canvas-zoom/dist/js/image/src/utils.ts b/extensions/canvas-zoom/dist/js/image/src/utils.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e5ffea75366b567bdf2f9bfe91aaef68f3983395
--- /dev/null
+++ b/extensions/canvas-zoom/dist/js/image/src/utils.ts
@@ -0,0 +1,26 @@
+export const get_coordinates_of_clicked_image = (
+ evt: MouseEvent
+): [number, number] | null => {
+ let image = evt.currentTarget as HTMLImageElement;
+
+ const imageRect = image.getBoundingClientRect();
+ const xScale = image.naturalWidth / imageRect.width;
+ const yScale = image.naturalHeight / imageRect.height;
+ if (xScale > yScale) {
+ const displayed_width = imageRect.width;
+ const displayed_height = image.naturalHeight / xScale;
+ const y_offset = (imageRect.height - displayed_height) / 2;
+ var x = Math.round((evt.clientX - imageRect.left) * xScale);
+ var y = Math.round((evt.clientY - imageRect.top - y_offset) * xScale);
+ } else {
+ const displayed_width = image.naturalWidth / yScale;
+ const displayed_height = imageRect.height;
+ const x_offset = (imageRect.width - displayed_width) / 2;
+ var x = Math.round((evt.clientX - imageRect.left - x_offset) * yScale);
+ var y = Math.round((evt.clientY - imageRect.top) * yScale);
+ }
+ if (x < 0 || x >= image.naturalWidth || y < 0 || y >= image.naturalHeight) {
+ return null;
+ }
+ return [x, y];
+};
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/README.MD b/extensions/canvas-zoom/dist/old-auto-v-1-0/README.MD
new file mode 100644
index 0000000000000000000000000000000000000000..2952fbb5bf7c7438fdfc2fd8e3bf2bf1460aff48
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/README.MD
@@ -0,0 +1,9 @@
+# A small guide to development
+
+To change the changes in the main scripts, you need:
+1) download the source code of the gradio
+2) Transfer ui folder from this repo to gradio with substitution
+3) After you finish editing the changes in the source files. Run the file
+scripts\build_frontend.sh
+4) After you are done, go to gradio folder inside of the gradio source code and copy templates folder to dist folder inside of the extension
+5) Restart webui extension will replace the files by itself and you will see the change
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockLabel.353a84f3.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockLabel.353a84f3.js
new file mode 100644
index 0000000000000000000000000000000000000000..f2c1de718fa2b0a85206bbacc275f6bc35b4752d
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockLabel.353a84f3.js
@@ -0,0 +1,2 @@
+import{S as b,i as g,s as h,F as m,c as d,G as w,H as y,B as u,O as r,f as I,D as _,m as B,J as j,o as S,t as k,p as q,l as C}from"./index.8bc3f3e8.js";import{g as D}from"./Empty.svelte_svelte_type_style_lang.bc882d5f.js";function F(l){let e,a,n,c,f,i;return n=new l[1]({}),{c(){e=m("div"),a=m("span"),d(n.$$.fragment),c=w(),f=y(l[0]),u(a,"class","svelte-1frtwj3"),u(e,"style",l[4]),u(e,"class","svelte-1frtwj3"),r(e,"hide",!l[2]),r(e,"sr-only",!l[2]),r(e,"float",l[3])},m(t,s){I(t,e,s),_(e,a),B(n,a,null),_(e,c),_(e,f),i=!0},p(t,[s]){(!i||s&1)&&j(f,t[0]),(!i||s&16)&&u(e,"style",t[4]),s&4&&r(e,"hide",!t[2]),s&4&&r(e,"sr-only",!t[2]),s&8&&r(e,"float",t[3])},i(t){i||(S(n.$$.fragment,t),i=!0)},o(t){k(n.$$.fragment,t),i=!1},d(t){t&&q(e),C(n)}}}function G(l,e,a){let n,{label:c=null}=e,{Icon:f}=e,{show_label:i=!0}=e,{disable:t=!1}=e,{float:s=!0}=e;return l.$$set=o=>{"label"in o&&a(0,c=o.label),"Icon"in o&&a(1,f=o.Icon),"show_label"in o&&a(2,i=o.show_label),"disable"in o&&a(5,t=o.disable),"float"in o&&a(3,s=o.float)},l.$$.update=()=>{l.$$.dirty&32&&a(4,{styles:n}=D({label_container:!t},["label_container"]),n)},[c,f,i,s,n,t]}class L extends b{constructor(e){super(),g(this,e,G,F,h,{label:0,Icon:1,show_label:2,disable:5,float:3})}}export{L as B};
+//# sourceMappingURL=BlockLabel.353a84f3.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockLabel.353a84f3.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockLabel.353a84f3.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..4c1f5190862fc3f1ff9879b4c4546540b543406f
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockLabel.353a84f3.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"BlockLabel.353a84f3.js","sources":["../../../../ui/packages/atoms/src/BlockLabel.svelte"],"sourcesContent":["\n\n
\n\t\n\t\t\n\t\n\n\t{label}\n
\n\n\n"],"names":[],"mappings":"yUAwBE,gDANM,gDAHM,qBACG,gCAFjB,SAMC,+DAIC,8BANM,uBAHM,0BACG,4IAbL,QAAuB,SACvB,WACA,aAAsB,OACtB,UAAmB,OACnB,QAAiB,uNAEtB,UAAW,GAAa,iBAAkB,IAC/C,iBAAiB"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockTitle.8df62d03.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockTitle.8df62d03.js
new file mode 100644
index 0000000000000000000000000000000000000000..64e64d7f68fb05ff8374c9368e21db90289fdf63
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockTitle.8df62d03.js
@@ -0,0 +1,2 @@
+import{S as d,i as h,s as k,W as g,c as w,m as $,o as r,t as m,l as B,F as I,G as S,e as j,B as q,O as _,f as c,X as C,Y as F,Z as G,k as H,n as J,p,H as N,J as O}from"./index.8bc3f3e8.js";import{I as T}from"./Info.c3b929b0.js";import"./Empty.svelte_svelte_type_style_lang.bc882d5f.js";function b(o){let e,n;return e=new T({props:{$$slots:{default:[W]},$$scope:{ctx:o}}}),{c(){w(e.$$.fragment)},m(l,f){$(e,l,f),n=!0},p(l,f){const u={};f&10&&(u.$$scope={dirty:f,ctx:l}),e.$set(u)},i(l){n||(r(e.$$.fragment,l),n=!0)},o(l){m(e.$$.fragment,l),n=!1},d(l){B(e,l)}}}function W(o){let e;return{c(){e=N(o[1])},m(n,l){c(n,e,l)},p(n,l){l&2&&O(e,n[1])},d(n){n&&p(e)}}}function X(o){let e,n,l,f;const u=o[2].default,a=g(u,o,o[3],null);let s=o[1]&&b(o);return{c(){e=I("span"),a&&a.c(),n=S(),s&&s.c(),l=j(),q(e,"class","svelte-1gfkn6j"),_(e,"sr-only",!o[0]),_(e,"hide",!o[0]),_(e,"has-info",o[1]!=null)},m(t,i){c(t,e,i),a&&a.m(e,null),c(t,n,i),s&&s.m(t,i),c(t,l,i),f=!0},p(t,[i]){a&&a.p&&(!f||i&8)&&C(a,u,t,t[3],f?G(u,t[3],i,null):F(t[3]),null),i&1&&_(e,"sr-only",!t[0]),i&1&&_(e,"hide",!t[0]),i&2&&_(e,"has-info",t[1]!=null),t[1]?s?(s.p(t,i),i&2&&r(s,1)):(s=b(t),s.c(),r(s,1),s.m(l.parentNode,l)):s&&(H(),m(s,1,1,()=>{s=null}),J())},i(t){f||(r(a,t),r(s),f=!0)},o(t){m(a,t),m(s),f=!1},d(t){t&&p(e),a&&a.d(t),t&&p(n),s&&s.d(t),t&&p(l)}}}function Y(o,e,n){let{$$slots:l={},$$scope:f}=e,{show_label:u=!0}=e,{info:a=void 0}=e;return o.$$set=s=>{"show_label"in s&&n(0,u=s.show_label),"info"in s&&n(1,a=s.info),"$$scope"in s&&n(3,f=s.$$scope)},[u,a,l,f]}class A extends d{constructor(e){super(),h(this,e,Y,X,k,{show_label:0,info:1})}}export{A as B};
+//# sourceMappingURL=BlockTitle.8df62d03.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockTitle.8df62d03.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockTitle.8df62d03.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..594e63881000081f2f0b5c65049e2e7097b134be
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/BlockTitle.8df62d03.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"BlockTitle.8df62d03.js","sources":["../../../../ui/packages/atoms/src/BlockTitle.svelte"],"sourcesContent":["\n\n\n\t\n\n{#if info}\n\t{info}\n{/if}\n\n\n"],"names":[],"mappings":"klBAcQ,wCAAA,8FADH,6GANY,kBACH,qBACG,MAAQ,IAAI,UAH7B,0JACiB,uBACH,0BACG,MAAQ,IAAI,EAIxB,mQAXO,aAAsB,OACtB,OAA2B"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Blocks.15437627.css b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Blocks.15437627.css
new file mode 100644
index 0000000000000000000000000000000000000000..ab575d8fe732de741b21bb174b517b7f95a83e79
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Blocks.15437627.css
@@ -0,0 +1 @@
+.wrap.svelte-1i3r921.svelte-1i3r921{padding:var(--size-6)}.attention.svelte-1i3r921.svelte-1i3r921{font-weight:var(--weight-bold);font-size:var(--text-lg)}.attention.svelte-1i3r921 code.svelte-1i3r921{border:none;background:none;color:var(--color-accent);font-weight:var(--weight-bold)}button.svelte-1i3r921.svelte-1i3r921{position:absolute;top:var(--size-5);right:var(--size-6);width:var(--size-4);color:var(--body-text-color)}button.svelte-1i3r921.svelte-1i3r921:hover{color:var(--color-accent)}@media (min-width: 768px){button.svelte-1i3r921.svelte-1i3r921{top:var(--size-6)}}h2.svelte-155na5k.svelte-155na5k{display:flex;color:var(--body-text-color);font-weight:var(--weight-semibold)}h2.svelte-155na5k img.svelte-155na5k{margin-right:var(--size-2);width:var(--size-4)}span.svelte-155na5k.svelte-155na5k{color:var(--color-accent)}button.svelte-155na5k.svelte-155na5k{position:absolute;top:var(--size-5);right:var(--size-6);width:var(--size-4);color:var(--body-text-color)}button.svelte-155na5k.svelte-155na5k:hover{color:var(--color-accent)}@media (min-width: 768px){button.svelte-155na5k.svelte-155na5k{top:var(--size-6)}h2.svelte-155na5k img.svelte-155na5k{width:var(--size-5)}}h3.svelte-vs3f38{color:var(--body-text-color);font-weight:var(--section-header-text-weight);font-size:var(--text-lg)}.post.svelte-vs3f38{margin-right:var(--size-2);border:1px solid var(--border-color-accent);border-radius:var(--radius-sm);background:var(--color-accent-soft);padding-right:var(--size-1);padding-left:var(--size-1);color:var(--color-accent);font-weight:var(--weight-semibold)}.endpoint.svelte-vs3f38{margin-bottom:var(--size-6);color:var(--body-text-color)}.url.svelte-vs3f38{display:inline-block;border:none;background:none;padding:var(--size-0-5);font-family:var(--font-mono)}.payload-details.svelte-j5il63{font-family:var(--font-mono)}.space.svelte-j5il63{display:flex;flex-basis:1;margin-top:var(--size-4)}h4.svelte-j5il63{display:flex;align-items:center;margin-top:var(--size-6);margin-bottom:var(--size-3);color:var(--body-text-color);font-weight:var(--weight-bold)}.toggle-icon.svelte-j5il63{display:flex;align-items:center;margin-right:var(--size-2);border-radius:var(--radius-full);background:var(--color-grey-300);width:12px;height:4px}.toggle-dot.svelte-j5il63{border-radius:var(--radius-full);background:var(--color-grey-700);width:6px;height:6px}.dark .toggle-icon.svelte-j5il63{background:var(--color-grey-500)}.dark .toggle-dot.svelte-j5il63{background:var(--color-grey-400)}input[type=text].svelte-j5il63{--ring-color:transparent;margin:var(--size-1) 0;outline:none!important;box-shadow:var(--input-shadow);border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--radius-lg);background:var(--input-background-fill);padding:var(--size-1-5);color:var(--body-text-color);font-weight:var(--input-text-weight);font-size:var(--input-text-size);line-height:var(--line-sm)}input.svelte-j5il63:focus{box-shadow:var(--input-shadow-focus);border-color:var(--input-border-color-focus)}.error.svelte-j5il63{color:var(--error-text-color)}.type.svelte-j5il63{color:var(--block-label-text-color)}.desc.svelte-j5il63{color:var(--body-text-color-subdued)}.name.svelte-j5il63{text-transform:capitalize}.first-level.svelte-j5il63{margin-left:1rem}.second-level.svelte-j5il63{margin-left:2rem}.load-wrap.svelte-fxtbel{display:flex;justify-content:center;align-items:center}h4.svelte-fxtbel{display:flex;align-items:center;margin-top:var(--size-6);margin-bottom:var(--size-3);color:var(--body-text-color);font-weight:var(--weight-bold)}.toggle-icon.svelte-fxtbel{display:flex;align-items:center;margin-right:var(--size-2);border-radius:var(--radius-full);background:var(--color-grey-300);width:12px;height:4px}.toggle-dot.svelte-fxtbel{margin-left:auto;border-radius:var(--radius-full);background:var(--color-grey-700);width:6px;height:6px}.response-wrap.svelte-fxtbel{font-family:var(--font-mono)}input[type=text].svelte-fxtbel{--ring-color:transparent;margin:var(--size-1) 0;outline:none!important;box-shadow:var(--input-shadow);border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--radius-lg);background:var(--input-background-fill);padding:var(--size-1-5);color:var(--body-text-color);font-weight:var(--input-text-weight);font-size:var(--input-text-size);line-height:var(--line-sm)}input.svelte-fxtbel:focus{box-shadow:var(--input-shadow);border-color:var(--input-border-color-focus)}.type.svelte-fxtbel{color:var(--block-label-text-color)}.desc.svelte-fxtbel{color:var(--body-text-color-subdued)}.name.svelte-fxtbel{text-transform:capitalize}.hide.svelte-fxtbel{display:none}.first-level.svelte-fxtbel{margin-left:1rem}.second-level.svelte-fxtbel{margin-left:2rem}h4.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4{display:flex;align-items:center;margin-top:var(--size-8);margin-bottom:var(--size-3);color:var(--body-text-color);font-weight:var(--weight-bold)}h4.svelte-dks0o4 svg.svelte-dks0o4.svelte-dks0o4{margin-right:var(--size-1-5)}.snippets.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4{display:flex;align-items:center;margin-bottom:var(--size-3)}.snippets.svelte-dks0o4>.svelte-dks0o4+.svelte-dks0o4{margin-left:var(--size-2)}.snippet.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4{display:flex;align-items:center;border:1px solid var(--border-color-primary);border-radius:var(--radius-md);padding:var(--size-1) var(--size-1-5);color:var(--body-text-color-subdued);color:var(--body-text-color);line-height:1;user-select:none;text-transform:capitalize}.current-lang.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4{border:1px solid var(--body-text-color-subdued);color:var(--body-text-color)}.inactive-lang.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4{cursor:pointer;color:var(--body-text-color-subdued)}.inactive-lang.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4:hover,.inactive-lang.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4:focus{box-shadow:var(--shadow-drop);color:var(--body-text-color)}.snippet.svelte-dks0o4 img.svelte-dks0o4.svelte-dks0o4{margin-right:var(--size-1-5);width:var(--size-3)}code.svelte-dks0o4 pre.svelte-dks0o4.svelte-dks0o4{overflow-x:auto;color:var(--body-text-color);font-family:var(--font-mono);tab-size:2}.client.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4{white-space:pre-wrap;overflow-wrap:break-word}.token.string.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4{display:contents;color:var(--color-accent-base)}code.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4{position:relative}.copy.svelte-dks0o4.svelte-dks0o4.svelte-dks0o4{position:absolute;top:0;right:0;margin:1rem}.banner-wrap.svelte-1kj0q1l{position:relative;border-bottom:1px solid var(--border-color-primary);padding:var(--size-4) var(--size-6);font-size:var(--text-md)}@media (min-width: 768px){.banner-wrap.svelte-1kj0q1l{font-size:var(--text-xl)}}.docs-wrap.svelte-1kj0q1l{display:flex;flex-direction:column;gap:var(--spacing-xxl)}.endpoint.svelte-1kj0q1l{border-radius:var(--radius-md);background:var(--background-fill-primary);padding:var(--size-6);font-size:var(--text-md)}.wrap.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr{display:flex;flex-grow:1;flex-direction:column;width:var(--size-full);font-weight:var(--body-text-weight);font-size:var(--body-text-size)}footer.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr{display:flex;justify-content:center;margin-top:var(--size-4);color:var(--body-text-color-subdued)}footer.svelte-1lyswbr>.svelte-1lyswbr+.svelte-1lyswbr{margin-left:var(--size-2)}.show-api.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr{display:flex;align-items:center}.show-api.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr:hover{color:var(--body-text-color)}.show-api.svelte-1lyswbr img.svelte-1lyswbr.svelte-1lyswbr{margin-right:var(--size-1);margin-left:var(--size-2);width:var(--size-3)}.built-with.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr{display:flex;align-items:center}.built-with.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr:hover{color:var(--body-text-color)}.built-with.svelte-1lyswbr img.svelte-1lyswbr.svelte-1lyswbr{margin-right:var(--size-1);margin-left:var(--size-2);width:var(--size-3)}.api-docs.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr{display:flex;position:fixed;top:0;right:0;z-index:var(--layer-5);background:rgba(0,0,0,.5);width:var(--size-screen);height:var(--size-screen-h)}.backdrop.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr{flex:1 1 0%;backdrop-filter:blur(4px)}.api-docs-wrap.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr{box-shadow:var(--shadow-drop-lg);background:var(--background-fill-primary);overflow-x:hidden;overflow-y:auto}@media (min-width: 768px){.api-docs-wrap.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg);width:950px}}@media (min-width: 1536px){.api-docs-wrap.svelte-1lyswbr.svelte-1lyswbr.svelte-1lyswbr{width:1150px}}
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Blocks.721a001e.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Blocks.721a001e.js
new file mode 100644
index 0000000000000000000000000000000000000000..d0ccc93d3d16366832993a030fc99e0df122c893
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Blocks.721a001e.js
@@ -0,0 +1,77 @@
+import{d as be,w as rt,_ as j,S as K,i as $,s as ee,b as we,a as mt,c as V,e as ne,m as z,f as I,g as fo,h as co,j as _o,k as oe,t as D,l as X,n as ae,o as x,p as S,q as it,r as on,u as po,v as mo,x as je,y as ho,z as go,A as xe,B as E,C as ie,D as h,E as re,F as w,G as L,H as P,I as _e,J as B,K as Pe,L as vo,M as De,N as ye,O as ht,P as bo,Q as yo,R as Eo,T as So,U as To,V as wo}from"./index.8bc3f3e8.js";import{B as ot,a as at}from"./Empty.svelte_svelte_type_style_lang.bc882d5f.js";var Io=function(t){return Ao(t)&&!Po(t)};function Ao(e){return!!e&&typeof e=="object"}function Po(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||ko(e)}var Co=typeof Symbol=="function"&&Symbol.for,Oo=Co?Symbol.for("react.element"):60103;function ko(e){return e.$$typeof===Oo}function xo(e){return Array.isArray(e)?[]:{}}function Ie(e,t){return t.clone!==!1&&t.isMergeableObject(e)?de(xo(e),e,t):e}function Lo(e,t,n){return e.concat(t).map(function(r){return Ie(r,n)})}function Ro(e,t){if(!t.customMerge)return de;var n=t.customMerge(e);return typeof n=="function"?n:de}function No(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}function gt(e){return Object.keys(e).concat(No(e))}function an(e,t){try{return t in e}catch{return!1}}function jo(e,t){return an(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Do(e,t,n){var r={};return n.isMergeableObject(e)&>(e).forEach(function(i){r[i]=Ie(e[i],n)}),gt(t).forEach(function(i){jo(e,i)||(an(e,i)&&n.isMergeableObject(t[i])?r[i]=Ro(i,n)(e[i],t[i],n):r[i]=Ie(t[i],n))}),r}function de(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||Lo,n.isMergeableObject=n.isMergeableObject||Io,n.cloneUnlessOtherwiseSpecified=Ie;var r=Array.isArray(t),i=Array.isArray(e),o=r===i;return o?r?n.arrayMerge(e,t,n):Do(e,t,n):Ie(t,n)}de.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return de(r,i,n)},{})};var Mo=de,Fo=Mo;/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */var Je=function(e,t){return Je=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},Je(e,t)};function Fe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Je(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var G=function(){return G=Object.assign||function(t){for(var n,r=1,i=arguments.length;r0}),n=[],r=0,i=t;r1)throw new RangeError("integer-width stems only accept a single optional option");i.options[0].replace(Ho,function(f,l,u,_,c,g){if(l)t.minimumIntegerDigits=u.length;else{if(_&&c)throw new Error("We currently do not support maximum integer digits");if(g)throw new Error("We currently do not support exact integer digits")}return""});continue}if(hn.test(i.stem)){t.minimumIntegerDigits=i.stem.length;continue}if(bt.test(i.stem)){if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(bt,function(f,l,u,_,c,g){return u==="*"?t.minimumFractionDigits=l.length:_&&_[0]==="#"?t.maximumFractionDigits=_.length:c&&g?(t.minimumFractionDigits=c.length,t.maximumFractionDigits=c.length+g.length):(t.minimumFractionDigits=l.length,t.maximumFractionDigits=l.length),""});var o=i.options[0];o==="w"?t=G(G({},t),{trailingZeroDisplay:"stripIfInteger"}):o&&(t=G(G({},t),yt(o)));continue}if(mn.test(i.stem)){t=G(G({},t),yt(i.stem));continue}var s=gn(i.stem);s&&(t=G(G({},t),s));var a=Wo(i.stem);a&&(t=G(G({},t),a))}return t}var Be,Jo=new RegExp("^".concat(dn.source,"*")),Yo=new RegExp("".concat(dn.source,"*$"));function F(e,t){return{start:e,end:t}}var Qo=!!String.prototype.startsWith,Ko=!!String.fromCodePoint,$o=!!Object.fromEntries,ea=!!String.prototype.codePointAt,ta=!!String.prototype.trimStart,na=!!String.prototype.trimEnd,ra=!!Number.isSafeInteger,ia=ra?Number.isSafeInteger:function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},Qe=!0;try{var oa=bn("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu");Qe=((Be=oa.exec("a"))===null||Be===void 0?void 0:Be[0])==="a"}catch{Qe=!1}var St=Qo?function(t,n,r){return t.startsWith(n,r)}:function(t,n,r){return t.slice(r,r+n.length)===n},Ke=Ko?String.fromCodePoint:function(){for(var t=[],n=0;no;){if(s=t[o++],s>1114111)throw RangeError(s+" is not a valid code point");r+=s<65536?String.fromCharCode(s):String.fromCharCode(((s-=65536)>>10)+55296,s%1024+56320)}return r},Tt=$o?Object.fromEntries:function(t){for(var n={},r=0,i=t;r=r)){var i=t.charCodeAt(n),o;return i<55296||i>56319||n+1===r||(o=t.charCodeAt(n+1))<56320||o>57343?i:(i-55296<<10)+(o-56320)+65536}},aa=ta?function(t){return t.trimStart()}:function(t){return t.replace(Jo,"")},la=na?function(t){return t.trimEnd()}:function(t){return t.replace(Yo,"")};function bn(e,t){return new RegExp(e,t)}var $e;if(Qe){var wt=bn("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu");$e=function(t,n){var r;wt.lastIndex=n;var i=wt.exec(t);return(r=i[1])!==null&&r!==void 0?r:""}}else $e=function(t,n){for(var r=[];;){var i=vn(t,n);if(i===void 0||yn(i)||ca(i))break;r.push(i),n+=i>=65536?2:1}return Ke.apply(void 0,r)};var sa=function(){function e(t,n){n===void 0&&(n={}),this.message=t,this.position={offset:0,line:1,column:1},this.ignoreTag=!!n.ignoreTag,this.requiresOtherClause=!!n.requiresOtherClause,this.shouldParseSkeletons=!!n.shouldParseSkeletons}return e.prototype.parse=function(){if(this.offset()!==0)throw Error("parser can only be used once");return this.parseMessage(0,"",!1)},e.prototype.parseMessage=function(t,n,r){for(var i=[];!this.isEOF();){var o=this.char();if(o===123){var s=this.parseArgument(t,r);if(s.err)return s;i.push(s.val)}else{if(o===125&&t>0)break;if(o===35&&(n==="plural"||n==="selectordinal")){var a=this.clonePosition();this.bump(),i.push({type:U.pound,location:F(a,this.clonePosition())})}else if(o===60&&!this.ignoreTag&&this.peek()===47){if(r)break;return this.error(M.UNMATCHED_CLOSING_TAG,F(this.clonePosition(),this.clonePosition()))}else if(o===60&&!this.ignoreTag&&et(this.peek()||0)){var s=this.parseTag(t,n);if(s.err)return s;i.push(s.val)}else{var s=this.parseLiteral(t,n);if(s.err)return s;i.push(s.val)}}}return{val:i,err:null}},e.prototype.parseTag=function(t,n){var r=this.clonePosition();this.bump();var i=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))return{val:{type:U.literal,value:"<".concat(i,"/>"),location:F(r,this.clonePosition())},err:null};if(this.bumpIf(">")){var o=this.parseMessage(t+1,n,!0);if(o.err)return o;var s=o.val,a=this.clonePosition();if(this.bumpIf("")){if(this.isEOF()||!et(this.char()))return this.error(M.INVALID_TAG,F(a,this.clonePosition()));var f=this.clonePosition(),l=this.parseTagName();return i!==l?this.error(M.UNMATCHED_CLOSING_TAG,F(f,this.clonePosition())):(this.bumpSpace(),this.bumpIf(">")?{val:{type:U.tag,value:i,children:s,location:F(r,this.clonePosition())},err:null}:this.error(M.INVALID_TAG,F(a,this.clonePosition())))}else return this.error(M.UNCLOSED_TAG,F(r,this.clonePosition()))}else return this.error(M.INVALID_TAG,F(r,this.clonePosition()))},e.prototype.parseTagName=function(){var t=this.offset();for(this.bump();!this.isEOF()&&fa(this.char());)this.bump();return this.message.slice(t,this.offset())},e.prototype.parseLiteral=function(t,n){for(var r=this.clonePosition(),i="";;){var o=this.tryParseQuote(n);if(o){i+=o;continue}var s=this.tryParseUnquoted(t,n);if(s){i+=s;continue}var a=this.tryParseLeftAngleBracket();if(a){i+=a;continue}break}var f=F(r,this.clonePosition());return{val:{type:U.literal,value:i,location:f},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!ua(this.peek()||0))?(this.bump(),"<"):null},e.prototype.tryParseQuote=function(t){if(this.isEOF()||this.char()!==39)return null;switch(this.peek()){case 39:return this.bump(),this.bump(),"'";case 123:case 60:case 62:case 125:break;case 35:if(t==="plural"||t==="selectordinal")break;return null;default:return null}this.bump();var n=[this.char()];for(this.bump();!this.isEOF();){var r=this.char();if(r===39)if(this.peek()===39)n.push(39),this.bump();else{this.bump();break}else n.push(r);this.bump()}return Ke.apply(void 0,n)},e.prototype.tryParseUnquoted=function(t,n){if(this.isEOF())return null;var r=this.char();return r===60||r===123||r===35&&(n==="plural"||n==="selectordinal")||r===125&&t>0?null:(this.bump(),Ke(r))},e.prototype.parseArgument=function(t,n){var r=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(M.EXPECT_ARGUMENT_CLOSING_BRACE,F(r,this.clonePosition()));if(this.char()===125)return this.bump(),this.error(M.EMPTY_ARGUMENT,F(r,this.clonePosition()));var i=this.parseIdentifierIfPossible().value;if(!i)return this.error(M.MALFORMED_ARGUMENT,F(r,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(M.EXPECT_ARGUMENT_CLOSING_BRACE,F(r,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:U.argument,value:i,location:F(r,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(M.EXPECT_ARGUMENT_CLOSING_BRACE,F(r,this.clonePosition())):this.parseArgumentOptions(t,n,i,r);default:return this.error(M.MALFORMED_ARGUMENT,F(r,this.clonePosition()))}},e.prototype.parseIdentifierIfPossible=function(){var t=this.clonePosition(),n=this.offset(),r=$e(this.message,n),i=n+r.length;this.bumpTo(i);var o=this.clonePosition(),s=F(t,o);return{value:r,location:s}},e.prototype.parseArgumentOptions=function(t,n,r,i){var o,s=this.clonePosition(),a=this.parseIdentifierIfPossible().value,f=this.clonePosition();switch(a){case"":return this.error(M.EXPECT_ARGUMENT_TYPE,F(s,f));case"number":case"date":case"time":{this.bumpSpace();var l=null;if(this.bumpIf(",")){this.bumpSpace();var u=this.clonePosition(),_=this.parseSimpleArgStyleIfPossible();if(_.err)return _;var c=la(_.val);if(c.length===0)return this.error(M.EXPECT_ARGUMENT_STYLE,F(this.clonePosition(),this.clonePosition()));var g=F(u,this.clonePosition());l={style:c,styleLocation:g}}var p=this.tryParseArgumentClose(i);if(p.err)return p;var m=F(i,this.clonePosition());if(l&&St(l?.style,"::",0)){var d=aa(l.style.slice(2));if(a==="number"){var _=this.parseNumberSkeletonFromString(d,l.styleLocation);return _.err?_:{val:{type:U.number,value:r,location:m,style:_.val},err:null}}else{if(d.length===0)return this.error(M.EXPECT_DATE_TIME_SKELETON,m);var c={type:me.dateTime,pattern:d,location:l.styleLocation,parsedOptions:this.shouldParseSkeletons?zo(d):{}},C=a==="date"?U.date:U.time;return{val:{type:C,value:r,location:m,style:c},err:null}}}return{val:{type:a==="number"?U.number:a==="date"?U.date:U.time,value:r,location:m,style:(o=l?.style)!==null&&o!==void 0?o:null},err:null}}case"plural":case"selectordinal":case"select":{var T=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(M.EXPECT_SELECT_ARGUMENT_OPTIONS,F(T,G({},T)));this.bumpSpace();var y=this.parseIdentifierIfPossible(),b=0;if(a!=="select"&&y.value==="offset"){if(!this.bumpIf(":"))return this.error(M.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,F(this.clonePosition(),this.clonePosition()));this.bumpSpace();var _=this.tryParseDecimalInteger(M.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,M.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);if(_.err)return _;this.bumpSpace(),y=this.parseIdentifierIfPossible(),b=_.val}var A=this.tryParsePluralOrSelectOptions(t,a,n,y);if(A.err)return A;var p=this.tryParseArgumentClose(i);if(p.err)return p;var O=F(i,this.clonePosition());return a==="select"?{val:{type:U.select,value:r,options:Tt(A.val),location:O},err:null}:{val:{type:U.plural,value:r,options:Tt(A.val),offset:b,pluralType:a==="plural"?"cardinal":"ordinal",location:O},err:null}}default:return this.error(M.INVALID_ARGUMENT_TYPE,F(s,f))}},e.prototype.tryParseArgumentClose=function(t){return this.isEOF()||this.char()!==125?this.error(M.EXPECT_ARGUMENT_CLOSING_BRACE,F(t,this.clonePosition())):(this.bump(),{val:!0,err:null})},e.prototype.parseSimpleArgStyleIfPossible=function(){for(var t=0,n=this.clonePosition();!this.isEOF();){var r=this.char();switch(r){case 39:{this.bump();var i=this.clonePosition();if(!this.bumpUntil("'"))return this.error(M.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE,F(i,this.clonePosition()));this.bump();break}case 123:{t+=1,this.bump();break}case 125:{if(t>0)t-=1;else return{val:this.message.slice(n.offset,this.offset()),err:null};break}default:this.bump();break}}return{val:this.message.slice(n.offset,this.offset()),err:null}},e.prototype.parseNumberSkeletonFromString=function(t,n){var r=[];try{r=Bo(t)}catch{return this.error(M.INVALID_NUMBER_SKELETON,n)}return{val:{type:me.number,tokens:r,location:n,parsedOptions:this.shouldParseSkeletons?Zo(r):{}},err:null}},e.prototype.tryParsePluralOrSelectOptions=function(t,n,r,i){for(var o,s=!1,a=[],f=new Set,l=i.value,u=i.location;;){if(l.length===0){var _=this.clonePosition();if(n!=="select"&&this.bumpIf("=")){var c=this.tryParseDecimalInteger(M.EXPECT_PLURAL_ARGUMENT_SELECTOR,M.INVALID_PLURAL_ARGUMENT_SELECTOR);if(c.err)return c;u=F(_,this.clonePosition()),l=this.message.slice(_.offset,this.offset())}else break}if(f.has(l))return this.error(n==="select"?M.DUPLICATE_SELECT_ARGUMENT_SELECTOR:M.DUPLICATE_PLURAL_ARGUMENT_SELECTOR,u);l==="other"&&(s=!0),this.bumpSpace();var g=this.clonePosition();if(!this.bumpIf("{"))return this.error(n==="select"?M.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT:M.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT,F(this.clonePosition(),this.clonePosition()));var p=this.parseMessage(t+1,n,r);if(p.err)return p;var m=this.tryParseArgumentClose(g);if(m.err)return m;a.push([l,{value:p.val,location:F(g,this.clonePosition())}]),f.add(l),this.bumpSpace(),o=this.parseIdentifierIfPossible(),l=o.value,u=o.location}return a.length===0?this.error(n==="select"?M.EXPECT_SELECT_ARGUMENT_SELECTOR:M.EXPECT_PLURAL_ARGUMENT_SELECTOR,F(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!s?this.error(M.MISSING_OTHER_CLAUSE,F(this.clonePosition(),this.clonePosition())):{val:a,err:null}},e.prototype.tryParseDecimalInteger=function(t,n){var r=1,i=this.clonePosition();this.bumpIf("+")||this.bumpIf("-")&&(r=-1);for(var o=!1,s=0;!this.isEOF();){var a=this.char();if(a>=48&&a<=57)o=!0,s=s*10+(a-48),this.bump();else break}var f=F(i,this.clonePosition());return o?(s*=r,ia(s)?{val:s,err:null}:this.error(n,f)):this.error(t,f)},e.prototype.offset=function(){return this.position.offset},e.prototype.isEOF=function(){return this.offset()===this.message.length},e.prototype.clonePosition=function(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}},e.prototype.char=function(){var t=this.position.offset;if(t>=this.message.length)throw Error("out of bound");var n=vn(this.message,t);if(n===void 0)throw Error("Offset ".concat(t," is at invalid UTF-16 code unit boundary"));return n},e.prototype.error=function(t,n){return{val:null,err:{kind:t,message:this.message,location:n}}},e.prototype.bump=function(){if(!this.isEOF()){var t=this.char();t===10?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=t<65536?1:2)}},e.prototype.bumpIf=function(t){if(St(this.message,t,this.offset())){for(var n=0;n=0?(this.bumpTo(r),!0):(this.bumpTo(this.message.length),!1)},e.prototype.bumpTo=function(t){if(this.offset()>t)throw Error("targetOffset ".concat(t," must be greater than or equal to the current offset ").concat(this.offset()));for(t=Math.min(t,this.message.length);;){var n=this.offset();if(n===t)break;if(n>t)throw Error("targetOffset ".concat(t," is at invalid UTF-16 code unit boundary"));if(this.bump(),this.isEOF())break}},e.prototype.bumpSpace=function(){for(;!this.isEOF()&&yn(this.char());)this.bump()},e.prototype.peek=function(){if(this.isEOF())return null;var t=this.char(),n=this.offset(),r=this.message.charCodeAt(n+(t>=65536?2:1));return r??null},e}();function et(e){return e>=97&&e<=122||e>=65&&e<=90}function ua(e){return et(e)||e===47}function fa(e){return e===45||e===46||e>=48&&e<=57||e===95||e>=97&&e<=122||e>=65&&e<=90||e==183||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function yn(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function ca(e){return e>=33&&e<=35||e===36||e>=37&&e<=39||e===40||e===41||e===42||e===43||e===44||e===45||e>=46&&e<=47||e>=58&&e<=59||e>=60&&e<=62||e>=63&&e<=64||e===91||e===92||e===93||e===94||e===96||e===123||e===124||e===125||e===126||e===161||e>=162&&e<=165||e===166||e===167||e===169||e===171||e===172||e===174||e===176||e===177||e===182||e===187||e===191||e===215||e===247||e>=8208&&e<=8213||e>=8214&&e<=8215||e===8216||e===8217||e===8218||e>=8219&&e<=8220||e===8221||e===8222||e===8223||e>=8224&&e<=8231||e>=8240&&e<=8248||e===8249||e===8250||e>=8251&&e<=8254||e>=8257&&e<=8259||e===8260||e===8261||e===8262||e>=8263&&e<=8273||e===8274||e===8275||e>=8277&&e<=8286||e>=8592&&e<=8596||e>=8597&&e<=8601||e>=8602&&e<=8603||e>=8604&&e<=8607||e===8608||e>=8609&&e<=8610||e===8611||e>=8612&&e<=8613||e===8614||e>=8615&&e<=8621||e===8622||e>=8623&&e<=8653||e>=8654&&e<=8655||e>=8656&&e<=8657||e===8658||e===8659||e===8660||e>=8661&&e<=8691||e>=8692&&e<=8959||e>=8960&&e<=8967||e===8968||e===8969||e===8970||e===8971||e>=8972&&e<=8991||e>=8992&&e<=8993||e>=8994&&e<=9e3||e===9001||e===9002||e>=9003&&e<=9083||e===9084||e>=9085&&e<=9114||e>=9115&&e<=9139||e>=9140&&e<=9179||e>=9180&&e<=9185||e>=9186&&e<=9254||e>=9255&&e<=9279||e>=9280&&e<=9290||e>=9291&&e<=9311||e>=9472&&e<=9654||e===9655||e>=9656&&e<=9664||e===9665||e>=9666&&e<=9719||e>=9720&&e<=9727||e>=9728&&e<=9838||e===9839||e>=9840&&e<=10087||e===10088||e===10089||e===10090||e===10091||e===10092||e===10093||e===10094||e===10095||e===10096||e===10097||e===10098||e===10099||e===10100||e===10101||e>=10132&&e<=10175||e>=10176&&e<=10180||e===10181||e===10182||e>=10183&&e<=10213||e===10214||e===10215||e===10216||e===10217||e===10218||e===10219||e===10220||e===10221||e===10222||e===10223||e>=10224&&e<=10239||e>=10240&&e<=10495||e>=10496&&e<=10626||e===10627||e===10628||e===10629||e===10630||e===10631||e===10632||e===10633||e===10634||e===10635||e===10636||e===10637||e===10638||e===10639||e===10640||e===10641||e===10642||e===10643||e===10644||e===10645||e===10646||e===10647||e===10648||e>=10649&&e<=10711||e===10712||e===10713||e===10714||e===10715||e>=10716&&e<=10747||e===10748||e===10749||e>=10750&&e<=11007||e>=11008&&e<=11055||e>=11056&&e<=11076||e>=11077&&e<=11078||e>=11079&&e<=11084||e>=11085&&e<=11123||e>=11124&&e<=11125||e>=11126&&e<=11157||e===11158||e>=11159&&e<=11263||e>=11776&&e<=11777||e===11778||e===11779||e===11780||e===11781||e>=11782&&e<=11784||e===11785||e===11786||e===11787||e===11788||e===11789||e>=11790&&e<=11798||e===11799||e>=11800&&e<=11801||e===11802||e===11803||e===11804||e===11805||e>=11806&&e<=11807||e===11808||e===11809||e===11810||e===11811||e===11812||e===11813||e===11814||e===11815||e===11816||e===11817||e>=11818&&e<=11822||e===11823||e>=11824&&e<=11833||e>=11834&&e<=11835||e>=11836&&e<=11839||e===11840||e===11841||e===11842||e>=11843&&e<=11855||e>=11856&&e<=11857||e===11858||e>=11859&&e<=11903||e>=12289&&e<=12291||e===12296||e===12297||e===12298||e===12299||e===12300||e===12301||e===12302||e===12303||e===12304||e===12305||e>=12306&&e<=12307||e===12308||e===12309||e===12310||e===12311||e===12312||e===12313||e===12314||e===12315||e===12316||e===12317||e>=12318&&e<=12319||e===12320||e===12336||e===64830||e===64831||e>=65093&&e<=65094}function tt(e){e.forEach(function(t){if(delete t.location,fn(t)||cn(t))for(var n in t.options)delete t.options[n].location,tt(t.options[n].value);else ln(t)&&pn(t.style)||(sn(t)||un(t))&&Ye(t.style)?delete t.style.location:_n(t)&&tt(t.children)})}function _a(e,t){t===void 0&&(t={}),t=G({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var n=new sa(e,t).parse();if(n.err){var r=SyntaxError(M[n.err.kind]);throw r.location=n.err.location,r.originalMessage=n.err.message,r}return t?.captureLocation||tt(n.val),n.val}function qe(e,t){var n=t&&t.cache?t.cache:va,r=t&&t.serializer?t.serializer:ga,i=t&&t.strategy?t.strategy:da;return i(e,{cache:n,serializer:r})}function pa(e){return e==null||typeof e=="number"||typeof e=="boolean"}function En(e,t,n,r){var i=pa(r)?r:n(r),o=t.get(i);return typeof o>"u"&&(o=e.call(this,r),t.set(i,o)),o}function Sn(e,t,n){var r=Array.prototype.slice.call(arguments,3),i=n(r),o=t.get(i);return typeof o>"u"&&(o=e.apply(this,r),t.set(i,o)),o}function lt(e,t,n,r,i){return n.bind(t,e,r,i)}function da(e,t){var n=e.length===1?En:Sn;return lt(e,this,n,t.cache.create(),t.serializer)}function ma(e,t){return lt(e,this,Sn,t.cache.create(),t.serializer)}function ha(e,t){return lt(e,this,En,t.cache.create(),t.serializer)}var ga=function(){return JSON.stringify(arguments)};function st(){this.cache=Object.create(null)}st.prototype.get=function(e){return this.cache[e]};st.prototype.set=function(e,t){this.cache[e]=t};var va={create:function(){return new st}},He={variadic:ma,monadic:ha},he;(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(he||(he={}));var Ge=function(e){Fe(t,e);function t(n,r,i){var o=e.call(this,n)||this;return o.code=r,o.originalMessage=i,o}return t.prototype.toString=function(){return"[formatjs Error: ".concat(this.code,"] ").concat(this.message)},t}(Error),It=function(e){Fe(t,e);function t(n,r,i,o){return e.call(this,'Invalid values for "'.concat(n,'": "').concat(r,'". Options are "').concat(Object.keys(i).join('", "'),'"'),he.INVALID_VALUE,o)||this}return t}(Ge),ba=function(e){Fe(t,e);function t(n,r,i){return e.call(this,'Value for "'.concat(n,'" must be of type ').concat(r),he.INVALID_VALUE,i)||this}return t}(Ge),ya=function(e){Fe(t,e);function t(n,r){return e.call(this,'The intl string context variable "'.concat(n,'" was not provided to the string "').concat(r,'"'),he.MISSING_VALUE,r)||this}return t}(Ge),Z;(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(Z||(Z={}));function Ea(e){return e.length<2?e:e.reduce(function(t,n){var r=t[t.length-1];return!r||r.type!==Z.literal||n.type!==Z.literal?t.push(n):r.value+=n.value,t},[])}function Sa(e){return typeof e=="function"}function Le(e,t,n,r,i,o,s){if(e.length===1&&vt(e[0]))return[{type:Z.literal,value:e[0].value}];for(var a=[],f=0,l=e;fn&&(t in fe||(fe[t]={}),e in fe[t]||(fe[t][e]=n),n),Tn=(e,t)=>{if(t==null)return;if(t in fe&&e in fe[t])return fe[t][e];const n=Oe(t);for(let r=0;r0){const a=i.slice(s,i.length).join(".");if(a in o){o=o[a];break}}o=o[i[s]]}else o=void 0;return o}(function(n){return ut[n]||null}(e),t):null}function In(e,...t){delete fe[e],Ce.update(n=>(n[e]=Fo.all([n[e]||{},...t]),n))}be([Ce],([e])=>Object.keys(e));Ce.subscribe(e=>ut=e);const Re={};function An(e){return Re[e]}function Me(e){return e!=null&&Oe(e).some(t=>{var n;return(n=An(t))===null||n===void 0?void 0:n.size})}function ka(e,t){return Promise.all(t.map(n=>(function(r,i){Re[r].delete(i),Re[r].size===0&&delete Re[r]}(e,n),n().then(r=>r.default||r)))).then(n=>In(e,...n))}const Se={};function Pn(e){if(!Me(e))return e in Se?Se[e]:Promise.resolve();const t=function(n){return Oe(n).map(r=>{const i=An(r);return[r,i?[...i]:[]]}).filter(([,r])=>r.length>0)}(e);return Se[e]=Promise.all(t.map(([n,r])=>ka(n,r))).then(()=>{if(Me(e))return Pn(e);delete Se[e]}),Se[e]}/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */function pe(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function"){var i=0;for(r=Object.getOwnPropertySymbols(e);ir.slice(0,n+1).join("-")).reverse()}function Oe(e,t=ge().fallbackLocale){const n=At(e);return t?[...new Set([...n,...At(t)])]:n}function ce(){return nt??void 0}Ne.subscribe(e=>{nt=e??void 0,typeof window<"u"&&e!=null&&document.documentElement.setAttribute("lang",e)});const Ee=Object.assign(Object.assign({},Ne),{set:e=>{if(e&&function(t){if(t==null)return;const n=Oe(t);for(let r=0;rZe.set(!0),t):Ze.set(!0),Pn(e).then(()=>{Ne.set(e)}).finally(()=>{clearTimeout(n),Ze.set(!1)})}return Ne.set(e)}}),La=()=>typeof window>"u"?null:window.navigator.language||window.navigator.languages[0],Ue=e=>{const t=Object.create(null);return n=>{const r=JSON.stringify(n);return r in t?t[r]:t[r]=e(n)}},Ae=(e,t)=>{const{formats:n}=ge();if(e in n&&t in n[e])return n[e][t];throw new Error(`[svelte-i18n] Unknown "${t}" ${e} format.`)},Ra=Ue(e=>{var{locale:t,format:n}=e,r=pe(e,["locale","format"]);if(t==null)throw new Error('[svelte-i18n] A "locale" must be set to format numbers');return n&&(r=Ae("number",n)),new Intl.NumberFormat(t,r)}),Na=Ue(e=>{var{locale:t,format:n}=e,r=pe(e,["locale","format"]);if(t==null)throw new Error('[svelte-i18n] A "locale" must be set to format dates');return n?r=Ae("date",n):Object.keys(r).length===0&&(r=Ae("date","short")),new Intl.DateTimeFormat(t,r)}),ja=Ue(e=>{var{locale:t,format:n}=e,r=pe(e,["locale","format"]);if(t==null)throw new Error('[svelte-i18n] A "locale" must be set to format time values');return n?r=Ae("time",n):Object.keys(r).length===0&&(r=Ae("time","short")),new Intl.DateTimeFormat(t,r)}),Da=(e={})=>{var{locale:t=ce()}=e,n=pe(e,["locale"]);return Ra(Object.assign({locale:t},n))},Ma=(e={})=>{var{locale:t=ce()}=e,n=pe(e,["locale"]);return Na(Object.assign({locale:t},n))},Fa=(e={})=>{var{locale:t=ce()}=e,n=pe(e,["locale"]);return ja(Object.assign({locale:t},n))},Ga=Ue((e,t=ce())=>new Pa(e,t,ge().formats,{ignoreTag:ge().ignoreTag})),Ua=(e,t={})=>{let n=t;typeof e=="object"&&(n=e,e=n.id);const{values:r,locale:i=ce(),default:o}=n;if(i==null)throw new Error("[svelte-i18n] Cannot format a message without first setting the initial locale.");let s=Tn(e,i);if(s){if(typeof s!="string")return console.warn(`[svelte-i18n] Message with id "${e}" must be of type "string", found: "${typeof s}". Gettin its value through the "$format" method is deprecated; use the "json" method instead.`),s}else ge().warnOnMissingMessages&&console.warn(`[svelte-i18n] The message "${e}" was not found in "${Oe(i).join('", "')}".${Me(ce())?`
+
+Note: there are at least one loader still registered to this locale that wasn't executed.`:""}`),s=o??e;if(!r)return s;let a=s;try{a=Ga(s,i).format(r)}catch(f){console.warn(`[svelte-i18n] Message "${e}" has syntax error:`,f.message)}return a},Va=(e,t)=>Fa(t).format(e),za=(e,t)=>Ma(t).format(e),Xa=(e,t)=>Da(t).format(e),Ba=(e,t=ce())=>Tn(e,t),Ds=be([Ee,Ce],()=>Ua);be([Ee],()=>Va);be([Ee],()=>za);be([Ee],()=>Xa);be([Ee,Ce],()=>Ba);const qa={accordion:()=>j(()=>import("./index.7b3c7b53.js"),["assets/index.7b3c7b53.js","assets/index.5aa71568.css","assets/Column.svelte_svelte_type_style_lang.c4c23b6e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/Column.3430dc15.js"]),audio:()=>j(()=>import("./index.cf135d39.js"),["assets/index.cf135d39.js","assets/index.949232a2.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/UploadText.a76eadb5.js","assets/UploadText.41b55f5d.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/Upload.fbdfc1d8.js","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css","assets/ModifyUpload.fbfaa2a2.js","assets/BlockLabel.353a84f3.js","assets/Empty.2aba5ba4.js"]),box:()=>j(()=>import("./index.5e7e2969.js"),["assets/index.5e7e2969.js","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css"]),button:()=>j(()=>import("./index.31375505.js"),["assets/index.31375505.js","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css"]),chatbot:()=>j(()=>import("./index.b1944a53.js"),["assets/index.b1944a53.js","assets/index.c402ae1d.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockLabel.353a84f3.js","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css"]),checkbox:()=>j(()=>import("./index.1a039cbc.js"),["assets/index.1a039cbc.js","assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/Info.c3b929b0.js"]),checkboxgroup:()=>j(()=>import("./index.dd74869f.js"),["assets/index.dd74869f.js","assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockTitle.8df62d03.js","assets/Info.c3b929b0.js"]),code:()=>j(()=>import("./index.6d4cf29b.js").then(function(e){return e.F}),["assets/index.6d4cf29b.js","assets/index.4d8c967c.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockLabel.353a84f3.js","assets/Empty.2aba5ba4.js","assets/Check.2e4ca81a.js","assets/Copy.81b6b893.js","assets/Download.db27fee4.js"]),colorpicker:()=>j(()=>import("./index.27aa9990.js"),["assets/index.27aa9990.js","assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockTitle.8df62d03.js","assets/Info.c3b929b0.js"]),column:()=>j(()=>import("./index.bb9e2504.js"),["assets/index.bb9e2504.js","assets/Column.svelte_svelte_type_style_lang.c4c23b6e.css","assets/Column.3430dc15.js","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css"]),dataframe:()=>j(()=>import("./index.8b8ecb0c.js"),["assets/index.8b8ecb0c.js","assets/index.ed3a7ba6.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Upload.fbdfc1d8.js","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/dsv.7fe76a93.js"]),dataset:()=>j(()=>import("./index.9a881d96.js"),["assets/index.9a881d96.js","assets/index.a3fdfec5.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/_commonjsHelpers.a5007c1f.js","assets/Image.69a24912.js","assets/Image.3a14ca24.css","assets/csv.27f5436c.js","assets/dsv.7fe76a93.js","assets/Model3D.bdb8cae5.js","assets/Model3D.586493bd.css"]),dropdown:()=>j(()=>import("./index.1db10615.js"),["assets/index.1db10615.js","assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockTitle.8df62d03.js","assets/Info.c3b929b0.js"]),file:()=>j(()=>import("./index.a9418f28.js"),["assets/index.a9418f28.js","assets/index.6da2d824.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockLabel.353a84f3.js","assets/Empty.2aba5ba4.js","assets/File.53d141a7.js","assets/Upload.fbdfc1d8.js","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css","assets/ModifyUpload.fbfaa2a2.js","assets/UploadText.a76eadb5.js","assets/UploadText.41b55f5d.css"]),form:()=>j(()=>import("./index.f8162e42.js"),["assets/index.f8162e42.js","assets/Form.5de40f6d.js","assets/Form.0a7d9dad.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css"]),gallery:()=>j(()=>import("./index.b5825662.js"),["assets/index.b5825662.js","assets/index.5c217706.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockLabel.353a84f3.js","assets/Empty.2aba5ba4.js","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css","assets/ModifyUpload.fbfaa2a2.js","assets/Image.6849a1b2.js"]),group:()=>j(()=>import("./index.5d997a9f.js"),["assets/index.5d997a9f.js","assets/index.722bec8b.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css"]),highlightedtext:()=>j(()=>import("./index.f9b0d4ba.js"),["assets/index.f9b0d4ba.js","assets/index.6f761b5e.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/color.a3b0f265.js","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockLabel.353a84f3.js","assets/Empty.2aba5ba4.js"]),html:()=>j(()=>import("./index.144a6f68.js"),["assets/index.144a6f68.js","assets/index.f6ac8e97.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css"]),image:()=>j(()=>import("./index.7c990bc4.js"),["assets/index.7c990bc4.js","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockLabel.353a84f3.js","assets/Image.6849a1b2.js","assets/StaticImage.svelte_svelte_type_style_lang.1f2b9ddb.js","assets/StaticImage.svelte_svelte_type_style_lang.746b3c9c.css","assets/ModifyUpload.fbfaa2a2.js","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css","assets/Copy.81b6b893.js","assets/Upload.fbdfc1d8.js","assets/Empty.2aba5ba4.js","assets/Download.db27fee4.js","assets/UploadText.a76eadb5.js","assets/UploadText.41b55f5d.css","assets/Image.69a24912.js","assets/Image.3a14ca24.css"]),interpretation:()=>j(()=>import("./index.6aef031f.js"),["assets/index.6aef031f.js","assets/index.8b2a7651.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockTitle.8df62d03.js","assets/Info.c3b929b0.js"]),json:()=>j(()=>import("./index.b5181efe.js"),["assets/index.b5181efe.js","assets/index.61c7b416.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Check.2e4ca81a.js","assets/Copy.81b6b893.js","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/Empty.2aba5ba4.js","assets/BlockLabel.353a84f3.js"]),label:()=>j(()=>import("./index.dcd6d8f6.js"),["assets/index.dcd6d8f6.js","assets/index.b68d5aeb.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockLabel.353a84f3.js","assets/Empty.2aba5ba4.js"]),markdown:()=>j(()=>import("./index.feb98d54.js"),["assets/index.feb98d54.js","assets/index.24229075.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css"]),model3d:()=>j(()=>import("./index.b704e73c.js"),["assets/index.b704e73c.js","assets/index.00ec9920.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockLabel.353a84f3.js","assets/Empty.2aba5ba4.js","assets/File.53d141a7.js","assets/ModifyUpload.fbfaa2a2.js","assets/Download.db27fee4.js","assets/_commonjsHelpers.a5007c1f.js","assets/Upload.fbdfc1d8.js","assets/UploadText.a76eadb5.js","assets/UploadText.41b55f5d.css","assets/Model3D.bdb8cae5.js","assets/Model3D.586493bd.css"]),number:()=>j(()=>import("./index.3629b929.js"),["assets/index.3629b929.js","assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockTitle.8df62d03.js","assets/Info.c3b929b0.js"]),plot:()=>j(()=>import("./index.d9733a29.js"),["assets/index.d9733a29.js","assets/index.84ff132c.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/_commonjsHelpers.a5007c1f.js","assets/color.a3b0f265.js","assets/linear.955f0731.js","assets/dsv.7fe76a93.js","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/Empty.2aba5ba4.js","assets/BlockLabel.353a84f3.js"]),radio:()=>j(()=>import("./index.005e6c3c.js"),["assets/index.005e6c3c.js","assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockTitle.8df62d03.js","assets/Info.c3b929b0.js"]),row:()=>j(()=>import("./index.1994ef5b.js"),["assets/index.1994ef5b.js","assets/index.1c646c8a.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css"]),slider:()=>j(()=>import("./index.1e91fe55.js"),["assets/index.1e91fe55.js","assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockTitle.8df62d03.js","assets/Info.c3b929b0.js"]),state:()=>j(()=>import("./index.1090d348.js"),["assets/index.1090d348.js","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css"]),statustracker:()=>j(()=>import("./index.0e1b4f3e.js"),["assets/index.0e1b4f3e.js","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css"]),tabs:()=>j(()=>import("./index.c20b05b1.js"),["assets/index.c20b05b1.js","assets/Column.svelte_svelte_type_style_lang.c4c23b6e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/TabItem.svelte_svelte_type_style_lang.47c0ebef.js","assets/TabItem.svelte_svelte_type_style_lang.8ca4f84d.css"]),tabitem:()=>j(()=>import("./index.e30d73c2.js"),["assets/index.e30d73c2.js","assets/Column.svelte_svelte_type_style_lang.c4c23b6e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/TabItem.svelte_svelte_type_style_lang.47c0ebef.js","assets/TabItem.svelte_svelte_type_style_lang.8ca4f84d.css","assets/Column.3430dc15.js"]),textbox:()=>j(()=>import("./index.181bcf7b.js"),["assets/index.181bcf7b.js","assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/Textbox.659cde30.js","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockTitle.8df62d03.js","assets/Info.c3b929b0.js","assets/Check.2e4ca81a.js","assets/Copy.81b6b893.js"]),timeseries:()=>j(()=>import("./index.78a78429.js"),["assets/index.78a78429.js","assets/index.8f9fffde.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Upload.fbdfc1d8.js","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css","assets/ModifyUpload.fbfaa2a2.js","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/BlockLabel.353a84f3.js","assets/Empty.2aba5ba4.js","assets/color.a3b0f265.js","assets/linear.955f0731.js","assets/csv.27f5436c.js","assets/dsv.7fe76a93.js","assets/UploadText.a76eadb5.js","assets/UploadText.41b55f5d.css"]),uploadbutton:()=>j(()=>import("./index.fde14e7c.js"),["assets/index.fde14e7c.js","assets/index.89ce7356.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css"]),video:()=>j(()=>import("./index.5ff6a5f0.js"),["assets/index.5ff6a5f0.js","assets/index.ff5c67e2.css","assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css","assets/index.8bc3f3e8.js","assets/index.f554ccc1.css","assets/ModifyUpload.svelte_svelte_type_style_lang.e946db2d.js","assets/ModifyUpload.svelte_svelte_type_style_lang.8c17392b.css","assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js","assets/Empty.svelte_svelte_type_style_lang.04656a45.css","assets/Upload.fbdfc1d8.js","assets/ModifyUpload.fbfaa2a2.js","assets/BlockLabel.353a84f3.js","assets/StaticImage.svelte_svelte_type_style_lang.1f2b9ddb.js","assets/StaticImage.svelte_svelte_type_style_lang.746b3c9c.css","assets/Empty.2aba5ba4.js","assets/UploadText.a76eadb5.js","assets/UploadText.41b55f5d.css"])},Cn="\u0623\u0631\u0633\u0644",On="\u0623\u0645\u0633\u062D",kn="\u0641\u0633\u0650\u0651\u0631",xn="\u0628\u0644\u0650\u0651\u063A",Ln="\u0623\u0645\u062B\u0644\u0629",Rn="\u0623\u0648";var Ha={interface:{drop_image:"\u0623\u0633\u0642\u0637 \u0627\u0644\u0635\u0648\u0631\u0629 \u0647\u0646\u0627",drop_video:"\u0623\u0633\u0642\u0637 \u0627\u0644\u0641\u064A\u062F\u064A\u0648 \u0647\u0646\u0627",drop_audio:"\u0623\u0633\u0642\u0637 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0635\u0648\u062A\u064A \u0647\u0646\u0627",drop_file:"\u0623\u0633\u0642\u0637 \u0627\u0644\u0645\u0644\u0641 \u0647\u0646\u0627",drop_csv:"\u0623\u0633\u0642\u0637 \u0645\u0644\u0641 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0647\u0646\u0627",click_to_upload:"\u0625\u0636\u063A\u0637 \u0644\u0644\u062A\u062D\u0645\u064A\u0644",view_api:"\u0625\u0633\u062A\u062E\u062F\u0645 \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0628\u0631\u0645\u062C\u0629",built_with_Gradio:"\u062A\u0645 \u0627\u0644\u0625\u0646\u0634\u0627\u0621 \u0628\u0625\u0633\u062A\u062E\u062F\u0627\u0645 Gradio"},Submit:Cn,Clear:On,Interpret:kn,Flag:xn,Examples:Ln,or:Rn},Wa=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Cn,Clear:On,Interpret:kn,Flag:xn,Examples:Ln,or:Rn,default:Ha});const Nn="Absenden",jn="L\xF6schen",Dn="Ersteller",Mn="Flag",Fn="Beispiele",Gn="oder";var Za={interface:{drop_image:"Bild hier ablegen",drop_video:"Video hier ablegen",drop_audio:"Audio hier ablegen",drop_file:"Datei hier ablegen",drop_csv:"CSV Datei hier ablegen",click_to_upload:"Hochladen",view_api:"API anschauen",built_with_Gradio:"Mit Gradio erstellt"},Submit:Nn,Clear:jn,Interpret:Dn,Flag:Mn,Examples:Fn,or:Gn},Ja=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Nn,Clear:jn,Interpret:Dn,Flag:Mn,Examples:Fn,or:Gn,default:Za});const Un="Submit",Vn="Clear",zn="Interpret",Xn="Flag",Bn="Examples",qn="or";var Ya={interface:{drop_image:"Drop Image Here",drop_video:"Drop Video Here",drop_audio:"Drop Audio Here",drop_file:"Drop File Here",drop_csv:"Drop CSV Here",click_to_upload:"Click to Upload",view_api:"view the api",built_with_Gradio:"Built with gradio",copy_to_clipboard:"copy json",loading:"Loading",error:"ERROR",empty:"Empty"},Submit:Un,Clear:Vn,Interpret:zn,Flag:Xn,Examples:Bn,or:qn},Qa=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Un,Clear:Vn,Interpret:zn,Flag:Xn,Examples:Bn,or:qn,default:Ya});const Hn="Enviar",Wn="Limpiar",Zn="Interpretar",Jn="Avisar",Yn="Ejemplos",Qn="o";var Ka={interface:{drop_image:"Coloque la imagen aqu\xED",drop_video:"Coloque el video aqu\xED",drop_audio:"Coloque el audio aqu\xED",drop_file:"Coloque el archivo aqu\xED",drop_csv:"Coloque el CSV aqu\xED",click_to_upload:"Haga click para cargar",view_api:"Ver la API",built_with_Gradio:"Construido con Gradio"},Submit:Hn,Clear:Wn,Interpret:Zn,Flag:Jn,Examples:Yn,or:Qn},$a=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Hn,Clear:Wn,Interpret:Zn,Flag:Jn,Examples:Yn,or:Qn,default:Ka});const Kn="\u0627\u0631\u0633\u0627\u0644",$n="\u062D\u0630\u0641",er="\u062A\u0641\u0633\u06CC\u0631",tr="\u067E\u0631\u0686\u0645",nr="\u0645\u062B\u0627\u0644 \u0647\u0627",rr="\u06CC\u0627";var el={interface:{drop_image:"\u062A\u0635\u0648\u06CC\u0631 \u0631\u0627 \u0627\u06CC\u0646\u062C\u0627 \u0631\u0647\u0627 \u06A9\u0646\u06CC\u062F",drop_video:"\u0648\u06CC\u062F\u06CC\u0648 \u0631\u0627 \u0627\u06CC\u0646\u062C\u0627 \u0631\u0647\u0627 \u06A9\u0646\u06CC\u062F",drop_audio:"\u0635\u0648\u062A \u0631\u0627 \u0627\u06CC\u0646\u062C\u0627 \u0631\u0647\u0627 \u06A9\u0646\u06CC\u062F",drop_file:"\u0641\u0627\u06CC\u0644 \u0631\u0627 \u0627\u06CC\u0646\u062C\u0627 \u0631\u0647\u0627 \u06A9\u0646\u06CC\u062F",drop_csv:"\u0641\u0627\u06CC\u0644 csv \u0631\u0627 \u0627\u06CC\u0646\u062C\u0627 \u0631\u0647\u0627 \u06A9\u0646\u06CC\u062F",click_to_upload:"\u0628\u0631\u0627\u06CC \u0622\u067E\u0644\u0648\u062F \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F",view_api:"api \u0631\u0627 \u0645\u0634\u0627\u0647\u062F\u0647 \u06A9\u0646\u06CC\u062F",built_with_Gradio:"\u0633\u0627\u062E\u062A\u0647 \u0634\u062F\u0647 \u0628\u0627 gradio"},Submit:Kn,Clear:$n,Interpret:er,Flag:tr,Examples:nr,or:rr},tl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Kn,Clear:$n,Interpret:er,Flag:tr,Examples:nr,or:rr,default:el});const ir="Soumettre",or="Nettoyer",ar="Interpr\xE9ter",lr="Signaler",sr="Exemples",ur="ou";var nl={interface:{drop_image:"D\xE9poser l'Image Ici",drop_video:"D\xE9poser la Vid\xE9o Ici",drop_audio:"D\xE9poser l'Audio Ici",drop_file:"D\xE9poser le Fichier Ici",drop_csv:"D\xE9poser le CSV Ici",click_to_upload:"Cliquer pour T\xE9l\xE9charger",view_api:"Voir l'API",built_with_Gradio:"Con\xE7u avec Gradio"},Submit:ir,Clear:or,Interpret:ar,Flag:lr,Examples:sr,or:ur},rl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:ir,Clear:or,Interpret:ar,Flag:lr,Examples:sr,or:ur,default:nl});const fr="\u05E9\u05DC\u05D7",cr="\u05E0\u05E7\u05D4",_r="\u05DC\u05E4\u05E8\u05E9",pr="\u05E1\u05DE\u05DF",dr="\u05D3\u05D5\u05D2\u05DE\u05D5\u05EA",mr="\u05D0\u05D5";var il={interface:{drop_image:"\u05D2\u05E8\u05D5\u05E8 \u05E7\u05D5\u05D1\u05E5 \u05EA\u05DE\u05D5\u05E0\u05D4 \u05DC\u05DB\u05D0\u05DF",drop_video:"\u05D2\u05E8\u05D5\u05E8 \u05E7\u05D5\u05D1\u05E5 \u05E1\u05E8\u05D8\u05D5\u05DF \u05DC\u05DB\u05D0\u05DF",drop_audio:"\u05D2\u05E8\u05D5\u05E8 \u05DC\u05DB\u05D0\u05DF \u05E7\u05D5\u05D1\u05E5 \u05E9\u05DE\u05E2",drop_file:"\u05D2\u05E8\u05D5\u05E8 \u05E7\u05D5\u05D1\u05E5 \u05DC\u05DB\u05D0\u05DF",drop_csv:"\u05D2\u05E8\u05D5\u05E8 csv \u05E7\u05D5\u05D1\u05E5 \u05DC\u05DB\u05D0\u05DF",click_to_upload:"\u05DC\u05D7\u05E5 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05E2\u05DC\u05D5\u05EA",view_api:"\u05E6\u05E4\u05D4 \u05D1 API",built_with_Gradio:"\u05D1\u05E0\u05D5\u05D9 \u05E2\u05DD \u05D2\u05E8\u05D3\u05D9\u05D5"},Submit:fr,Clear:cr,Interpret:_r,Flag:pr,Examples:dr,or:mr},ol=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:fr,Clear:cr,Interpret:_r,Flag:pr,Examples:dr,or:mr,default:il});const hr="\u0938\u092C\u092E\u093F\u091F \u0915\u0930\u0947",gr="\u0939\u091F\u093E\u092F\u0947",vr="\u0935\u094D\u092F\u093E\u0916\u094D\u092F\u093E \u0915\u0930\u0947",br="\u091A\u093F\u0939\u094D\u0928\u093F\u0924 \u0915\u0930\u0947",yr="\u0909\u0926\u093E\u0939\u0930\u0923",Er="\u092F\u093E";var al={interface:{drop_image:"\u092F\u0939\u093E\u0901 \u0907\u092E\u0947\u091C \u0921\u094D\u0930\u0949\u092A \u0915\u0930\u0947\u0902",drop_video:"\u092F\u0939\u093E\u0901 \u0935\u0940\u0921\u093F\u092F\u094B \u0921\u094D\u0930\u0949\u092A \u0915\u0930\u0947\u0902",drop_audio:"\u092F\u0939\u093E\u0901 \u0911\u0921\u093F\u092F\u094B \u0921\u094D\u0930\u0949\u092A \u0915\u0930\u0947\u0902",drop_file:"\u092F\u0939\u093E\u0901 File \u0921\u094D\u0930\u0949\u092A \u0915\u0930\u0947\u0902",drop_csv:"\u092F\u0939\u093E\u0901 CSV \u0921\u094D\u0930\u0949\u092A \u0915\u0930\u0947\u0902",click_to_upload:"\u0905\u092A\u0932\u094B\u0921 \u0915\u0947 \u0932\u093F\u090F \u092C\u091F\u0928 \u0926\u092C\u093E\u092F\u0947\u0902",view_api:"API \u0915\u094B \u0926\u0947\u0916\u0947",built_with_Gradio:"Gradio \u0938\u0947 \u092C\u0928\u093E"},Submit:hr,Clear:gr,Interpret:vr,Flag:br,Examples:yr,or:Er},ll=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:hr,Clear:gr,Interpret:vr,Flag:br,Examples:yr,or:Er,default:al});const Sr="\u9001\u4FE1",Tr="\u30AF\u30EA\u30A2",wr="\u89E3\u91C8",Ir="\u30D5\u30E9\u30B0\u3059\u308B",Ar="\u5165\u529B\u4F8B",Pr="\u307E\u305F\u306F";var sl={interface:{drop_image:"\u3053\u3053\u306B\u753B\u50CF\u3092\u30C9\u30ED\u30C3\u30D7",drop_video:"\u3053\u3053\u306B\u52D5\u753B\u3092\u30C9\u30ED\u30C3\u30D7",drop_audio:"\u3053\u3053\u306B\u97F3\u58F0\u3092\u30C9\u30ED\u30C3\u30D7",drop_file:"\u3053\u3053\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u30C9\u30ED\u30C3\u30D7",drop_csv:"\u3053\u3053\u306BCSV\u3092\u30C9\u30ED\u30C3\u30D7",click_to_upload:"\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9",view_api:"API\u3092\u898B\u308B",built_with_Gradio:"gradio\u3067\u4F5C\u308D\u3046"},Submit:Sr,Clear:Tr,Interpret:wr,Flag:Ir,Examples:Ar,or:Pr},ul=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Sr,Clear:Tr,Interpret:wr,Flag:Ir,Examples:Ar,or:Pr,default:sl});const Cr="\uC81C\uCD9C\uD558\uAE30",Or="\uD074\uB9AC\uC5B4",kr="\uC124\uBA85\uD558\uAE30",xr="\uD50C\uB798\uADF8",Lr="\uC608\uC2DC",Rr="\uB610\uB294";var fl={interface:{drop_image:"\uC774\uBBF8\uC9C0\uB97C \uB04C\uC5B4 \uB193\uC73C\uC138\uC694",drop_video:"\uBE44\uB514\uC624\uB97C \uB04C\uC5B4 \uB193\uC73C\uC138\uC694",drop_audio:"\uC624\uB514\uC624\uB97C \uB04C\uC5B4 \uB193\uC73C\uC138\uC694",drop_file:"\uD30C\uC77C\uC744 \uB04C\uC5B4 \uB193\uC73C\uC138\uC694",drop_csv:"CSV\uD30C\uC77C\uC744 \uB04C\uC5B4 \uB193\uC73C\uC138\uC694",click_to_upload:"\uD074\uB9AD\uD574\uC11C \uC5C5\uB85C\uB4DC\uD558\uAE30",view_api:"API \uBCF4\uAE30",built_with_Gradio:"gradio\uB85C \uC81C\uC791\uB418\uC5C8\uC2B5\uB2C8\uB2E4"},Submit:Cr,Clear:Or,Interpret:kr,Flag:xr,Examples:Lr,or:Rr},cl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Cr,Clear:Or,Interpret:kr,Flag:xr,Examples:Lr,or:Rr,default:fl});const Nr="Pateikti",jr="Trinti",Dr="Interpretuoti",Mr="Pa\u017Eym\u0117ti",Fr="Pavyzd\u017Eiai",Gr="arba";var _l={interface:{drop_image:"\u012Ekelkite paveiksl\u0117l\u012F \u010Dia",drop_video:"\u012Ekelkite vaizdo \u012Fra\u0161\u0105 \u010Dia",drop_audio:"\u012Ekelkite garso \u012Fra\u0161\u0105 \u010Dia",drop_file:"\u012Ekelkite byl\u0105 \u010Dia",drop_csv:"\u012Ekelkite CSV \u010Dia",click_to_upload:"Spustel\u0117kite nor\u0117dami \u012Fkelti",view_api:"per\u017Ei\u016Br\u0117ti api",built_with_Gradio:"sukurta su gradio"},Submit:Nr,Clear:jr,Interpret:Dr,Flag:Mr,Examples:Fr,or:Gr},pl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Nr,Clear:jr,Interpret:Dr,Flag:Mr,Examples:Fr,or:Gr,default:_l});const Ur="Zend in",Vr="Wis",zr="Interpreteer",Xr="Vlag",Br="Voorbeelden",qr="of";var dl={interface:{drop_image:"Sleep een Afbeelding hier",drop_video:"Sleep een Video hier",drop_audio:"Sleep een Geluidsbestand hier",drop_file:"Sleep een Document hier",drop_csv:"Sleep een CSV hier",click_to_upload:"Klik om the Uploaden",view_api:"zie de api",built_with_Gradio:"gemaakt met gradio"},Submit:Ur,Clear:Vr,Interpret:zr,Flag:Xr,Examples:Br,or:qr},ml=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Ur,Clear:Vr,Interpret:zr,Flag:Xr,Examples:Br,or:qr,default:dl});const Hr="Zatwierd\u017A",Wr="Wyczy\u015B\u0107",Zr="Interpretuj",Jr="Oznacz",Yr="Przyk\u0142ady",Qr="lub";var hl={interface:{drop_image:"Przeci\u0105gnij tutaj zdj\u0119cie",drop_video:"Przeci\u0105gnij tutaj video",drop_audio:"Przeci\u0105gnij tutaj audio",drop_file:"Przeci\u0105gnij tutaj plik",drop_csv:"Przeci\u0105gnij tutaj CSV",click_to_upload:"Kliknij, aby przes\u0142a\u0107",view_api:"zobacz api",built_with_Gradio:"utworzone z gradio"},Submit:Hr,Clear:Wr,Interpret:Zr,Flag:Jr,Examples:Yr,or:Qr},gl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Hr,Clear:Wr,Interpret:Zr,Flag:Jr,Examples:Yr,or:Qr,default:hl});const Kr="Enviar",$r="Limpar",ei="Interpretar",ti="Marcar",ni="Exemplos",ri="ou";var vl={interface:{drop_image:"Solte a Imagem Aqui",drop_video:"Solte o V\xEDdeo Aqui",drop_audio:"Solte o \xC1udio Aqui",drop_file:"Solte o Arquivo Aqui",drop_csv:"Solte o CSV Aqui",click_to_upload:"Clique para o Upload",view_api:"Veja a API",built_with_Gradio:"Constru\xEDdo com gradio",copy_to_clipboard:"copiar para o clipboard",loading:"Carregando",error:"ERRO",empty:"Vazio"},Submit:Kr,Clear:$r,Interpret:ei,Flag:ti,Examples:ni,or:ri},bl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Kr,Clear:$r,Interpret:ei,Flag:ti,Examples:ni,or:ri,default:vl});const ii="\u0418\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u044C",oi="\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",ai="\u0418\u043D\u0442\u0435\u0440\u043F\u0440\u0435\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C",li="\u041F\u043E\u043C\u0435\u0442\u0438\u0442\u044C",si="\u041F\u0440\u0438\u043C\u0435\u0440\u044B",ui="\u0438\u043B\u0438";var yl={interface:{drop_image:"\u041F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0417\u0434\u0435\u0441\u044C",drop_video:"\u041F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0412\u0438\u0434\u0435\u043E \u0417\u0434\u0435\u0441\u044C",drop_audio:"\u041F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0410\u0443\u0434\u0438\u043E \u0417\u0434\u0435\u0441\u044C",drop_file:"\u041F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0417\u0434\u0435\u0441\u044C",drop_csv:"\u041F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u0435 CSV \u0417\u0434\u0435\u0441\u044C",click_to_upload:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",view_api:"\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 api",built_with_Gradio:"\u0441\u0434\u0435\u043B\u0430\u043D\u043E \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E gradio"},Submit:ii,Clear:oi,Interpret:ai,Flag:li,Examples:si,or:ui},El=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:ii,Clear:oi,Interpret:ai,Flag:li,Examples:si,or:ui,default:yl});const fi="\u0B9A\u0BAE\u0BB0\u0BCD\u0BAA\u0BCD\u0BAA\u0BBF",ci="\u0B85\u0BB4\u0BBF",_i="\u0B89\u0B9F\u0BCD\u0BAA\u0BCA\u0BB0\u0BC1\u0BB3\u0BCD",pi="\u0B95\u0BCA\u0B9F\u0BBF\u0BAF\u0BBF\u0B9F\u0BC1",di="\u0B8E\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",mi="\u0B85\u0BB2\u0BCD\u0BB2\u0BA4\u0BC1";var Sl={interface:{drop_image:"\u0BAA\u0B9F\u0BA4\u0BCD\u0BA4\u0BC8 \u0BB5\u0BC8",drop_video:"\u0BB5\u0BC0\u0B9F\u0BBF\u0BAF\u0BCB\u0BB5\u0BC8 \u0BB5\u0BC8",drop_audio:"\u0B86\u0B9F\u0BBF\u0BAF\u0BCB\u0BB5\u0BC8 \u0BB5\u0BC8",drop_file:"\u0B95\u0BCB\u0BAA\u0BCD\u0BAA\u0BC8 \u0BB5\u0BC8",drop_csv:"\u0B9A\u0BBF\u0B8E\u0BB8\u0BCD\u0BB5\u0BBF \u0BB5\u0BC8",click_to_upload:"\u0BAA\u0BA4\u0BBF\u0BB5\u0BC7\u0BB1\u0BCD\u0BB1 \u0B95\u0BBF\u0BB3\u0BBF\u0B95\u0BCD \u0B9A\u0BC6\u0BAF\u0BCD",view_api:"\u0B85\u0BAA\u0BBF\u0BAF\u0BC8 \u0B95\u0BBE\u0BA3\u0BCD",built_with_Gradio:"\u0B95\u0BCD\u0BB0\u0BC7\u0B9F\u0BBF\u0BAF\u0BCB-\u0BB5\u0BC1\u0B9F\u0BA9\u0BCD \u0B95\u0B9F\u0BCD\u0B9F\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1"},Submit:fi,Clear:ci,Interpret:_i,Flag:pi,Examples:di,or:mi},Tl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:fi,Clear:ci,Interpret:_i,Flag:pi,Examples:di,or:mi,default:Sl});const hi="Y\xFCkle",gi="Temizle",vi="Yorumla",bi="Etiketle",yi="\xF6rnekler",Ei="veya";var wl={interface:{drop_image:"Resmi Buraya S\xFCr\xFCkle",drop_video:"Videoyu Buraya S\xFCr\xFCkle",drop_audio:"Kayd\u0131 Buraya S\xFCr\xFCkle",drop_file:"Dosyay\u0131 Buraya S\xFCr\xFCkle",drop_csv:"CSV'yi Buraya S\xFCr\xFCkle",click_to_upload:"Y\xFCklemek i\xE7in T\u0131kla",view_api:"api'yi g\xF6r\xFCnt\xFCle",built_with_Gradio:"Gradio ile olu\u015Fturulmu\u015Ftur"},Submit:hi,Clear:gi,Interpret:vi,Flag:bi,Examples:yi,or:Ei},Il=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:hi,Clear:gi,Interpret:vi,Flag:bi,Examples:yi,or:Ei,default:wl});const Si="\u041D\u0430\u0434\u0456\u0441\u043B\u0430\u0442\u0438",Ti="\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438",wi="\u041F\u043E\u044F\u0441\u043D\u0438\u0442\u0438 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442",Ii="\u041F\u043E\u0437\u043D\u0430\u0447\u0438\u0442\u0438",Ai="\u041F\u0440\u0438\u043A\u043B\u0430\u0434\u0438",Pi="\u0430\u0431\u043E";var Al={interface:{drop_image:"\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0441\u044E\u0434\u0438",drop_video:"\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0432\u0456\u0434\u0435\u043E \u0441\u044E\u0434\u0438",drop_audio:"\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0430\u0443\u0434\u0456\u043E \u0441\u044E\u0434\u0438",drop_file:"\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0444\u0430\u0439\u043B \u0441\u044E\u0434\u0438",drop_csv:"\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C CSV-\u0444\u0430\u0439\u043B \u0441\u044E\u0434\u0438",click_to_upload:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C \u0449\u043E\u0431 \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438",view_api:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u043D\u0443\u0442\u0438 API",built_with_Gradio:"\u0417\u0440\u043E\u0431\u043B\u0435\u043D\u043E \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0456 gradio"},Submit:Si,Clear:Ti,Interpret:wi,Flag:Ii,Examples:Ai,or:Pi},Pl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Si,Clear:Ti,Interpret:wi,Flag:Ii,Examples:Ai,or:Pi,default:Al});const Ci="\u062C\u0645\u0639 \u06A9\u0631\u06CC\u06BA",Oi="\u06C1\u0679\u0627 \u062F\u06CC\u06BA",ki="\u062A\u0634\u0631\u06CC\u062D \u06A9\u0631\u06CC\u06BA",xi="\u0646\u0634\u0627\u0646 \u0644\u06AF\u0627\u0626\u06CC\u06BA",Li="\u0645\u062B\u0627\u0644\u06CC\u06BA",Ri="\u06CC\u0627";var Cl={interface:{drop_image:"\u06CC\u06C1\u0627\u06BA \u062A\u0635\u0648\u06CC\u0631 \u0688\u0631\u0627\u067E \u06A9\u0631\u06CC\u06BA",drop_video:"\u06CC\u06C1\u0627\u06BA \u0648\u06CC\u0688\u06CC\u0648 \u0688\u0631\u0627\u067E \u06A9\u0631\u06CC\u06BA",drop_audio:"\u06CC\u06C1\u0627\u06BA \u0622\u0688\u06CC\u0648 \u0688\u0631\u0627\u067E \u06A9\u0631\u06CC\u06BA",drop_file:"\u06CC\u06C1\u0627\u06BA \u0641\u0627\u0626\u0644 \u0688\u0631\u0627\u067E \u06A9\u0631\u06CC\u06BA",drop_csv:"\u06CC\u06C1\u0627\u06BA \u0641\u0627\u0626\u0644 \u0688\u0631\u0627\u067E \u06A9\u0631\u06CC\u06BA",click_to_upload:"\u0627\u067E \u0644\u0648\u0688 \u06A9\u06D2 \u0644\u06CC\u06D2 \u06A9\u0644\u06A9 \u06A9\u0631\u06CC\u06BA",view_api:"API \u062F\u06CC\u06A9\u06BE\u06CC\u06BA",built_with_Gradio:"\u06A9\u06D2 \u0633\u0627\u062A\u06BE \u0628\u0646\u0627\u06CC\u0627 \u06AF\u06CC\u0627 Gradio"},Submit:Ci,Clear:Oi,Interpret:ki,Flag:xi,Examples:Li,or:Ri},Ol=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Ci,Clear:Oi,Interpret:ki,Flag:xi,Examples:Li,or:Ri,default:Cl});const Ni="Yubor",ji="Tozalash",Di="Tushuntirish",Mi="Bayroq",Fi="Namunalar",Gi="\u6216";var kl={interface:{drop_image:"Rasmni Shu Yerga Tashlang",drop_video:"Videoni Shu Yerga Tashlang",drop_audio:"Audioni Shu Yerga Tashlang",drop_file:"Faylni Shu Yerga Tashlang",drop_csv:"CSVni Shu Yerga Tashlang",click_to_upload:"Yuklash uchun Bosing",view_api:"apini ko'ring",built_with_Gradio:"gradio bilan qilingan"},Submit:Ni,Clear:ji,Interpret:Di,Flag:Mi,Examples:Fi,or:Gi},xl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Ni,Clear:ji,Interpret:Di,Flag:Mi,Examples:Fi,or:Gi,default:kl});const Ui="\u63D0\u4EA4",Vi="\u6E05\u9664",zi="\u89E3\u91CA",Xi="\u6807\u8BB0",Bi="\u793A\u4F8B",qi="\u6216";var Ll={interface:{drop_image:"\u62D6\u653E\u56FE\u7247\u81F3\u6B64\u5904",drop_video:"\u62D6\u653E\u89C6\u9891\u81F3\u6B64\u5904",drop_audio:"\u62D6\u653E\u97F3\u9891\u81F3\u6B64\u5904",drop_file:"\u62D6\u653E\u6587\u4EF6\u81F3\u6B64\u5904",drop_csv:"\u62D6\u653ECSV\u81F3\u6B64\u5904",click_to_upload:"\u70B9\u51FB\u4E0A\u4F20",view_api:"\u67E5\u770BAPI",built_with_Gradio:"\u4F7F\u7528Gradio\u6784\u5EFA"},Submit:Ui,Clear:Vi,Interpret:zi,Flag:Xi,Examples:Bi,or:qi},Rl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Ui,Clear:Vi,Interpret:zi,Flag:Xi,Examples:Bi,or:qi,default:Ll});const Hi="\u63D0\u4EA4",Wi="\u6E05\u9664",Zi="\u89E3\u91CB",Ji="Flag",Yi="\u7BC4\u4F8B",Qi="\u6216";var Nl={interface:{drop_image:"\u522A\u9664\u5716\u7247",drop_video:"\u522A\u9664\u5F71\u7247",drop_audio:"\u522A\u9664\u97F3\u983B",drop_file:"\u522A\u9664\u6A94\u6848",drop_csv:"\u522A\u9664CSV",click_to_upload:"\u9EDE\u64CA\u4E0A\u50B3",view_api:"\u67E5\u770BAPI",built_with_Gradio:"\u4F7F\u7528Gradio\u69CB\u5EFA"},Submit:Hi,Clear:Wi,Interpret:Zi,Flag:Ji,Examples:Yi,or:Qi},jl=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Submit:Hi,Clear:Wi,Interpret:Zi,Flag:Ji,Examples:Yi,or:Qi,default:Nl});const Pt={"./lang/ar.json":Wa,"./lang/de.json":Ja,"./lang/en.json":Qa,"./lang/es.json":$a,"./lang/fa.json":tl,"./lang/fr.json":rl,"./lang/he.json":ol,"./lang/hi.json":ll,"./lang/ja.json":ul,"./lang/ko.json":cl,"./lang/lt.json":pl,"./lang/nl.json":ml,"./lang/pl.json":gl,"./lang/pt-BR.json":bl,"./lang/ru.json":El,"./lang/ta.json":Tl,"./lang/tr.json":Il,"./lang/uk.json":Pl,"./lang/ur.json":Ol,"./lang/uz.json":xl,"./lang/zh-cn.json":Rl,"./lang/zh-tw.json":jl};function Dl(){let e={};for(const t in Pt){const n=t.split("/").pop().split(".").shift();e[n]=Pt[t].default}return e}const Ct=Dl();for(const e in Ct)In(e,Ct[e]);function Ml(){xa({fallbackLocale:"en",initialLocale:La()})}function Ot(e,t,n){const r=e.slice();return r[8]=t[n].component,r[17]=t[n].id,r[2]=t[n].props,r[18]=t[n].children,r[9]=t[n].has_modes,r}function kt(e){let t=[],n=new Map,r,i,o=e[1];const s=a=>a[17];for(let a=0;a{r=null}),ae())},i(i){n||(x(r),n=!0)},o(i){D(r),n=!1},d(i){r&&r.d(i),i&&S(t)}}}function Gl(e){let t,n,r,i;const o=[{elem_id:"elem_id"in e[2]&&e[2].elem_id||`component-${e[4]}`},{elem_classes:"elem_classes"in e[2]&&e[2].elem_classes||[]},{target:e[6]},e[2],{theme:e[7]},{root:e[3]}];function s(l){e[15](l)}var a=e[8];function f(l){let u={$$slots:{default:[Fl]},$$scope:{ctx:l}};for(let _=0;_mt(t,"value",s)),t.$on("prop_change",e[10])),{c(){t&&V(t.$$.fragment),r=ne()},m(l,u){t&&z(t,l,u),I(l,r,u),i=!0},p(l,[u]){const _=u&220?fo(o,[u&20&&{elem_id:"elem_id"in l[2]&&l[2].elem_id||`component-${l[4]}`},u&4&&{elem_classes:"elem_classes"in l[2]&&l[2].elem_classes||[]},u&64&&{target:l[6]},u&4&&co(l[2]),u&128&&{theme:l[7]},u&8&&{root:l[3]}]):{};if(u&2097387&&(_.$$scope={dirty:u,ctx:l}),!n&&u&17&&(n=!0,_.value=l[0][l[4]].props.value,_o(()=>n=!1)),a!==(a=l[8])){if(t){oe();const c=t;D(c.$$.fragment,1,0,()=>{X(c,1)}),ae()}a?(t=new a(f(l)),l[14](t),we.push(()=>mt(t,"value",s)),t.$on("prop_change",l[10]),V(t.$$.fragment),x(t.$$.fragment,1),z(t,r.parentNode,r)):t=null}else a&&t.$set(_)},i(l){i||(t&&x(t.$$.fragment,l),i=!0)},o(l){t&&D(t.$$.fragment,l),i=!1},d(l){e[14](null),l&&S(r),t&&X(t,l)}}}function Ul(e,t,n){let{root:r}=t,{component:i}=t,{instance_map:o}=t,{id:s}=t,{props:a}=t,{children:f}=t,{dynamic_ids:l}=t,{has_modes:u}=t,{parent:_=null}=t,{target:c}=t,{theme:g}=t;const p=it();u&&(a.interactive===!1?a.mode="static":a.interactive===!0||l.has(s)?a.mode="dynamic":a.mode="static"),on(()=>(p("mount",s),()=>p("destroy",s))),po("BLOCK_KEY",_);function m(b){for(const A in b.detail)n(0,o[s].props[A]=b.detail[A],o)}function d(b){je.call(this,e,b)}function C(b){je.call(this,e,b)}function T(b){we[b?"unshift":"push"](()=>{o[s].instance=b,n(0,o)})}function y(b){e.$$.not_equal(o[s].props.value,b)&&(o[s].props.value=b,n(0,o))}return e.$$set=b=>{"root"in b&&n(3,r=b.root),"component"in b&&n(8,i=b.component),"instance_map"in b&&n(0,o=b.instance_map),"id"in b&&n(4,s=b.id),"props"in b&&n(2,a=b.props),"children"in b&&n(1,f=b.children),"dynamic_ids"in b&&n(5,l=b.dynamic_ids),"has_modes"in b&&n(9,u=b.has_modes),"parent"in b&&n(11,_=b.parent),"target"in b&&n(6,c=b.target),"theme"in b&&n(7,g=b.theme)},e.$$.update=()=>{e.$$.dirty&3&&n(1,f=f&&f.filter(b=>o[b.id].type!=="statustracker")),e.$$.dirty&19&&o[s].type==="form"&&(f?.every(b=>!b.props.visible)?n(2,a.visible=!1,a):n(2,a.visible=!0,a))},[o,f,a,r,s,l,c,g,i,u,m,_,d,C,T,y]}class Ki extends K{constructor(t){super(),$(this,t,Ul,Gl,ee,{root:3,component:8,instance_map:0,id:4,props:2,children:1,dynamic_ids:5,has_modes:9,parent:11,target:6,theme:7})}}function Vl(e){let t,n,r,i;return{c(){t=xe("svg"),n=xe("g"),r=xe("path"),i=xe("path"),E(r,"d","M3.789,0.09C3.903,-0.024 4.088,-0.024 4.202,0.09L4.817,0.705C4.931,0.819 4.931,1.004 4.817,1.118L1.118,4.817C1.004,4.931 0.819,4.931 0.705,4.817L0.09,4.202C-0.024,4.088 -0.024,3.903 0.09,3.789L3.789,0.09Z"),E(i,"d","M4.825,3.797C4.934,3.907 4.934,4.084 4.825,4.193L4.193,4.825C4.084,4.934 3.907,4.934 3.797,4.825L0.082,1.11C-0.027,1.001 -0.027,0.823 0.082,0.714L0.714,0.082C0.823,-0.027 1.001,-0.027 1.11,0.082L4.825,3.797Z"),E(t,"width","100%"),E(t,"height","100%"),E(t,"viewBox","0 0 5 5"),E(t,"version","1.1"),E(t,"xmlns","http://www.w3.org/2000/svg"),E(t,"xmlns:xlink","http://www.w3.org/1999/xlink"),E(t,"xml:space","preserve"),ie(t,"fill","currentColor"),ie(t,"fill-rule","evenodd"),ie(t,"clip-rule","evenodd"),ie(t,"stroke-linejoin","round"),ie(t,"stroke-miterlimit","2")},m(o,s){I(o,t,s),h(t,n),h(n,r),h(n,i)},p:re,i:re,o:re,d(o){o&&S(t)}}}class $i extends K{constructor(t){super(),$(this,t,null,Vl,ee,{})}}function zl(e){let t,n,r,i,o,s,a,f,l,u,_,c,g,p,m;return c=new $i({}),{c(){t=w("div"),n=w("h1"),n.textContent="API Docs",r=L(),i=w("p"),o=P(`No named API Routes found for
+ `),s=w("code"),a=P(e[0]),f=L(),l=w("p"),l.innerHTML=`To expose an API endpoint of your app in this page, set the api_name
+ parameter of the event listener.
+
+ For more information, visit the
+ API Page guide
+ . To hide the API documentation button and this page, set
+ show_api=False
+ in the
+ Blocks.launch()
+ method.`,u=L(),_=w("button"),V(c.$$.fragment),E(s,"class","svelte-1i3r921"),E(i,"class","attention svelte-1i3r921"),E(t,"class","wrap prose svelte-1i3r921"),E(_,"class","svelte-1i3r921")},m(d,C){I(d,t,C),h(t,n),h(t,r),h(t,i),h(i,o),h(i,s),h(s,a),h(t,f),h(t,l),I(d,u,C),I(d,_,C),z(c,_,null),g=!0,p||(m=_e(_,"click",e[2]),p=!0)},p(d,[C]){(!g||C&1)&&B(a,d[0])},i(d){g||(x(c.$$.fragment,d),g=!0)},o(d){D(c.$$.fragment,d),g=!1},d(d){d&&S(t),d&&S(u),d&&S(_),X(c),p=!1,m()}}}function Xl(e,t,n){const r=it();let{root:i}=t;const o=()=>r("close");return e.$$set=s=>{"root"in s&&n(0,i=s.root)},[i,r,o]}class Bl extends K{constructor(t){super(),$(this,t,Xl,zl,ee,{root:0})}}function ve(e,t,n=null){return t===void 0?n==="py"?"None":null:t==="string"?n===null?e:'"'+e+'"':t==="number"?n===null?parseFloat(e):e:t==="boolean"?n==="py"?e==="true"?"True":"False":n==="js"?e:e==="true":n===null?e===""?null:JSON.parse(e):typeof e=="string"?e===""?n==="py"?"None":"null":e:JSON.stringify(e)}var ql="./assets/api-logo.5346f193.svg";function Lt(e){let t,n,r;return{c(){t=w("div"),n=P(e[1]),r=P(" API endpoints:")},m(i,o){I(i,t,o),h(t,n),h(t,r)},p(i,o){o&2&&B(n,i[1])},d(i){i&&S(t)}}}function Hl(e){let t,n,r,i,o,s,a,f,l,u,_,c,g,p=e[1]>1&&Lt(e);return u=new $i({}),{c(){t=w("h2"),n=w("img"),i=P(`
+ API documentation for\xA0
+ `),o=w("span"),s=P(e[0]),a=L(),p&&p.c(),f=L(),l=w("button"),V(u.$$.fragment),Pe(n.src,r=ql)||E(n,"src",r),E(n,"alt",""),E(n,"class","svelte-155na5k"),E(o,"class","url svelte-155na5k"),E(t,"class","svelte-155na5k"),E(l,"class","svelte-155na5k")},m(m,d){I(m,t,d),h(t,n),h(t,i),h(t,o),h(o,s),I(m,a,d),p&&p.m(m,d),I(m,f,d),I(m,l,d),z(u,l,null),_=!0,c||(g=_e(l,"click",e[3]),c=!0)},p(m,[d]){(!_||d&1)&&B(s,m[0]),m[1]>1?p?p.p(m,d):(p=Lt(m),p.c(),p.m(f.parentNode,f)):p&&(p.d(1),p=null)},i(m){_||(x(u.$$.fragment,m),_=!0)},o(m){D(u.$$.fragment,m),_=!1},d(m){m&&S(t),m&&S(a),p&&p.d(m),m&&S(f),m&&S(l),X(u),c=!1,g()}}}function Wl(e,t,n){let{root:r}=t,{active_api_count:i}=t;const o=it(),s=()=>o("close");return e.$$set=a=>{"root"in a&&n(0,r=a.root),"active_api_count"in a&&n(1,i=a.active_api_count)},[r,i,o,s]}class Zl extends K{constructor(t){super(),$(this,t,Wl,Hl,ee,{root:0,active_api_count:1})}}function Jl(e){let t;return{c(){t=P("copy")},m(n,r){I(n,t,r)},d(n){n&&S(t)}}}function Yl(e){let t;return{c(){t=P("copied!")},m(n,r){I(n,t,r)},d(n){n&&S(t)}}}function Ql(e){let t;function n(o,s){return o[3]===o[2]?Yl:Jl}let r=n(e),i=r(e);return{c(){i.c(),t=ne()},m(o,s){i.m(o,s),I(o,t,s)},p(o,s){r!==(r=n(o))&&(i.d(1),i=r(o),i&&(i.c(),i.m(t.parentNode,t)))},d(o){i.d(o),o&&S(t)}}}function Kl(e){let t,n,r,i,o,s,a,f,l,u,_,c,g;return c=new ot({props:{size:"sm",variant:"secondary",$$slots:{default:[Ql]},$$scope:{ctx:e}}}),c.$on("click",e[4]),{c(){t=w("h3"),n=w("span"),n.textContent="POST",r=P(`
+ /run/`),i=P(e[0]),o=L(),s=w("div"),a=w("div"),f=P(e[1]),l=P("run/"),u=P(e[0]),_=L(),V(c.$$.fragment),E(n,"class","post svelte-vs3f38"),E(t,"class","svelte-vs3f38"),E(a,"class","url svelte-vs3f38"),E(s,"class","endpoint prose svelte-vs3f38")},m(p,m){I(p,t,m),h(t,n),h(t,r),h(t,i),I(p,o,m),I(p,s,m),h(s,a),h(a,f),h(a,l),h(a,u),h(a,_),z(c,a,null),g=!0},p(p,[m]){(!g||m&1)&&B(i,p[0]),(!g||m&2)&&B(f,p[1]),(!g||m&1)&&B(u,p[0]);const d={};m&44&&(d.$$scope={dirty:m,ctx:p}),c.$set(d)},i(p){g||(x(c.$$.fragment,p),g=!0)},o(p){D(c.$$.fragment,p),g=!1},d(p){p&&S(t),p&&S(o),p&&S(s),X(c)}}}function $l(e,t,n){let{api_name:r}=t,{root:i}=t,{dependency_index:o}=t,s=-1;function a(){navigator.clipboard.writeText(i+"run/"+r),n(3,s=o),setTimeout(()=>{n(3,s=-1)},1500)}return e.$$set=f=>{"api_name"in f&&n(0,r=f.api_name),"root"in f&&n(1,i=f.root),"dependency_index"in f&&n(2,o=f.dependency_index)},[r,i,o,s,a]}class es extends K{constructor(t){super(),$(this,t,$l,Kl,ee,{api_name:0,root:1,dependency_index:2})}}function Rt(e,t,n){const r=e.slice();return r[7]=t[n],r[8]=t,r[9]=n,r}function Nt(e){let t;return{c(){t=w("span"),t.textContent="ERROR",E(t,"class","error svelte-j5il63")},m(n,r){I(n,t,r)},d(n){n&&S(t)}}}function jt(e){let t,n,r,i,o,s,a=(e[4][e[7]].documentation?.type?.input_payload||e[4][e[7]].documentation?.type?.payload)+"",f,l,u,_,c,g=(e[4][e[7]].documentation?.description?.input_payload||e[4][e[7]].documentation?.description?.payload)+"",p,m,d=Dt(e[4][e[7]].props.label)+"",C,T,y,b=e[4][e[7]].props.name+"",A,O,J,ke;function q(){e[6].call(n,e[9])}let W=e[2][e[3]][e[9]]&&Nt();return{c(){t=w("div"),n=w("input"),r=L(),W&&W.c(),i=L(),o=w("span"),s=P(": "),f=P(a),l=P(","),u=L(),_=w("span"),c=P("// represents "),p=P(g),m=P(` of
+ `),C=P(d),T=L(),y=w("span"),A=P(b),O=P(`
+ component`),E(n,"class"," svelte-j5il63"),E(n,"type","text"),E(o,"class","type svelte-j5il63"),E(y,"class","name svelte-j5il63"),E(_,"class","desc svelte-j5il63"),E(t,"class","second-level svelte-j5il63")},m(le,te){I(le,t,te),h(t,n),De(n,e[0][e[3]][e[9]]),h(t,r),W&&W.m(t,null),h(t,i),h(t,o),h(o,s),h(o,f),h(o,l),h(t,u),h(t,_),h(_,c),h(_,p),h(_,m),h(_,C),h(_,T),h(_,y),h(y,A),h(_,O),J||(ke=_e(n,"input",q),J=!0)},p(le,te){e=le,te&9&&n.value!==e[0][e[3]][e[9]]&&De(n,e[0][e[3]][e[9]]),e[2][e[3]][e[9]]?W||(W=Nt(),W.c(),W.m(t,i)):W&&(W.d(1),W=null),te&18&&a!==(a=(e[4][e[7]].documentation?.type?.input_payload||e[4][e[7]].documentation?.type?.payload)+"")&&B(f,a),te&18&&g!==(g=(e[4][e[7]].documentation?.description?.input_payload||e[4][e[7]].documentation?.description?.payload)+"")&&B(p,g),te&18&&d!==(d=Dt(e[4][e[7]].props.label)+"")&&B(C,d),te&18&&b!==(b=e[4][e[7]].props.name+"")&&B(A,b)},d(le){le&&S(t),W&&W.d(),J=!1,ke()}}}function ts(e){let t,n,r,i,o,s,a,f=e[1].inputs,l=[];for(let u=0;u
+ Input Payload`,n=L(),V(r.$$.fragment),i=L(),o=w("span"),s=L(),V(a.$$.fragment),E(t,"class","svelte-j5il63"),E(o,"class","space svelte-j5il63")},m(l,u){I(l,t,u),I(l,n,u),z(r,l,u),I(l,i,u),I(l,o,u),I(l,s,u),z(a,l,u),f=!0},p(l,[u]){e=l;const _={};u&1055&&(_.$$scope={dirty:u,ctx:e}),r.$set(_);const c={};u&1024&&(c.$$scope={dirty:u,ctx:e}),a.$set(c)},i(l){f||(x(r.$$.fragment,l),x(a.$$.fragment,l),f=!0)},o(l){D(r.$$.fragment,l),D(a.$$.fragment,l),f=!1},d(l){l&&S(t),l&&S(n),X(r,l),l&&S(i),l&&S(o),l&&S(s),X(a,l)}}}function Dt(e){return e?"'"+e+"'":"the"}function is(e,t,n){let{dependency:r}=t,{dependency_failures:i}=t,{dependency_index:o}=t,{instance_map:s}=t,{run:a}=t,{dependency_inputs:f}=t;function l(u){f[o][u]=this.value,n(0,f)}return e.$$set=u=>{"dependency"in u&&n(1,r=u.dependency),"dependency_failures"in u&&n(2,i=u.dependency_failures),"dependency_index"in u&&n(3,o=u.dependency_index),"instance_map"in u&&n(4,s=u.instance_map),"run"in u&&n(5,a=u.run),"dependency_inputs"in u&&n(0,f=u.dependency_inputs)},[f,r,i,o,s,a,l]}class os extends K{constructor(t){super(),$(this,t,is,rs,ee,{dependency:1,dependency_failures:2,dependency_index:3,instance_map:4,run:5,dependency_inputs:0})}}function Mt(e,t,n){const r=e.slice();return r[8]=t[n],r[9]=t,r[10]=n,r}function Ft(e){let t,n,r,i;function o(){e[7].call(t,e[10])}return{c(){t=w("input"),n=P(`
+ :`),t.disabled=!0,E(t,"type","text"),E(t,"class","svelte-fxtbel")},m(s,a){I(s,t,a),De(t,e[0][e[2]][e[10]]),I(s,n,a),r||(i=_e(t,"input",o),r=!0)},p(s,a){e=s,a&5&&t.value!==e[0][e[2]][e[10]]&&De(t,e[0][e[2]][e[10]])},d(s){s&&S(t),s&&S(n),r=!1,i()}}}function Gt(e){let t,n,r,i=(e[3][e[8]].documentation?.type?.response_object||e[3][e[8]].documentation?.type?.payload)+"",o,s,a,f,l,u=e[5](e[3][e[8]].documentation?.description?.response_object||e[3][e[8]].documentation?.description?.payload,e[0][e[2]][e[10]])+"",_,c,g=Vt(e[3][e[8]].props.label)+"",p,m,d,C=e[3][e[8]].props.name+"",T,y,b=e[0][e[2]][e[10]]!==void 0&&Ft(e);return{c(){t=w("div"),b&&b.c(),n=L(),r=w("span"),o=P(i),s=P(","),a=L(),f=w("span"),l=P("// represents "),_=P(u),c=P(` of
+ `),p=P(g),m=L(),d=w("span"),T=P(C),y=P(`
+ component`),E(r,"class","type svelte-fxtbel"),E(d,"class","name capitalize svelte-fxtbel"),E(f,"class","desc svelte-fxtbel"),E(t,"class","second-level svelte-fxtbel")},m(A,O){I(A,t,O),b&&b.m(t,null),h(t,n),h(t,r),h(r,o),h(r,s),h(t,a),h(t,f),h(f,l),h(f,_),h(f,c),h(f,p),h(f,m),h(f,d),h(d,T),h(f,y)},p(A,O){A[0][A[2]][A[10]]!==void 0?b?b.p(A,O):(b=Ft(A),b.c(),b.m(t,n)):b&&(b.d(1),b=null),O&10&&i!==(i=(A[3][A[8]].documentation?.type?.response_object||A[3][A[8]].documentation?.type?.payload)+"")&&B(o,i),O&15&&u!==(u=A[5](A[3][A[8]].documentation?.description?.response_object||A[3][A[8]].documentation?.description?.payload,A[0][A[2]][A[10]])+"")&&B(_,u),O&10&&g!==(g=Vt(A[3][A[8]].props.label)+"")&&B(p,g),O&10&&C!==(C=A[3][A[8]].props.name+"")&&B(T,C)},d(A){A&&S(t),b&&b.d()}}}function Ut(e){let t,n,r;return n=new bo({props:{margin:!1}}),{c(){t=w("div"),V(n.$$.fragment),E(t,"class","load-wrap svelte-fxtbel")},m(i,o){I(i,t,o),z(n,t,null),r=!0},i(i){r||(x(n.$$.fragment,i),r=!0)},o(i){D(n.$$.fragment,i),r=!1},d(i){i&&S(t),X(n)}}}function as(e){let t,n,r,i,o,s,a,f,l,u,_,c,g=e[1].outputs,p=[];for(let d=0;d// number of seconds to run function call`,u=P(`
+ }`),_=L(),m&&m.c(),E(i,"class","first-level svelte-fxtbel"),E(a,"class","first-level svelte-fxtbel"),E(l,"class","first-level svelte-fxtbel"),E(n,"class","svelte-fxtbel"),ht(n,"hide",e[4]),E(t,"class","response-wrap svelte-fxtbel")},m(d,C){I(d,t,C),h(t,n),h(n,r),h(n,i),h(n,o);for(let T=0;T{m=null}),ae())},i(d){c||(x(m),c=!0)},o(d){D(m),c=!1},d(d){d&&S(t),ye(p,d),m&&m.d()}}}function ls(e){let t,n,r,i;return r=new at({props:{$$slots:{default:[as]},$$scope:{ctx:e}}}),{c(){t=w("h4"),t.innerHTML=`
+ Response Object`,n=L(),V(r.$$.fragment),E(t,"class","svelte-fxtbel")},m(o,s){I(o,t,s),I(o,n,s),z(r,o,s),i=!0},p(o,[s]){const a={};s&2079&&(a.$$scope={dirty:s,ctx:o}),r.$set(a)},i(o){i||(x(r.$$.fragment,o),i=!0)},o(o){D(r.$$.fragment,o),i=!1},d(o){o&&S(t),o&&S(n),X(r,o)}}}const Vt=e=>e?"'"+e+"'":"the";function ss(e,t,n){let{dependency:r}=t,{dependency_index:i}=t,{instance_map:o}=t,{dependency_outputs:s}=t,{is_running:a}=t,{root:f}=t;const l=(_,c)=>_?.replace("{ROOT}",f)?.replace("{name}",c?JSON.parse(`${c}`)?.name:"{name}");function u(_){s[i][_]=this.value,n(0,s)}return e.$$set=_=>{"dependency"in _&&n(1,r=_.dependency),"dependency_index"in _&&n(2,i=_.dependency_index),"instance_map"in _&&n(3,o=_.instance_map),"dependency_outputs"in _&&n(0,s=_.dependency_outputs),"is_running"in _&&n(4,a=_.is_running),"root"in _&&n(6,f=_.root)},[s,r,i,o,a,l,f,u]}class us extends K{constructor(t){super(),$(this,t,ss,ls,ee,{dependency:1,dependency_index:2,instance_map:3,dependency_outputs:0,is_running:4,root:6})}}function fs(e){let t;return{c(){t=P(e[0])},m(n,r){I(n,t,r)},p(n,r){r&1&&B(t,n[0])},d(n){n&&S(t)}}}function cs(e){let t,n;return t=new ot({props:{size:"sm",$$slots:{default:[fs]},$$scope:{ctx:e}}}),t.$on("click",e[1]),{c(){V(t.$$.fragment)},m(r,i){z(t,r,i),n=!0},p(r,[i]){const o={};i&9&&(o.$$scope={dirty:i,ctx:r}),t.$set(o)},i(r){n||(x(t.$$.fragment,r),n=!0)},o(r){D(t.$$.fragment,r),n=!1},d(r){X(t,r)}}}function _s(e,t,n){let{code:r}=t,i="copy";function o(){navigator.clipboard.writeText(r),n(0,i="copied!"),setTimeout(()=>{n(0,i="copy")},1500)}return e.$$set=s=>{"code"in s&&n(2,r=s.code)},[i,o,r]}class eo extends K{constructor(t){super(),$(this,t,_s,cs,ee,{code:2})}}var ps="./assets/python.20e39c92.svg",ds="./assets/javascript.850cf94b.svg";function zt(e,t,n){const r=e.slice();return r[13]=t[n],r[15]=n,r}function Xt(e,t,n){const r=e.slice();return r[13]=t[n],r[15]=n,r}function Bt(e,t,n){const r=e.slice();return r[17]=t[n][0],r[18]=t[n][1],r}function qt(e){let t,n,r,i,o=e[17]+"",s,a,f,l,u;function _(){return e[10](e[17])}return{c(){t=w("li"),n=w("img"),i=L(),s=P(o),a=L(),Pe(n.src,r=e[18])||E(n,"src",r),E(n,"alt",""),E(n,"class","svelte-dks0o4"),E(t,"class",f="snippet "+(e[0]===e[17]?"current-lang":"inactive-lang")+" svelte-dks0o4")},m(c,g){I(c,t,g),h(t,n),h(t,i),h(t,s),h(t,a),l||(u=_e(t,"click",_),l=!0)},p(c,g){e=c,g&1&&f!==(f="snippet "+(e[0]===e[17]?"current-lang":"inactive-lang")+" svelte-dks0o4")&&E(t,"class",f)},d(c){c&&S(t),l=!1,u()}}}function ms(e){let t;return{c(){t=w("pre"),t.textContent="Hello World",E(t,"class","client svelte-dks0o4")},m(n,r){I(n,t,r)},p:re,i:re,o:re,d(n){n&&S(t)}}}function hs(e){let t,n,r,i,o,s,a,f,l=e[5]+"run/"+e[1].api_name,u,_,c,g,p,m,d;n=new eo({props:{code:e[8]?.innerText}});let C=e[6][e[3]],T=[];for(let y=0;y{s[u]=null}),ae()),~n?(r=s[n],r?r.p(f,l):(r=s[n]=o[n](f),r.c()),x(r,1),r.m(t,null)):r=null)},i(f){i||(x(r),i=!0)},o(f){D(r),i=!1},d(f){f&&S(t),~n&&s[n].d()}}}function bs(e){let t,n,r,i,o,s,a=e[9],f=[];for(let l=0;l
+ Code snippets`,n=L(),r=w("div");for(let l=0;ln(0,l=d);function p(d){we[d?"unshift":"push"](()=>{_=d,n(7,_)})}function m(d){we[d?"unshift":"push"](()=>{c=d,n(8,c)})}return e.$$set=d=>{"dependency"in d&&n(1,r=d.dependency),"dependencies"in d&&n(2,i=d.dependencies),"dependency_index"in d&&n(3,o=d.dependency_index),"instance_map"in d&&n(4,s=d.instance_map),"root"in d&&n(5,a=d.root),"dependency_inputs"in d&&n(6,f=d.dependency_inputs),"current_language"in d&&n(0,l=d.current_language)},[l,r,i,o,s,a,f,_,c,u,g,p,m]}class Es extends K{constructor(t){super(),$(this,t,ys,bs,ee,{dependency:1,dependencies:2,dependency_index:3,instance_map:4,root:5,dependency_inputs:6,current_language:0})}}function Zt(e,t,n){const r=e.slice();return r[11]=t[n],r[13]=n,r}function Ss(e){let t,n;return t=new Bl({props:{root:e[0]}}),t.$on("close",e[10]),{c(){V(t.$$.fragment)},m(r,i){z(t,r,i),n=!0},p(r,i){const o={};i&1&&(o.root=r[0]),t.$set(o)},i(r){n||(x(t.$$.fragment,r),n=!0)},o(r){D(t.$$.fragment,r),n=!1},d(r){X(t,r)}}}function Ts(e){let t,n,r,i,o;n=new Zl({props:{root:e[0],active_api_count:e[7]}}),n.$on("close",e[9]);let s=e[2],a=[];for(let l=0;lD(a[l],1,1,()=>{a[l]=null});return{c(){t=w("div"),V(n.$$.fragment),r=L(),i=w("div");for(let l=0;l{r=null}),ae())},i(i){n||(x(r),n=!0)},o(i){D(r),n=!1},d(i){r&&r.d(i),i&&S(t)}}}function ws(e){let t,n,r,i;const o=[Ts,Ss],s=[];function a(f,l){return f[7]?0:1}return t=a(e),n=s[t]=o[t](e),{c(){n.c(),r=ne()},m(f,l){s[t].m(f,l),I(f,r,l),i=!0},p(f,[l]){n.p(f,l)},i(f){i||(x(n),i=!0)},o(f){D(n),i=!1},d(f){s[t].d(f),f&&S(r)}}}let Is="python";function As(e,t,n){let{instance_map:r}=t,{dependencies:i}=t,{root:o}=t;o===""&&(o=location.protocol+"//"+location.host+location.pathname),o.endsWith("/")||(o+="/");let s=!1,a=i.map(p=>p.inputs.map(m=>{let d=r[m].documentation?.example_data;return d===void 0?d="":typeof d=="object"&&(d=JSON.stringify(d)),d})),f=i.map(p=>new Array(p.outputs.length)),l=i.map(p=>new Array(p.inputs.length).fill(!1)),u=i.filter(p=>p.api_name).length;const _=async p=>{n(3,s=!0);let m=i[p],d=0;try{var C=a[p].map((b,A)=>{d=A;let O=r[m.inputs[A]];return b=ve(b,O.documentation?.type?.input_payload||O.documentation?.type?.payload),n(5,l[p][d]=!1,l),b})}catch{n(5,l[p][d]=!0,l),n(3,s=!1);return}let[T,y]=await yo(`${o}/run/${m.api_name}`,{data:C});n(3,s=!1),y==200?n(4,f[p]=T.data.map((b,A)=>{let O=r[m.outputs[A]];return ve(b,O.documentation?.type?.response_object||O.documentation?.type?.payload,"js")}),f):n(5,l[p]=new Array(l[p].length).fill(!0),l)};on(()=>(document.body.style.overflow="hidden",()=>{document.body.style.overflow="auto"}));function c(p){je.call(this,e,p)}function g(p){je.call(this,e,p)}return e.$$set=p=>{"instance_map"in p&&n(1,r=p.instance_map),"dependencies"in p&&n(2,i=p.dependencies),"root"in p&&n(0,o=p.root)},[o,r,i,s,f,l,a,u,_,c,g]}class Ps extends K{constructor(t){super(),$(this,t,As,ws,ee,{instance_map:1,dependencies:2,root:0})}}var Cs="./assets/logo.0a070fcf.svg",Os="./static/img/api-logo.svg";function Qt(e){return document.title=e[3],{c:re,m:re,d:re}}function Kt(e){let t,n;return{c(){t=w("script"),t.async=!0,t.defer=!0,Pe(t.src,n="https://www.googletagmanager.com/gtag/js?id=UA-156449732-1")||E(t,"src",n)},m(r,i){I(r,t,i)},d(r){r&&S(t)}}}function $t(e){let t,n;return t=new Ki({props:{has_modes:e[11].has_modes,component:e[11].component,id:e[11].id,props:e[11].props,children:e[11].children,dynamic_ids:e[16],instance_map:e[13],root:e[1],target:e[5],theme:e[10]}}),t.$on("mount",e[17]),t.$on("destroy",e[24]),{c(){V(t.$$.fragment)},m(r,i){z(t,r,i),n=!0},p(r,i){const o={};i[0]&2048&&(o.has_modes=r[11].has_modes),i[0]&2048&&(o.component=r[11].component),i[0]&2048&&(o.id=r[11].id),i[0]&2048&&(o.props=r[11].props),i[0]&2048&&(o.children=r[11].children),i[0]&8192&&(o.instance_map=r[13]),i[0]&2&&(o.root=r[1]),i[0]&32&&(o.target=r[5]),i[0]&1024&&(o.theme=r[10]),t.$set(o)},i(r){n||(x(t.$$.fragment,r),n=!0)},o(r){D(t.$$.fragment,r),n=!1},d(r){X(t,r)}}}function en(e){let t,n,r,i,o,s,a=e[6]&&tn(e);return{c(){t=w("footer"),a&&a.c(),n=L(),r=w("a"),i=P(`Built with Gradio
+ `),o=w("img"),Pe(o.src,s=Cs)||E(o,"src",s),E(o,"alt","logo"),E(o,"class","svelte-1lyswbr"),E(r,"href","https://gradio.app"),E(r,"class","built-with svelte-1lyswbr"),E(r,"target","_blank"),E(r,"rel","noreferrer"),E(t,"class","svelte-1lyswbr")},m(f,l){I(f,t,l),a&&a.m(t,null),h(t,n),h(t,r),h(r,i),h(r,o)},p(f,l){f[6]?a?a.p(f,l):(a=tn(f),a.c(),a.m(t,n)):a&&(a.d(1),a=null)},d(f){f&&S(t),a&&a.d()}}}function tn(e){let t,n,r,i,o,s,a,f;return{c(){t=w("button"),n=P("Use via API "),r=w("img"),o=L(),s=w("div"),s.textContent="\xB7",Pe(r.src,i=Os)||E(r,"src",i),E(r,"alt",""),E(r,"class","svelte-1lyswbr"),E(t,"class","show-api svelte-1lyswbr"),E(s,"class","svelte-1lyswbr")},m(l,u){I(l,t,u),h(t,n),h(t,r),I(l,o,u),I(l,s,u),a||(f=_e(t,"click",e[25]),a=!0)},p:re,d(l){l&&S(t),l&&S(o),l&&S(s),a=!1,f()}}}function nn(e){let t,n,r,i,o,s,a,f;return o=new Ps({props:{instance_map:e[13],dependencies:e[2],root:e[1]}}),o.$on("close",e[27]),{c(){t=w("div"),n=w("div"),r=L(),i=w("div"),V(o.$$.fragment),E(n,"class","backdrop svelte-1lyswbr"),E(i,"class","api-docs-wrap svelte-1lyswbr"),E(t,"class","api-docs svelte-1lyswbr")},m(l,u){I(l,t,u),h(t,n),h(t,r),h(t,i),z(o,i,null),s=!0,a||(f=_e(n,"click",e[26]),a=!0)},p(l,u){const _={};u[0]&8192&&(_.instance_map=l[13]),u[0]&4&&(_.dependencies=l[2]),u[0]&2&&(_.root=l[1]),o.$set(_)},i(l){s||(x(o.$$.fragment,l),s=!0)},o(l){D(o.$$.fragment,l),s=!1},d(l){l&&S(t),X(o),a=!1,f()}}}function ks(e){let t,n,r,i,o,s,a,f,l,u=e[8]&&Qt(e),_=e[4]&&Kt(),c=e[0]&&$t(e),g=e[7]&&en(e),p=e[12]&&e[0]&&nn(e);return{c(){u&&u.c(),t=ne(),_&&_.c(),n=ne(),r=L(),i=w("div"),o=w("div"),c&&c.c(),s=L(),g&&g.c(),a=L(),p&&p.c(),f=ne(),E(o,"class","contain"),ie(o,"flex-grow",e[9]?"1":"auto",!1),E(i,"class","wrap svelte-1lyswbr"),ie(i,"min-height",e[9]?"100%":"auto",!1)},m(m,d){u&&u.m(document.head,null),h(document.head,t),_&&_.m(document.head,null),h(document.head,n),I(m,r,d),I(m,i,d),h(i,o),c&&c.m(o,null),h(i,s),g&&g.m(i,null),I(m,a,d),p&&p.m(m,d),I(m,f,d),l=!0},p(m,d){m[8]?u||(u=Qt(m),u.c(),u.m(t.parentNode,t)):u&&(u.d(1),u=null),m[4]?_||(_=Kt(),_.c(),_.m(n.parentNode,n)):_&&(_.d(1),_=null),m[0]?c?(c.p(m,d),d[0]&1&&x(c,1)):(c=$t(m),c.c(),x(c,1),c.m(o,null)):c&&(oe(),D(c,1,1,()=>{c=null}),ae()),d[0]&512&&ie(o,"flex-grow",m[9]?"1":"auto",!1),m[7]?g?g.p(m,d):(g=en(m),g.c(),g.m(i,null)):g&&(g.d(1),g=null),d[0]&512&&ie(i,"min-height",m[9]?"100%":"auto",!1),m[12]&&m[0]?p?(p.p(m,d),d[0]&4097&&x(p,1)):(p=nn(m),p.c(),x(p,1),p.m(f.parentNode,f)):p&&(oe(),D(p,1,1,()=>{p=null}),ae())},i(m){l||(x(c),x(p),l=!0)},o(m){D(c),D(p),l=!1},d(m){u&&u.d(m),S(t),_&&_.d(m),S(n),m&&S(r),m&&S(i),c&&c.d(),g&&g.d(),m&&S(a),p&&p.d(m),m&&S(f)}}}function rn(e,t,n){let r=0;for(;;){const i=n[r];if(i===void 0)break;let o=0;for(;;){const s=i[t][o];if(s===void 0)break;if(s===e)return!0;o++}r++}return!1}function xs(e){return Array.isArray(e)&&e.length===0||e===""||e===0||!e}function Ls(e,t,n){let r;Ml();let{root:i}=t,{components:o}=t,{layout:s}=t,{dependencies:a}=t,{title:f="Gradio"}=t,{analytics_enabled:l=!1}=t,{target:u}=t,{autoscroll:_}=t,{show_api:c=!0}=t,{show_footer:g=!0}=t,{control_page_title:p=!1}=t,{app_mode:m}=t,{theme:d}=t,{app:C}=t,T=Eo();So(e,T,v=>n(23,r=v));let y={id:s.id,type:"column",props:{},has_modes:!1,instance:{},component:{}};o.push(y);const b=Object.getPrototypeOf(async function(){}).constructor;a.forEach(v=>{if(v.js){const k=v.backend_fn?v.inputs.length===1:v.outputs.length===1;try{v.frontend_fn=new b("__fn_args",`let result = await (${v.js})(...__fn_args);
+ return ${k} ? [result] : result;`)}catch(R){console.error("Could not parse custom js method."),console.error(R)}}});let O=new URLSearchParams(window.location.search).get("view")==="api";const J=v=>{n(12,O=v);let k=new URLSearchParams(window.location.search);v?k.set("view","api"):k.delete("view"),history.replaceState(null,"","?"+k.toString())},ke=o.reduce((v,{id:k,props:R})=>{const N=rn(k,"inputs",a),H=rn(k,"outputs",a);return!N&&!H&&xs(R?.value)&&v.add(k),N&&v.add(k),v},new Set);let q=o.reduce((v,k)=>(v[k.id]=k,v),{});function W(v){return new Promise(async(k,R)=>{try{const N=await qa[v]();k({name:v,component:N})}catch(N){console.error("failed to load: "+v),console.error(N),R(N)}})}const le=new Set,te=new Map;async function ft(v){let k=q[v.id];const R=(await te.get(k.type)).component;k.component=R.Component,R.document&&(k.documentation=R.document(k.props)),R.modes&&R.modes.length>1&&(k.has_modes=!0),v.children&&(k.children=v.children.map(N=>q[N.id]),await Promise.all(v.children.map(N=>ft(N))))}o.forEach(async v=>{const k=W(v.type);le.add(k),te.set(v.type,k)});let{ready:Ve=!1}=t;Promise.all(Array.from(le)).then(()=>{ft(s).then(async()=>{n(0,Ve=!0)}).catch(v=>{console.error(v)})});function ct(v,k){const R=a[k].outputs;v.forEach((N,H)=>{if(typeof N=="object"&&N!==null&&N.__type__==="update"){for(const[ue,Y]of Object.entries(N))ue!=="__type__"&&n(13,q[R[H]].props[ue]=Y,q);n(11,y)}else n(13,q[R[H]].props.value=N,q)})}C.on("data",({data:v,fn_index:k})=>{ct(v,k);let R=T.get_status_for_fn(k);(R==="complete"||R==="error")&&a.forEach((N,H)=>{N.trigger_after===k&&(!N.trigger_only_on_success||R==="complete")&&ze(H,null)})}),C.on("status",({fn_index:v,...k})=>{T.update({...k,fn_index:v})});function _t(v,k,R){v?.props||(v.props={}),v.props[k]=R,n(11,y)}let se=[];const ze=(v,k)=>{let R=a[v];const N=T.get_status_for_fn(v);if(N==="pending"||N==="generating")return;R.cancels&&R.cancels.forEach(Y=>{C.cancel("/predict",Y)});let H={fn_index:v,data:R.inputs.map(Y=>q[Y].props.value),event_data:R.collects_event_data?k:null};R.frontend_fn?R.frontend_fn(H.data.concat(R.outputs.map(Y=>q[Y].props.value))).then(Y=>{R.backend_fn?(H.data=Y,ue()):ct(Y,v)}):R.backend_fn&&ue();function ue(){C.predict("/predict",H)}};async function to(){await wo();for(var v=u.getElementsByTagName("a"),k=0;k{let{targets:H,trigger:ue,inputs:Y,outputs:lo}=R;const so=H.map(Q=>[Q,q[Q]]);H.length===0&&!se[N]?.includes(-1)&&ue==="load"&&lo.every(Q=>q?.[Q].instance)&&Y.every(Q=>q?.[Q].instance)&&(ze(N,null),se[N]=[-1]),so.filter(Q=>!!Q&&!!Q[1]).forEach(([Q,{instance:dt}])=>{se[N]?.includes(Q)||!dt||(dt?.$on(ue,uo=>{ze(N,uo.detail)}),se[N]||(se[N]=[]),se[N].push(Q))})})}function pt(v){se=se.map(k=>k.filter(R=>R!==v))}a.forEach((v,k)=>{T.register(k,v.inputs,v.outputs)});function no(v){for(const R in v){let N=v[R],H=a[N.fn_index];N.scroll_to_output=H.scroll_to_output,N.visible=H.show_progress,_t(q[R],"loading_status",N)}const k=T.get_inputs_to_update();for(const[R,N]of k)_t(q[R],"pending",N==="pending")}const ro=({detail:v})=>pt(v),io=()=>{J(!O)},oo=()=>{J(!1)},ao=()=>{J(!1)};return e.$$set=v=>{"root"in v&&n(1,i=v.root),"components"in v&&n(19,o=v.components),"layout"in v&&n(20,s=v.layout),"dependencies"in v&&n(2,a=v.dependencies),"title"in v&&n(3,f=v.title),"analytics_enabled"in v&&n(4,l=v.analytics_enabled),"target"in v&&n(5,u=v.target),"autoscroll"in v&&n(21,_=v.autoscroll),"show_api"in v&&n(6,c=v.show_api),"show_footer"in v&&n(7,g=v.show_footer),"control_page_title"in v&&n(8,p=v.control_page_title),"app_mode"in v&&n(9,m=v.app_mode),"theme"in v&&n(10,d=v.theme),"app"in v&&n(22,C=v.app),"ready"in v&&n(0,Ve=v.ready)},e.$$.update=()=>{e.$$.dirty[0]&2097152&&To.update(v=>({...v,autoscroll:_})),e.$$.dirty[0]&8388608&&no(r)},[Ve,i,a,f,l,u,c,g,p,m,d,y,O,q,T,J,ke,to,pt,o,s,_,C,r,ro,io,oo,ao]}class Rs extends K{constructor(t){super(),$(this,t,Ls,ks,ee,{root:1,components:19,layout:20,dependencies:2,title:3,analytics_enabled:4,target:5,autoscroll:21,show_api:6,show_footer:7,control_page_title:8,app_mode:9,theme:10,app:22,ready:0},null,[-1,-1])}}var Ms=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:Rs});export{Ms as B,Ds as X};
+//# sourceMappingURL=Blocks.721a001e.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Blocks.721a001e.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Blocks.721a001e.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..02da253ebfcc0fde610fe2e9670b37fcd1e39cd4
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Blocks.721a001e.js.map
@@ -0,0 +1 @@
+{"version":3,"mappings":"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AAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAA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","names":["e","t","n","getLocaleFromNavigator","api_logo"],"sources":["../../../../ui/node_modules/.pnpm/deepmerge@4.2.2/node_modules/deepmerge/dist/cjs.js","../../../../ui/node_modules/.pnpm/tslib@2.3.1/node_modules/tslib/tslib.es6.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.5/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.5/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.5/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../../../ui/node_modules/.pnpm/@formatjs+fast-memoize@1.2.1/node_modules/@formatjs/fast-memoize/lib/index.js","../../../../ui/node_modules/.pnpm/intl-messageformat@9.11.4/node_modules/intl-messageformat/lib/src/error.js","../../../../ui/node_modules/.pnpm/intl-messageformat@9.11.4/node_modules/intl-messageformat/lib/src/formatters.js","../../../../ui/node_modules/.pnpm/intl-messageformat@9.11.4/node_modules/intl-messageformat/lib/src/core.js","../../../../ui/node_modules/.pnpm/intl-messageformat@9.11.4/node_modules/intl-messageformat/lib/index.js","../../../../ui/node_modules/.pnpm/svelte-i18n@3.3.13_svelte@3.49.0/node_modules/svelte-i18n/dist/runtime.esm.js","../../../../ui/packages/app/src/components/directory.ts","../../../../ui/packages/app/src/i18n.ts","../../../../ui/packages/app/src/Render.svelte","../../../../ui/packages/app/src/api_docs/img/clear.svelte","../../../../ui/packages/app/src/api_docs/NoApi.svelte","../../../../ui/packages/app/src/api_docs/utils.ts","../../../../ui/packages/app/src/api_docs/img/api-logo.svg","../../../../ui/packages/app/src/api_docs/ApiBanner.svelte","../../../../ui/packages/app/src/api_docs/EndpointDetail.svelte","../../../../ui/packages/app/src/api_docs/InputPayload.svelte","../../../../ui/packages/app/src/api_docs/ResponseObject.svelte","../../../../ui/packages/app/src/api_docs/CopyButton.svelte","../../../../ui/packages/app/src/api_docs/img/python.svg","../../../../ui/packages/app/src/api_docs/img/javascript.svg","../../../../ui/packages/app/src/api_docs/CodeSnippets.svelte","../../../../ui/packages/app/src/api_docs/ApiDocs.svelte","../../../../ui/packages/app/src/images/logo.svg","../../../../../../../../../static/img/api-logo.svg","../../../../ui/packages/app/src/Blocks.svelte"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n","import{writable as e,derived as n}from\"svelte/store\";import t from\"deepmerge\";import o from\"intl-messageformat\";const r={},i=(e,n,t)=>t?(n in r||(r[n]={}),e in r[n]||(r[n][e]=t),t):t,l=(e,n)=>{if(null==n)return;if(n in r&&e in r[n])return r[n][e];const t=E(n);for(let o=0;o0){const n=t.slice(e,t.length).join(\".\");if(n in o){o=o[n];break}}o=o[t[e]]}else o=void 0;return o}(function(e){return a[e]||null}(e),n)}function m(e,...n){delete r[e],s.update((o=>(o[e]=t.all([o[e]||{},...n]),o)))}const f=n([s],(([e])=>Object.keys(e)));s.subscribe((e=>a=e));const d={};function g(e){return d[e]}function w(e){return null!=e&&E(e).some((e=>{var n;return null===(n=g(e))||void 0===n?void 0:n.size}))}function h(e,n){return Promise.all(n.map((n=>(function(e,n){d[e].delete(n),0===d[e].size&&delete d[e]}(e,n),n().then((e=>e.default||e)))))).then((n=>m(e,...n)))}const p={};function b(e){if(!w(e))return e in p?p[e]:Promise.resolve();const n=function(e){return E(e).map((e=>{const n=g(e);return[e,n?[...n]:[]]})).filter((([,e])=>e.length>0))}(e);return p[e]=Promise.all(n.map((([e,n])=>h(e,n)))).then((()=>{if(w(e))return b(e);delete p[e]})),p[e]}function y(e,n){g(e)||function(e){d[e]=new Set}(e);const t=g(e);g(e).has(n)||(u(e)||s.update((n=>(n[e]={},n))),t.add(n))}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function v(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);rt.slice(0,n+1).join(\"-\"))).reverse()}function E(e,n=j().fallbackLocale){const t=x(e);return n?[...new Set([...t,...x(n)])]:t}function D(){return null!=L?L:void 0}T.subscribe((e=>{L=null!=e?e:void 0,\"undefined\"!=typeof window&&null!=e&&document.documentElement.setAttribute(\"lang\",e)}));const M=Object.assign(Object.assign({},T),{set:e=>{if(e&&function(e){if(null==e)return;const n=E(e);for(let e=0;ek.set(!0)),n):k.set(!0),b(e).then((()=>{T.set(e)})).finally((()=>{clearTimeout(t),k.set(!1)}))}return T.set(e)}}),P=(e,n)=>{const t=e.split(\"&\").find((e=>0===e.indexOf(`${n}=`)));return t?t.split(\"=\").pop():null},S=(e,n)=>{const t=n.exec(e);return t&&t[1]||null},N=e=>\"undefined\"==typeof window?null:S(window.location.hostname,e),A=e=>\"undefined\"==typeof window?null:S(window.location.pathname,e),I=()=>\"undefined\"==typeof window?null:window.navigator.language||window.navigator.languages[0],F=e=>\"undefined\"==typeof window?null:P(window.location.search.substr(1),e),z=e=>\"undefined\"==typeof window?null:P(window.location.hash.substr(1),e),Z=e=>{const n=Object.create(null);return t=>{const o=JSON.stringify(t);return o in n?n[o]:n[o]=e(t)}},C=(e,n)=>{const{formats:t}=j();if(e in t&&n in t[e])return t[e][n];throw new Error(`[svelte-i18n] Unknown \"${n}\" ${e} format.`)},G=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format numbers');return t&&(o=C(\"number\",t)),new Intl.NumberFormat(n,o)})),J=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format dates');return t?o=C(\"date\",t):0===Object.keys(o).length&&(o=C(\"date\",\"short\")),new Intl.DateTimeFormat(n,o)})),U=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format time values');return t?o=C(\"time\",t):0===Object.keys(o).length&&(o=C(\"time\",\"short\")),new Intl.DateTimeFormat(n,o)})),_=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return G(Object.assign({locale:n},t))},q=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return J(Object.assign({locale:n},t))},B=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return U(Object.assign({locale:n},t))},H=Z(((e,n=D())=>new o(e,n,j().formats,{ignoreTag:j().ignoreTag}))),K=(e,n={})=>{let t=n;\"object\"==typeof e&&(t=e,e=t.id);const{values:o,locale:r=D(),default:i}=t;if(null==r)throw new Error(\"[svelte-i18n] Cannot format a message without first setting the initial locale.\");let a=l(e,r);if(a){if(\"string\"!=typeof a)return console.warn(`[svelte-i18n] Message with id \"${e}\" must be of type \"string\", found: \"${typeof a}\". Gettin its value through the \"$format\" method is deprecated; use the \"json\" method instead.`),a}else j().warnOnMissingMessages&&console.warn(`[svelte-i18n] The message \"${e}\" was not found in \"${E(r).join('\", \"')}\".${w(D())?\"\\n\\nNote: there are at least one loader still registered to this locale that wasn't executed.\":\"\"}`),a=null!=i?i:e;if(!o)return a;let s=a;try{s=H(a,r).format(o)}catch(n){console.warn(`[svelte-i18n] Message \"${e}\" has syntax error:`,n.message)}return s},Q=(e,n)=>B(n).format(e),R=(e,n)=>q(n).format(e),V=(e,n)=>_(n).format(e),W=(e,n=D())=>l(e,n),X=n([M,s],(()=>K)),Y=n([M],(()=>Q)),ee=n([M],(()=>R)),ne=n([M],(()=>V)),te=n([M,s],(()=>W));function oe(e){return e}function re(e){return b(e||D()||j().initialLocale)}export{X as _,m as addMessages,ee as date,oe as defineMessages,s as dictionary,X as format,q as getDateFormatter,z as getLocaleFromHash,N as getLocaleFromHostname,I as getLocaleFromNavigator,A as getLocaleFromPathname,F as getLocaleFromQueryString,H as getMessageFormatter,_ as getNumberFormatter,B as getTimeFormatter,$ as init,k as isLoading,te as json,M as locale,f as locales,ne as number,y as register,X as t,Y as time,re as waitLocale};\n","export const component_map = {\n\taccordion: () => import(\"./Accordion\"),\n\taudio: () => import(\"./Audio\"),\n\tbox: () => import(\"./Box\"),\n\tbutton: () => import(\"./Button\"),\n\tchatbot: () => import(\"./Chatbot\"),\n\tcheckbox: () => import(\"./Checkbox\"),\n\tcheckboxgroup: () => import(\"./CheckboxGroup\"),\n\tcode: () => import(\"./Code\"),\n\tcolorpicker: () => import(\"./ColorPicker\"),\n\tcolumn: () => import(\"./Column\"),\n\tdataframe: () => import(\"./DataFrame\"),\n\tdataset: () => import(\"./Dataset\"),\n\tdropdown: () => import(\"./Dropdown\"),\n\tfile: () => import(\"./File\"),\n\tform: () => import(\"./Form\"),\n\tgallery: () => import(\"./Gallery\"),\n\tgroup: () => import(\"./Group\"),\n\thighlightedtext: () => import(\"./HighlightedText\"),\n\thtml: () => import(\"./HTML\"),\n\timage: () => import(\"./Image\"),\n\tinterpretation: () => import(\"./Interpretation\"),\n\tjson: () => import(\"./Json\"),\n\tlabel: () => import(\"./Label\"),\n\tmarkdown: () => import(\"./Markdown\"),\n\tmodel3d: () => import(\"./Model3D\"),\n\tnumber: () => import(\"./Number\"),\n\tplot: () => import(\"./Plot\"),\n\tradio: () => import(\"./Radio\"),\n\trow: () => import(\"./Row\"),\n\tslider: () => import(\"./Slider\"),\n\tstate: () => import(\"./State\"),\n\tstatustracker: () => import(\"./StatusTracker\"),\n\ttabs: () => import(\"./Tabs\"),\n\ttabitem: () => import(\"./TabItem\"),\n\ttextbox: () => import(\"./Textbox\"),\n\ttimeseries: () => import(\"./TimeSeries\"),\n\tuploadbutton: () => import(\"./UploadButton\"),\n\tvideo: () => import(\"./Video\")\n};\n","/// \n\nimport { addMessages, init, getLocaleFromNavigator } from \"svelte-i18n\";\n\nconst langs = import.meta.globEager(\"./lang/*.json\");\n\nexport function process_langs() {\n\tlet _langs: Record<\n\t\tstring,\n\t\t{\n\t\t\t[key: string]: any;\n\t\t}\n\t> = {};\n\n\tfor (const lang in langs) {\n\t\tconst code = (lang.split(\"/\").pop() as string).split(\".\").shift() as string;\n\t\t_langs[code] = langs[lang].default;\n\t}\n\n\treturn _langs;\n}\n\nconst processed_langs = process_langs();\n\nfor (const lang in processed_langs) {\n\taddMessages(lang, processed_langs[lang]);\n}\n\nexport function setupi18n() {\n\tinit({\n\t\tfallbackLocale: \"en\",\n\t\tinitialLocale: getLocaleFromNavigator()\n\t});\n}\n","\n\n\n\t{#if children && children.length}\n\t\t{#each children as { component, id: each_id, props, children: _children, has_modes } (each_id)}\n\t\t\t\n\t\t{/each}\n\t{/if}\n\n","\n","\n\n
\n\t
API Docs
\n\t
\n\t\tNo named API Routes found for\n\t\t\n\t\t\t{root}\n\t\t\n\t
\n\t
\n\t\tTo expose an API endpoint of your app in this page, set the \n\t\t\tapi_name\n\t\t\n\t\tparameter of the event listener.\n\t\t \n\t\tFor more information, visit the\n\t\t\n\t\t\tAPI Page guide\n\t\t\n\t\t. To hide the API documentation button and this page, set\n\t\tshow_api=False\n\t\tin the\n\t\tBlocks.launch()\n\t\tmethod.\n\t
\n
\n\n\n\n\n","export function represent_value(\n\tvalue: string,\n\ttype: string | undefined,\n\tlang: \"js\" | \"py\" | null = null\n) {\n\tif (type === undefined) {\n\t\treturn lang === \"py\" ? \"None\" : null;\n\t}\n\tif (type === \"string\") {\n\t\treturn lang === null ? value : '\"' + value + '\"';\n\t} else if (type === \"number\") {\n\t\treturn lang === null ? parseFloat(value) : value;\n\t} else if (type === \"boolean\") {\n\t\tif (lang === \"py\") {\n\t\t\treturn value === \"true\" ? \"True\" : \"False\";\n\t\t} else if (lang === \"js\") {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn value === \"true\";\n\t\t}\n\t} else {\n\t\t// assume object type\n\t\tif (lang === null) {\n\t\t\treturn value === \"\" ? null : JSON.parse(value);\n\t\t} else if (typeof value === \"string\") {\n\t\t\tif (value === \"\") {\n\t\t\t\treturn lang === \"py\" ? \"None\" : \"null\";\n\t\t\t}\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn JSON.stringify(value);\n\t\t}\n\t}\n}\n","export default \"__VITE_ASSET__5346f193__\"","\n\n
\n\t\n\tAPI documentation for \n\t\n\t\t{root}\n\t\n
\n{#if active_api_count > 1}\n\t
\n\t\t{active_api_count} API endpoints:\n\t
\n{/if}\n\n\n\n\n","\n\n
\n\tPOST\n\t/run/{api_name}\n
\n
\n\t
\n\t\t{root}run/{api_name}\n\t\t\n\t
\n
\n\n\n","\n\n
\n\t
\n\t\t\n\t
\n\tInput Payload\n
\n\n\t
\n\t\t{\n\t\t
\"data\": [
\n\t\t{#each dependency.inputs as component_id, component_index}\n\t\t\t
\n{/if}\n\n\n"],"file":"assets/Blocks.721a001e.js"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Check.2e4ca81a.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Check.2e4ca81a.js
new file mode 100644
index 0000000000000000000000000000000000000000..8519b9b0cdd8b688523e82d21af9b170e19f6e8f
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Check.2e4ca81a.js
@@ -0,0 +1,2 @@
+import{S as l,i as p,s as c,A as r,B as t,f as u,D as d,E as o,p as h}from"./index.8bc3f3e8.js";function f(i){let e,s;return{c(){e=r("svg"),s=r("polyline"),t(s,"points","20 6 9 17 4 12"),t(e,"xmlns","http://www.w3.org/2000/svg"),t(e,"width","100%"),t(e,"height","100%"),t(e,"viewBox","0 0 24 24"),t(e,"fill","none"),t(e,"stroke","currentColor"),t(e,"stroke-width","3"),t(e,"stroke-linecap","round"),t(e,"stroke-linejoin","round")},m(n,a){u(n,e,a),d(e,s)},p:o,i:o,o,d(n){n&&h(e)}}}class m extends l{constructor(e){super(),p(this,e,null,f,c,{})}}export{m as C};
+//# sourceMappingURL=Check.2e4ca81a.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Check.2e4ca81a.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Check.2e4ca81a.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..2d427cd7c4bb697418f7e07342aa2c7da977ff4c
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Check.2e4ca81a.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Check.2e4ca81a.js","sources":["../../../../ui/packages/icons/src/Check.svelte"],"sourcesContent":["\n"],"names":[],"mappings":"sbAAA,SASyB"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css
new file mode 100644
index 0000000000000000000000000000000000000000..e51e137574fa640199388db40f7111760b175f10
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/ColorPicker.svelte_svelte_type_style_lang.adee3b52.css
@@ -0,0 +1 @@
+label.svelte-1ojmf70.svelte-1ojmf70.svelte-1ojmf70{display:flex;align-items:center;cursor:pointer;color:var(--body-text-color);font-weight:var(--checkbox-label-text-weight);font-size:var(--checkbox-label-text-size);line-height:var(--line-md)}label.svelte-1ojmf70>.svelte-1ojmf70+.svelte-1ojmf70{margin-left:var(--size-2)}input.svelte-1ojmf70.svelte-1ojmf70.svelte-1ojmf70{--ring-color:transparent;position:relative;box-shadow:var(--input-shadow);border:1px solid var(--checkbox-border-color);border-radius:var(--checkbox-border-radius);background-color:var(--checkbox-background-color);line-height:var(--line-sm)}input.svelte-1ojmf70.svelte-1ojmf70.svelte-1ojmf70:checked,input.svelte-1ojmf70.svelte-1ojmf70.svelte-1ojmf70:checked:hover,input.svelte-1ojmf70.svelte-1ojmf70.svelte-1ojmf70:checked:focus{border-color:var(--checkbox-border-color-selected);background-image:var(--checkbox-check);background-color:var(--checkbox-background-color-selected)}input.svelte-1ojmf70.svelte-1ojmf70.svelte-1ojmf70:hover{border-color:var(--checkbox-border-color-hover);background-color:var(--checkbox-background-color-hover)}input.svelte-1ojmf70.svelte-1ojmf70.svelte-1ojmf70:focus{border-color:var(--checkbox-border-color-focus);background-color:var(--checkbox-background-color-focus)}input[disabled].svelte-1ojmf70.svelte-1ojmf70.svelte-1ojmf70,.disabled.svelte-1ojmf70.svelte-1ojmf70.svelte-1ojmf70{cursor:not-allowed}.wrap.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04{display:flex;flex-wrap:wrap;gap:var(--checkbox-label-gap)}label.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04{display:flex;align-items:center;transition:var(--button-transition);cursor:pointer;box-shadow:var(--checkbox-label-shadow);border:var(--checkbox-label-border-width) solid var(--checkbox-label-border-color);border-radius:var(--button-small-radius);background:var(--checkbox-label-background-fill);padding:var(--checkbox-label-padding);color:var(--checkbox-label-text-color);font-weight:var(--checkbox-label-text-weight);font-size:var(--checkbox-label-text-size);line-height:var(--line-md)}label.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04:hover{background:var(--checkbox-label-background-fill-hover)}label.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04:focus{background:var(--checkbox-label-background-fill-focus)}label.selected.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04{background:var(--checkbox-label-background-fill-selected);color:var(--checkbox-label-text-color-selected)}label.svelte-1qxcj04>.svelte-1qxcj04+.svelte-1qxcj04{margin-left:var(--size-2)}input.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04{--ring-color:transparent;position:relative;box-shadow:var(--checkbox-shadow);border:var(--checkbox-border-width) solid var(--checkbox-border-color);border-radius:var(--checkbox-border-radius);background-color:var(--checkbox-background-color);line-height:var(--line-sm)}input.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04:checked,input.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04:checked:hover,input.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04:checked:focus{border-color:var(--checkbox-border-color-selected);background-image:var(--checkbox-check);background-color:var(--checkbox-background-color-selected)}input.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04:hover{border-color:var(--checkbox-border-color-hover);background-color:var(--checkbox-background-color-hover)}input.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04:focus{border-color:var(--checkbox-border-color-focus);background-color:var(--checkbox-background-color-focus)}input[disabled].svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04,.disabled.svelte-1qxcj04.svelte-1qxcj04.svelte-1qxcj04{cursor:not-allowed}.options.svelte-1oas11n{--window-padding:var(--size-8);position:absolute;z-index:var(--layer-5);margin-left:0;box-shadow:var(--shadow-drop-lg);border-radius:var(--container-radius);background:var(--background-fill-primary);width:var(--size-full);overflow:auto;color:var(--body-text-color);list-style:none}.item.svelte-1oas11n{display:flex;cursor:pointer;padding:var(--size-2)}.item.svelte-1oas11n:hover,.active.svelte-1oas11n{background:var(--background-fill-secondary)}.inner-item.svelte-1oas11n{padding-right:var(--size-1)}.hide.svelte-1oas11n{visibility:hidden}.wrap.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r{position:relative;box-shadow:var(--input-shadow);border:var(--input-border-width) solid var(--border-color-primary);border-radius:var(--input-radius);background:var(--input-background-fill)}.wrap.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r:focus-within{box-shadow:var(--input-shadow-focus);border-color:var(--input-border-color-focus)}.wrap-inner.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r{display:flex;position:relative;flex-wrap:wrap;align-items:center;gap:var(--checkbox-label-gap);padding:var(--checkbox-label-gap)}.token.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r{display:flex;align-items:center;transition:var(--button-transition);cursor:pointer;box-shadow:var(--checkbox-label-shadow);border:var(--checkbox-label-border-width) solid var(--checkbox-label-border-color);border-radius:var(--button-small-radius);background:var(--checkbox-label-background-fill);padding:var(--checkbox-label-padding);color:var(--checkbox-label-text-color);font-weight:var(--checkbox-label-text-weight);font-size:var(--checkbox-label-text-size);line-height:var(--line-md)}.token.svelte-a6vu2r>.svelte-a6vu2r+.svelte-a6vu2r{margin-left:var(--size-2)}.token-remove.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r{fill:var(--body-text-color);display:flex;justify-content:center;align-items:center;cursor:pointer;border:var(--checkbox-border-width) solid var(--border-color-primary);border-radius:var(--radius-full);background:var(--background-fill-primary);padding:var(--size-0-5);width:18px;height:18px}.single-select.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r{margin:var(--spacing-sm);color:var(--body-text-color)}.secondary-wrap.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r{display:flex;flex:1 1 0%;align-items:center;border:none;min-width:min-content}input.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r{margin:var(--spacing-sm);outline:none;border:none;background:inherit;width:var(--size-full);color:var(--body-text-color);font-size:var(--input-text-size)}input.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r:disabled{cursor:not-allowed}.remove-all.svelte-a6vu2r.svelte-a6vu2r.svelte-a6vu2r{margin-left:var(--size-1);width:20px;height:20px}input[type=number].svelte-1nnxs9b{display:block;position:relative;outline:none!important;box-shadow:var(--input-shadow);border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--input-radius);background:var(--input-background-fill);padding:var(--input-padding);width:100%;color:var(--body-text-color);font-size:var(--input-text-size);line-height:var(--line-sm)}input.svelte-1nnxs9b:focus{box-shadow:var(--input-shadow-focus);border-color:var(--input-border-color-focus)}input.svelte-1nnxs9b::placeholder{color:var(--input-placeholder-color)}.wrap.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt{display:flex;flex-wrap:wrap;gap:var(--checkbox-label-gap)}label.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt{display:flex;align-items:center;transition:var(--button-transition);cursor:pointer;box-shadow:var(--checkbox-label-shadow);border:var(--checkbox-label-border-width) solid var(--checkbox-label-border-color);border-radius:var(--button-small-radius);background:var(--checkbox-label-background-fill);padding:var(--checkbox-label-padding);color:var(--checkbox-label-text-color);font-weight:var(--checkbox-label-text-weight);font-size:var(--checkbox-label-text-size);line-height:var(--line-md)}label.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt:hover{background:var(--checkbox-label-background-fill-hover)}label.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt:focus{background:var(--checkbox-label-background-fill-focus)}label.selected.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt{background:var(--checkbox-label-background-fill-selected);color:var(--checkbox-label-text-color-selected)}label.svelte-1p9xokt>.svelte-1p9xokt+.svelte-1p9xokt{margin-left:var(--size-2)}input.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt{--ring-color:transparent;position:relative;box-shadow:var(--checkbox-shadow);border:var(--checkbox-border-width) solid var(--checkbox-border-color);border-radius:var(--radius-full);background-color:var(--checkbox-background-color);line-height:var(--line-sm)}input.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt:checked,input.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt:checked:hover,input.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt:checked:focus{border-color:var(--checkbox-border-color-selected);background-image:var(--radio-circle);background-color:var(--checkbox-background-color-selected)}input.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt:hover{border-color:var(--checkbox-border-color-hover);background-color:var(--checkbox-background-color-hover)}input.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt:focus{border-color:var(--checkbox-border-color-focus);background-color:var(--checkbox-background-color-focus)}input[disabled].svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt,.disabled.svelte-1p9xokt.svelte-1p9xokt.svelte-1p9xokt{cursor:not-allowed}label.svelte-4xt1ch{display:block;width:100%}input[type=text].svelte-4xt1ch,input[type=password].svelte-4xt1ch,input[type=email].svelte-4xt1ch,textarea.svelte-4xt1ch{display:block;position:relative;outline:none!important;box-shadow:var(--input-shadow);border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--input-radius);background:var(--input-background-fill);padding:var(--input-padding);width:100%;color:var(--body-text-color);font-weight:var(--input-text-weight);font-size:var(--input-text-size);line-height:var(--line-sm)}input.svelte-4xt1ch:focus,textarea.svelte-4xt1ch:focus{box-shadow:var(--input-shadow-focus);border-color:var(--input-border-color-focus)}input.svelte-4xt1ch::placeholder,textarea.svelte-4xt1ch::placeholder{color:var(--input-placeholder-color)}button.svelte-4xt1ch{display:flex;position:absolute;top:var(--block-label-margin);right:var(--block-label-margin);align-items:center;box-shadow:var(--shadow-drop);border:1px solid var(--color-border-primary);border-top:none;border-right:none;border-radius:var(--block-label-right-radius);background:var(--block-label-background-fill);padding:5px;width:22px;height:22px;overflow:hidden;color:var(--block-label-color);font:var(--font-sans);font-size:var(--button-small-text-size)}.wrap.svelte-jigama{display:flex;flex-direction:column;width:100%}.head.svelte-jigama{display:flex;justify-content:space-between}input[type=number].svelte-jigama{display:block;position:relative;outline:none!important;box-shadow:var(--input-shadow);border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--input-radius);background:var(--input-background-fill);padding:var(--size-2) var(--size-2);height:var(--size-6);color:var(--body-text-color);font-size:var(--input-text-size);line-height:var(--line-sm);text-align:center}input[type=number].svelte-jigama:focus{box-shadow:var(--input-shadow-focus);border-color:var(--input-border-color-focus)}input.svelte-jigama::placeholder{color:var(--input-placeholder-color)}input[type=range].svelte-jigama{width:100%;accent-color:var(--slider-color)}input[disabled].svelte-jigama{cursor:not-allowed}input.svelte-56zyyb{display:block;position:relative;background:var(--background-fill-primary);line-height:var(--line-sm)}
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Column.3430dc15.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Column.3430dc15.js
new file mode 100644
index 0000000000000000000000000000000000000000..a69fb38aee55a4d52cb75826064683513d67b658
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Column.3430dc15.js
@@ -0,0 +1,2 @@
+import{S as h,i as w,s as b,W as r,F as C,B as o,a8 as g,O as _,f as j,X as S,Y as q,Z as y,o as B,t as F,p as O}from"./index.8bc3f3e8.js";/* empty css */function W(i){let e,n,m,f;const u=i[8].default,a=r(u,i,i[7],null);return{c(){e=C("div"),a&&a.c(),o(e,"id",i[2]),o(e,"class",n=g(i[3].join(" "))+" svelte-vt1mxs"),o(e,"style",m=`min-width: min(${i[1]}px, 100%); flex-grow: ${i[0]}`),_(e,"gap",i[6].gap!==!1),_(e,"compact",i[5]==="compact"),_(e,"panel",i[5]==="panel"),_(e,"hide",!i[4])},m(l,t){j(l,e,t),a&&a.m(e,null),f=!0},p(l,[t]){a&&a.p&&(!f||t&128)&&S(a,u,l,l[7],f?y(u,l[7],t,null):q(l[7]),null),(!f||t&4)&&o(e,"id",l[2]),(!f||t&8&&n!==(n=g(l[3].join(" "))+" svelte-vt1mxs"))&&o(e,"class",n),(!f||t&3&&m!==(m=`min-width: min(${l[1]}px, 100%); flex-grow: ${l[0]}`))&&o(e,"style",m),t&72&&_(e,"gap",l[6].gap!==!1),t&40&&_(e,"compact",l[5]==="compact"),t&40&&_(e,"panel",l[5]==="panel"),t&24&&_(e,"hide",!l[4])},i(l){f||(B(a,l),f=!0)},o(l){F(a,l),f=!1},d(l){l&&O(e),a&&a.d(l)}}}function X(i,e,n){let{$$slots:m={},$$scope:f}=e,{scale:u=1}=e,{min_width:a=0}=e,{elem_id:l=""}=e,{elem_classes:t=[]}=e,{visible:c=!0}=e,{variant:d="default"}=e,{style:v={}}=e;return i.$$set=s=>{"scale"in s&&n(0,u=s.scale),"min_width"in s&&n(1,a=s.min_width),"elem_id"in s&&n(2,l=s.elem_id),"elem_classes"in s&&n(3,t=s.elem_classes),"visible"in s&&n(4,c=s.visible),"variant"in s&&n(5,d=s.variant),"style"in s&&n(6,v=s.style),"$$scope"in s&&n(7,f=s.$$scope)},[u,a,l,t,c,d,v,f,m]}class k extends h{constructor(e){super(),w(this,e,X,W,b,{scale:0,min_width:1,elem_id:2,elem_classes:3,visible:4,variant:5,style:6})}}export{k as C};
+//# sourceMappingURL=Column.3430dc15.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Column.3430dc15.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Column.3430dc15.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..2377c6854c2567f40874536720efde11ea9536db
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Column.3430dc15.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Column.3430dc15.js","sources":["../../../../ui/packages/app/src/components/Column/Column.svelte"],"sourcesContent":["\n\n
\n\t\n
\n\n\n"],"names":[],"mappings":"gTAcK,sBACG,KAAa,KAAK,GAAG,qDAKH,6BAAkC,kBAJhD,KAAM,MAAQ,EAAK,gBACf,OAAY,SAAS,cACvB,OAAY,OAAO,cACnB,cANd,8HACK,yBACG,KAAa,KAAK,GAAG,yEAKH,6BAAkC,yCAJhD,KAAM,MAAQ,EAAK,sBACf,OAAY,SAAS,oBACvB,OAAY,OAAO,oBACnB,0HAfF,QAAgB,MAChB,YAAoB,MACpB,UAAkB,OAClB,sBACA,UAAmB,OACnB,UAA2C,cAC3C"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Column.svelte_svelte_type_style_lang.c4c23b6e.css b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Column.svelte_svelte_type_style_lang.c4c23b6e.css
new file mode 100644
index 0000000000000000000000000000000000000000..8657e4c7112cc9a8232f875b00f9cf9aaac5e9f6
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Column.svelte_svelte_type_style_lang.c4c23b6e.css
@@ -0,0 +1 @@
+div.svelte-vt1mxs{display:flex;position:relative;flex-direction:column}div.svelte-vt1mxs>*,div.svelte-vt1mxs>.form>*{width:var(--size-full)}.gap.svelte-vt1mxs{gap:var(--layout-gap)}.hide.svelte-vt1mxs{display:none}.compact.svelte-vt1mxs>*,.compact.svelte-vt1mxs .box{border-radius:0}.compact.svelte-vt1mxs,.panel.svelte-vt1mxs{border:solid var(--panel-border-width) var(--panel-border-color);border-radius:var(--container-radius);background:var(--panel-background-fill);padding:var(--spacing-lg)}
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Copy.81b6b893.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Copy.81b6b893.js
new file mode 100644
index 0000000000000000000000000000000000000000..dc2989ab40b178f001115a73a7106742db41adc0
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Copy.81b6b893.js
@@ -0,0 +1,2 @@
+import{S as h,i as c,s as v,A as r,B as a,f,D as l,E as n,p as m}from"./index.8bc3f3e8.js";function u(p){let t,e,s;return{c(){t=r("svg"),e=r("path"),s=r("path"),a(e,"fill","currentColor"),a(e,"d","M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z"),a(s,"fill","currentColor"),a(s,"d","M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z"),a(t,"xmlns","http://www.w3.org/2000/svg"),a(t,"width","100%"),a(t,"height","100%"),a(t,"viewBox","0 0 32 32")},m(o,i){f(o,t,i),l(t,e),l(t,s)},p:n,i:n,o:n,d(o){o&&m(t)}}}class g extends h{constructor(t){super(),c(this,t,null,u,v,{})}}export{g as C};
+//# sourceMappingURL=Copy.81b6b893.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Copy.81b6b893.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Copy.81b6b893.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..97a309c569544a51c1f496905b42f71898c9c93f
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Copy.81b6b893.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Copy.81b6b893.js","sources":["../../../../ui/packages/icons/src/Copy.svelte"],"sourcesContent":["\n"],"names":[],"mappings":"+dAAA,SAKE,OAGC"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Download.db27fee4.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Download.db27fee4.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd683e8abfc7d3ec4a0302e1acba4479efa5888d
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Download.db27fee4.js
@@ -0,0 +1,2 @@
+import{S as i,i as p,s as v,A as o,B as e,f as h,D as c,E as n,p as m}from"./index.8bc3f3e8.js";function d(l){let t,s;return{c(){t=o("svg"),s=o("path"),e(s,"fill","currentColor"),e(s,"d","M26 24v4H6v-4H4v4a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-4zm0-10l-1.41-1.41L17 20.17V2h-2v18.17l-7.59-7.58L6 14l10 10l10-10z"),e(t,"xmlns","http://www.w3.org/2000/svg"),e(t,"width","100%"),e(t,"height","100%"),e(t,"viewBox","0 0 32 32")},m(a,r){h(a,t,r),c(t,s)},p:n,i:n,o:n,d(a){a&&m(t)}}}class g extends i{constructor(t){super(),p(this,t,null,d,v,{})}}export{g as D};
+//# sourceMappingURL=Download.db27fee4.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Download.db27fee4.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Download.db27fee4.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..d6b2baf287bd73c696c9d47645d49ec9394f2ba9
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Download.db27fee4.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Download.db27fee4.js","sources":["../../../../ui/packages/icons/src/Download.svelte"],"sourcesContent":["\n"],"names":[],"mappings":"0aAAA,SAKE"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css
new file mode 100644
index 0000000000000000000000000000000000000000..c47d6f6f010f0626b0036068fe41d683b37b2954
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/DropdownArrow.svelte_svelte_type_style_lang.a71c0c1e.css
@@ -0,0 +1 @@
+.dropdown-arrow.svelte-p5edak{fill:var(--body-text-color);margin-right:var(--size-2);width:var(--size-5)}
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.2aba5ba4.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.2aba5ba4.js
new file mode 100644
index 0000000000000000000000000000000000000000..a878e54dac863139fe6468138186a1a204b0f5dc
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.2aba5ba4.js
@@ -0,0 +1,2 @@
+import{S as _,i as r,s as m,W as c,F as d,B as f,O as u,f as g,D as p,X as b,Y as v,Z as z,o as h,t as j,p as E}from"./index.8bc3f3e8.js";import"./Empty.svelte_svelte_type_style_lang.bc882d5f.js";function S(t){let s,n,i;const o=t[3].default,a=c(o,t,t[2],null);return{c(){s=d("div"),n=d("div"),a&&a.c(),f(n,"class","icon svelte-1u5vjgs"),f(s,"class","empty svelte-1u5vjgs"),u(s,"small",t[0]==="small"),u(s,"large",t[0]==="large"),u(s,"unpadded_box",t[1])},m(e,l){g(e,s,l),p(s,n),a&&a.m(n,null),i=!0},p(e,[l]){a&&a.p&&(!i||l&4)&&b(a,o,e,e[2],i?z(o,e[2],l,null):v(e[2]),null),l&1&&u(s,"small",e[0]==="small"),l&1&&u(s,"large",e[0]==="large"),l&2&&u(s,"unpadded_box",e[1])},i(e){i||(h(a,e),i=!0)},o(e){j(a,e),i=!1},d(e){e&&E(s),a&&a.d(e)}}}function q(t,s,n){let{$$slots:i={},$$scope:o}=s,{size:a="small"}=s,{unpadded_box:e=!1}=s;return t.$$set=l=>{"size"in l&&n(0,a=l.size),"unpadded_box"in l&&n(1,e=l.unpadded_box),"$$scope"in l&&n(2,o=l.$$scope)},[a,e,o,i]}class D extends _{constructor(s){super(),r(this,s,q,S,m,{size:0,unpadded_box:1})}}export{D as E};
+//# sourceMappingURL=Empty.2aba5ba4.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.2aba5ba4.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.2aba5ba4.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..343aedd7e37672e179a0ef56db6ae8522bdd8946
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.2aba5ba4.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Empty.2aba5ba4.js","sources":["../../../../ui/packages/atoms/src/Empty.svelte"],"sourcesContent":["\n\n
\n\t
\n\t\t\n\t
\n
\n\n\n"],"names":[],"mappings":"iYAOc,OAAS,OAAO,cAChB,OAAS,OAAO,mCAH9B,SAMC,uHAJa,OAAS,OAAO,mBAChB,OAAS,OAAO,oJAPlB,OAA0B,YAC1B,eAAe"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.svelte_svelte_type_style_lang.04656a45.css b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.svelte_svelte_type_style_lang.04656a45.css
new file mode 100644
index 0000000000000000000000000000000000000000..7eccfe5b6ac9a0b65a64c4007b294d0f4df457cd
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.svelte_svelte_type_style_lang.04656a45.css
@@ -0,0 +1 @@
+button.svelte-1ipelgc{display:inline-flex;justify-content:center;align-items:center;transition:var(--button-transition);box-shadow:var(--button-shadow);padding:var(--size-0-5) var(--size-2);text-align:center}button.svelte-1ipelgc:hover,button[disabled].svelte-1ipelgc{box-shadow:var(--button-shadow-hover)}button.svelte-1ipelgc:active{box-shadow:var(--button-shadow-active)}button[disabled].svelte-1ipelgc{opacity:.5;filter:grayscale(30%);cursor:not-allowed}.hide.svelte-1ipelgc{display:none}.primary.svelte-1ipelgc{border:var(--button-border-width) solid var(--button-primary-border-color);background:var(--button-primary-background-fill);color:var(--button-primary-text-color)}.primary.svelte-1ipelgc:hover,.primary[disabled].svelte-1ipelgc{border-color:var(--button-primary-border-color-hover);background:var(--button-primary-background-fill-hover);color:var(--button-primary-text-color-hover)}.secondary.svelte-1ipelgc{border:var(--button-border-width) solid var(--button-secondary-border-color);background:var(--button-secondary-background-fill);color:var(--button-secondary-text-color)}.secondary.svelte-1ipelgc:hover,.secondary[disabled].svelte-1ipelgc{border-color:var(--button-secondary-border-color-hover);background:var(--button-secondary-background-fill-hover);color:var(--button-secondary-text-color-hover)}.stop.svelte-1ipelgc{border:var(--button-border-width) solid var(--button-cancel-border-color);background:var(--button-cancel-background-fill);color:var(--button-cancel-text-color)}.stop.svelte-1ipelgc:hover,.stop[disabled].svelte-1ipelgc{border-color:var(--button-cancel-border-color-hover);background:var(--button-cancel-background-fill-hover);color:var(--button-cancel-text-color-hover)}.sm.svelte-1ipelgc{border-radius:var(--button-small-radius);padding:var(--button-small-padding);font-weight:var(--button-small-text-weight);font-size:var(--button-small-text-size)}.lg.svelte-1ipelgc{border-radius:var(--button-large-radius);padding:var(--button-large-padding);font-weight:var(--button-large-text-weight);font-size:var(--button-large-text-size)}.block.svelte-mppz8v{position:relative;margin:0;box-shadow:var(--block-shadow);border-width:var(--block-border-width);border-color:var(--block-border-color);border-radius:var(--block-radius);background:var(--block-background-fill);width:100%;line-height:var(--line-sm)}.block.border_focus.svelte-mppz8v{border-color:var(--color-accent)}.padded.svelte-mppz8v{padding:var(--block-padding)}.hidden.svelte-mppz8v{display:none}div.svelte-e8n7p6{margin-bottom:var(--spacing-lg);color:var(--block-info-text-color);font-weight:var(--block-info-text-weight);font-size:var(--block-info-text-size);line-height:var(--line-sm)}span.has-info.svelte-1gfkn6j{margin-bottom:var(--spacing-xs)}span.svelte-1gfkn6j:not(.has-info){margin-bottom:var(--spacing-lg)}span.svelte-1gfkn6j{display:inline-block;position:relative;z-index:var(--layer-4);border:solid var(--block-title-border-width) var(--block-title-border-color);border-radius:var(--block-title-radius);background:var(--block-title-background-fill);padding:var(--block-title-padding);color:var(--block-title-text-color);font-weight:var(--block-title-text-weight);font-size:var(--block-title-text-size);line-height:var(--line-sm)}.hide.svelte-1gfkn6j{margin:0;height:0}div.svelte-1frtwj3{display:inline-flex;align-items:center;z-index:var(--layer-2);box-shadow:var(--block-shadow);border:var(--block-label-border-width) solid var(--border-color-primary);border-top:none;border-left:none;border-radius:var(--block-label-radius);background:var(--block-label-background-fill);padding:var(--block-label-padding);pointer-events:none;color:var(--block-label-text-color);font-weight:var(--block-label-text-weight);font-size:var(--block-label-text-size);line-height:var(--line-sm)}div.float.svelte-1frtwj3{position:absolute;top:var(--block-label-margin);left:var(--block-label-margin)}div.svelte-1frtwj3:not(.float){position:static;margin-top:var(--block-label-margin);margin-left:var(--block-label-margin)}.hide.svelte-1frtwj3{height:0}span.svelte-1frtwj3{opacity:.8;margin-right:var(--size-2);width:calc(var(--block-label-text-size) - 1px);height:calc(var(--block-label-text-size) - 1px)}button.svelte-184m5ec{display:flex;justify-content:center;align-items:center;z-index:var(--layer-1);box-shadow:var(--shadow-drop);border:1px solid var(--button-secondary-border-color);border-radius:var(--radius-sm);background:var(--background-fill-primary);width:var(--size-5);height:var(--size-5);color:var(--block-label-text-color)}button.svelte-184m5ec:hover{border:1px solid var(--button-secondary-border-color-hover);color:var(--block-label-text-color)}div.svelte-184m5ec{width:60%;height:60%}.empty.svelte-1u5vjgs{display:flex;justify-content:center;align-items:center;height:var(--size-full)}.icon.svelte-1u5vjgs{opacity:.5;height:var(--size-5);color:var(--body-text-color)}.small.svelte-1u5vjgs{height:calc(var(--size-32) - 20px)}.large.svelte-1u5vjgs{height:calc(var(--size-64) - 20px)}.unpadded_box.small.svelte-1u5vjgs{min-height:var(--size-32)}.unpadded_box.large.svelte-1u5vjgs{min-height:var(--size-64)}
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js
new file mode 100644
index 0000000000000000000000000000000000000000..175af232a50dd5a190f130b117d4271a822474b7
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js
@@ -0,0 +1,2 @@
+import{S as K,i as L,s as z,W as N,F as S,B as b,O as m,f as j,I as Z,X as Y,Y as F,Z as T,o as C,t as I,p as O,x as D,$ as E,C as y,g as G,e as H,a0 as J,v as M}from"./index.8bc3f3e8.js";const P=(l,e)=>W[e](l[e]);function k(l,e){const t=e.reduce((n,s)=>(l[s]===void 0||!W[s]?n[s]=" ":n[s]=` ${P(l,s)} `,n),{});return t.styles=` ${Object.values(t).join(" ").replace(/\s+/g," ").trim()} `,t}const W={container(l){return l?"":"padding: 0; margin: 0; border-width: 0; box-shadow: none; overflow: visible; background: transparent;"},label_container(l){return l?"":"border-width: 0; box-shadow: none; overflow: visible; background: transparent;"},grid(l){let e=["","sm-","md-","lg-","xl-","2xl-"],t=Array.isArray(l)?l:[l];return[0,0,0,0,0,0].map((n,s)=>`--${e[s]}grid-cols: var(--grid-${t?.[s]||t?.[t?.length-1]});`).join(" ")},height(l){return l==="auto"?"height: auto;":""},full_width(l){return l?"width: var(--size-full); flex-grow: 1;":"flex-grow: 0; width: fit-content;"},equal_height(l){return l?"align-items: stretch;":"align-items: flex-start;"},visible(l){return l?"":"display:hidden;"},item_container(l){return l?"":"border-width:0;"}};function Q(l){let e,t,n,s,f;const _=l[9].default,d=N(_,l,l[8],null);return{c(){e=S("button"),d&&d.c(),b(e,"class",t=l[4]+" "+l[3]+" "+l[1].join(" ")+" svelte-1ipelgc"),b(e,"style",l[6]),b(e,"id",l[0]),e.disabled=l[5],m(e,"hide",!l[2])},m(a,i){j(a,e,i),d&&d.m(e,null),n=!0,s||(f=Z(e,"click",l[10]),s=!0)},p(a,[i]){d&&d.p&&(!n||i&256)&&Y(d,_,a,a[8],n?T(_,a[8],i,null):F(a[8]),null),(!n||i&26&&t!==(t=a[4]+" "+a[3]+" "+a[1].join(" ")+" svelte-1ipelgc"))&&b(e,"class",t),(!n||i&64)&&b(e,"style",a[6]),(!n||i&1)&&b(e,"id",a[0]),(!n||i&32)&&(e.disabled=a[5]),i&30&&m(e,"hide",!a[2])},i(a){n||(C(d,a),n=!0)},o(a){I(d,a),n=!1},d(a){a&&O(e),d&&d.d(a),s=!1,f()}}}function R(l,e,t){let n,{$$slots:s={},$$scope:f}=e,{style:_={}}=e,{elem_id:d=""}=e,{elem_classes:a=[]}=e,{visible:i=!0}=e,{variant:o="secondary"}=e,{size:v=_.size||"lg"}=e,{disabled:g=!1}=e;function c(r){D.call(this,l,r)}return l.$$set=r=>{"style"in r&&t(7,_=r.style),"elem_id"in r&&t(0,d=r.elem_id),"elem_classes"in r&&t(1,a=r.elem_classes),"visible"in r&&t(2,i=r.visible),"variant"in r&&t(3,o=r.variant),"size"in r&&t(4,v=r.size),"disabled"in r&&t(5,g=r.disabled),"$$scope"in r&&t(8,f=r.$$scope)},l.$$.update=()=>{l.$$.dirty&128&&t(6,{styles:n}=k(_,["full_width"]),n)},[d,a,i,o,v,g,n,_,f,s,c]}class p extends K{constructor(e){super(),L(this,e,R,Q,z,{style:7,elem_id:0,elem_classes:1,visible:2,variant:3,size:4,disabled:5})}}function B(l){let e,t,n,s;const f=l[16].default,_=N(f,l,l[15],null);let d=[{"data-testid":l[5]},{id:l[0]},{class:t="block "+l[1].join(" ")+" svelte-mppz8v"},{style:n=l[9]+" "+(l[8]||null)}],a={};for(let i=0;i{"style"in u&&t(11,d=u.style),"elem_id"in u&&t(0,a=u.elem_id),"elem_classes"in u&&t(1,i=u.elem_classes),"variant"in u&&t(2,o=u.variant),"border_mode"in u&&t(3,v=u.border_mode),"padding"in u&&t(4,g=u.padding),"type"in u&&t(12,c=u.type),"test_id"in u&&t(5,r=u.test_id),"disable"in u&&t(13,h=u.disable),"explicit_call"in u&&t(14,w=u.explicit_call),"visible"in u&&t(6,q=u.visible),"allow_overflow"in u&&t(7,A=u.allow_overflow),"$$scope"in u&&t(15,_=u.$$scope)},l.$$.update=()=>{l.$$.dirty&26624&&t(9,{styles:n}=w?k(d,[]):h?k({container:!1},["container"]):{styles:""},n),l.$$.dirty&2048&&t(8,s=(typeof d.height=="number"?`height: ${d.height}px; `:"")+(typeof d.width=="number"?`width: ${d.width}px;`:""))},[a,i,o,v,g,r,q,A,s,n,X,d,c,h,w,_,f]}class $ extends K{constructor(e){super(),L(this,e,V,U,z,{style:11,elem_id:0,elem_classes:1,variant:2,border_mode:3,padding:4,type:12,test_id:5,disable:13,explicit_call:14,visible:6,allow_overflow:7})}}export{p as B,$ as a,k as g};
+//# sourceMappingURL=Empty.svelte_svelte_type_style_lang.bc882d5f.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..2c5fafe5f3adc1d1a6a804fac810efa4a12357ac
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Empty.svelte_svelte_type_style_lang.bc882d5f.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Empty.svelte_svelte_type_style_lang.bc882d5f.js","sources":["../../../../ui/packages/utils/src/styles.ts","../../../../ui/packages/button/src/Button.svelte","../../../../ui/packages/atoms/src/Block.svelte"],"sourcesContent":["export interface Styles {\n\tcontainer?: boolean;\n\tgrid?: number | Array;\n\theight?: \"auto\" | string | number;\n\twidth?: \"auto\" | string | number;\n\tfull_width?: boolean;\n\tequal_height?: boolean;\n\tvisible?: boolean;\n\titem_container?: boolean;\n\tcolor_map?: Record;\n\tlabel_container?: boolean;\n\tgap?: boolean;\n\tsize?: \"sm\" | \"lg\";\n\tpreview?: boolean;\n\tshow_copy_button?: boolean;\n}\n\ntype PartialRecord = {\n\t[P in K]?: T;\n};\n\ntype ProcessedStyles = PartialRecord & {\n\tstyles: string;\n};\n\nconst get_style = (styles: Styles, key: T) => {\n\treturn style_handlers[key](styles[key]!);\n};\n\nexport function get_styles(\n\tstyles: Styles,\n\tallowed_styles: Array\n): ProcessedStyles {\n\tconst processed_styles = allowed_styles.reduce((acc, next) => {\n\t\tif (styles[next] === undefined || !style_handlers[next]) acc[next] = \" \";\n\t\telse {\n\t\t\tacc[next] = ` ${get_style(styles, next)} `;\n\t\t}\n\t\treturn acc;\n\t}, {} as ProcessedStyles);\n\n\tprocessed_styles.styles = ` ${Object.values(processed_styles)\n\t\t.join(\" \")\n\t\t.replace(/\\s+/g, \" \")\n\t\t.trim()} `;\n\n\treturn processed_styles;\n}\n\ntype StyleHandlers = {\n\t[K in keyof Styles]: (style: Exclude) => string;\n};\n\nconst style_handlers: StyleHandlers = {\n\tcontainer(container_visible) {\n\t\treturn container_visible\n\t\t\t? \"\"\n\t\t\t: `padding: 0; margin: 0; border-width: 0; box-shadow: none; overflow: visible; background: transparent;`;\n\t},\n\tlabel_container(visible) {\n\t\treturn visible\n\t\t\t? \"\"\n\t\t\t: `border-width: 0; box-shadow: none; overflow: visible; background: transparent;`;\n\t},\n\tgrid(grid) {\n\t\tlet grid_map = [\"\", \"sm-\", \"md-\", \"lg-\", \"xl-\", \"2xl-\"];\n\t\tlet _grid = Array.isArray(grid) ? grid : [grid];\n\n\t\treturn [0, 0, 0, 0, 0, 0]\n\t\t\t.map(\n\t\t\t\t(_, i) =>\n\t\t\t\t\t`--${grid_map[i]}grid-cols: var(--grid-${\n\t\t\t\t\t\t_grid?.[i] || _grid?.[_grid?.length - 1]\n\t\t\t\t\t});`\n\t\t\t)\n\t\t\t.join(\" \");\n\t},\n\theight(height) {\n\t\treturn height === \"auto\" ? \"height: auto;\" : \"\";\n\t},\n\tfull_width(full_width) {\n\t\treturn full_width\n\t\t\t? \"width: var(--size-full); flex-grow: 1;\"\n\t\t\t: \"flex-grow: 0; width: fit-content;\";\n\t},\n\tequal_height(equal_height) {\n\t\treturn equal_height ? \"align-items: stretch;\" : \"align-items: flex-start;\";\n\t},\n\tvisible(visible) {\n\t\treturn visible ? \"\" : \"display:hidden;\";\n\t},\n\titem_container(visible) {\n\t\treturn visible ? \"\" : \"border-width:0;\";\n\t}\n} as const;\n\nexport const create_classes = (\n\tstyles: Record,\n\tprefix: string = \"\"\n): string => {\n\tlet classes: Array = [];\n\tlet target_styles: Record = {};\n\tif (prefix === \"\") {\n\t\ttarget_styles = styles;\n\t} else {\n\t\tfor (const prop in styles) {\n\t\t\tif (prop.startsWith(prefix + \"_\")) {\n\t\t\t\tconst propname = prop.substring(prop.indexOf(\"_\") + 1);\n\t\t\t\ttarget_styles[propname] = styles[prop];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (target_styles.hasOwnProperty(\"margin\")) {\n\t\tif (!Array.isArray(target_styles.margin)) {\n\t\t\ttarget_styles.margin = !!target_styles.margin\n\t\t\t\t? [true, true, true, true]\n\t\t\t\t: [false, false, false, false];\n\t\t}\n\n\t\tlet margin_map = [\"t\", \"r\", \"b\", \"l\"];\n\n\t\t(target_styles.margin as boolean[]).forEach((margin, i) => {\n\t\t\tif (!margin) {\n\t\t\t\tclasses.push(`!m${margin_map[i]}-0`);\n\t\t\t}\n\t\t});\n\t}\n\n\tif (target_styles.hasOwnProperty(\"border\")) {\n\t\tif (!Array.isArray(target_styles.border)) {\n\t\t\ttarget_styles.border = !!target_styles.border\n\t\t\t\t? [true, true, true, true]\n\t\t\t\t: [false, false, false, false];\n\t\t}\n\n\t\tlet border_map = [\"t\", \"r\", \"b\", \"l\"];\n\n\t\t(target_styles.border as boolean[]).forEach((border, i) => {\n\t\t\tif (!border) {\n\t\t\t\tclasses.push(`!border-${border_map[i]}-0`);\n\t\t\t}\n\t\t});\n\t}\n\n\tswitch (target_styles.rounded) {\n\t\tcase true:\n\t\t\tclasses.push(\"!rounded-lg\");\n\t\t\tbreak;\n\t\tcase false:\n\t\t\tclasses.push(\"!rounded-none\");\n\t\t\tbreak;\n\t}\n\n\tswitch (target_styles.full_width) {\n\t\tcase true:\n\t\t\tclasses.push(\"w-full\");\n\t\t\tbreak;\n\t\tcase false:\n\t\t\tclasses.push(\"!grow-0\");\n\t\t\tbreak;\n\t}\n\n\tswitch (target_styles.text_color) {\n\t\tcase \"red\":\n\t\t\tclasses.push(\"!text-red-500\", \"dark:text-red-100\");\n\t\t\tbreak;\n\t\tcase \"yellow\":\n\t\t\tclasses.push(\"!text-yellow-500\", \"dark:text-yellow-100\");\n\t\t\tbreak;\n\t\tcase \"green\":\n\t\t\tclasses.push(\"!text-green-500\", \"dark:text-green-100\");\n\t\t\tbreak;\n\t\tcase \"blue\":\n\t\t\tclasses.push(\"!text-blue-500\", \"dark:text-blue-100\");\n\t\t\tbreak;\n\t\tcase \"purple\":\n\t\t\tclasses.push(\"!text-purple-500\", \"dark:text-purple-100\");\n\t\t\tbreak;\n\t\tcase \"black\":\n\t\t\tclasses.push(\"!text-gray-700\", \"dark:text-gray-50\");\n\t\t\tbreak;\n\t}\n\tswitch (target_styles.bg_color) {\n\t\tcase \"red\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-red-100 !from-red-100 !to-red-200 !border-red-300\",\n\t\t\t\t\"dark:!bg-red-700 dark:!from-red-700 dark:!to-red-800 dark:!border-red-900\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"yellow\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-yellow-100 !from-yellow-100 !to-yellow-200 !border-yellow-300\",\n\t\t\t\t\"dark:!bg-yellow-700 dark:!from-yellow-700 dark:!to-yellow-800 dark:!border-yellow-900\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"green\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-green-100 !from-green-100 !to-green-200 !border-green-300\",\n\t\t\t\t\"dark:!bg-green-700 dark:!from-green-700 dark:!to-green-800 dark:!border-green-900 !text-gray-800\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"blue\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-blue-100 !from-blue-100 !to-blue-200 !border-blue-300\",\n\t\t\t\t\"dark:!bg-blue-700 dark:!from-blue-700 dark:!to-blue-800 dark:!border-blue-900\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"purple\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-purple-100 !from-purple-100 !to-purple-200 !border-purple-300\",\n\t\t\t\t\"dark:!bg-purple-700 dark:!from-purple-700 dark:!to-purple-800 dark:!border-purple-900\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"black\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-gray-100 !from-gray-100 !to-gray-200 !border-gray-300\",\n\t\t\t\t\"dark:!bg-gray-700 dark:!from-gray-700 dark:!to-gray-800 dark:!border-gray-900\"\n\t\t\t);\n\t\tcase \"pink\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-pink-100 !from-pink-100 !to-pink-200 !border-pink-300\",\n\t\t\t\t\"dark:!bg-pink-700 dark:!from-pink-700 dark:!to-pink-800 dark:!border-pink-900 !text-gray-800\"\n\t\t\t);\n\t\t\tbreak;\n\t}\n\treturn \" \" + classes.join(\" \");\n};\n","\n\n\n\n\n","\n\n\n\t\n\n\n\n"],"names":[],"mappings":"4LAyBA,KAAM,GAAY,CAAyB,EAAgB,IACnD,EAAe,GAAK,EAAO,EAAK,aAIvC,EACA,EACkB,MACZ,GAAmB,EAAe,OAAO,CAAC,EAAK,KAChD,EAAO,KAAU,QAAa,CAAC,EAAe,KAAW,GAAQ,MAEhE,GAAQ,IAAI,EAAU,EAAQ,CAAI,KAEhC,GACL,EAAqB,WAEP,OAAS,IAAI,OAAO,OAAO,CAAgB,EAC1D,KAAK,GAAG,EACR,QAAQ,OAAQ,GAAG,EACnB,UAEK,CACR,CAMA,KAAM,GAAgC,CACrC,UAAU,EAAmB,OACrB,GACJ,GACA,yGAEJ,gBAAgB,EAAS,OACjB,GACJ,GACA,kFAEJ,KAAK,EAAM,IACN,GAAW,CAAC,GAAI,MAAO,MAAO,MAAO,MAAO,MAAM,EAClD,EAAQ,MAAM,QAAQ,CAAI,EAAI,EAAO,CAAC,CAAI,QAEvC,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtB,IACA,CAAC,EAAG,IACH,KAAK,EAAS,2BACb,IAAQ,IAAM,IAAQ,GAAO,OAAS,MAEzC,EACC,KAAK,GAAG,GAEX,OAAO,EAAQ,OACP,KAAW,OAAS,gBAAkB,IAE9C,WAAW,EAAY,OACf,GACJ,yCACA,qCAEJ,aAAa,EAAc,OACnB,GAAe,wBAA0B,4BAEjD,QAAQ,EAAS,OACT,GAAU,GAAK,mBAEvB,eAAe,EAAS,OAChB,GAAU,GAAK,kBAExB,sHC5ES,SAAO,SAAU,KAAa,KAAK,GAAG,iCACvC,eACH,kCAHS,cAFd,2JAGS,SAAO,SAAU,KAAa,KAAK,GAAG,8DACvC,0BACH,sDAHS,sIAbF,eACA,UAAkB,OAClB,sBACA,UAAmB,OACnB,UAA4C,gBAC5C,OAAoB,EAAM,MAAQ,SAClC,WAAoB,iWAEzB,UAAW,EAAW,GAAQ,YAAY,4PC0BnC,UACT,wBAEU,KAAa,KAAK,GAAG,6BAG3B,SAAS,OAAc,oEAPzB,oCAGQ,OAAY,EAAK,eAEjB,yBACM,OAAgB,OAAO,qBAEvB,wBACJ,KAAiB,UAAY,qBAV9C,mJAEc,qBACT,gCAEU,KAAa,KAAK,GAAG,mDAG3B,SAAS,OAAc,mCAJjB,OAAY,EAAK,eAEjB,yBACM,OAAgB,OAAO,0BAEvB,+BACJ,KAAiB,UAAY,oGATvC,YAAA,kFAAA,YAAA,kHAAA,2HA/BK,eACA,UAAkB,OAClB,sBACA,UAAuC,YACvC,cAAgC,WAChC,UAAmB,OACnB,OAA8B,aAC9B,UAA8B,WAC9B,UAAmB,OACnB,gBAAyB,OACzB,UAAU,OACV,iBAAiB,MAExB,EAAM,IAAS,WAAa,WAAa,MAE9B,SAA0B,WAAW,8fAI9C,UAAW,EACd,EAAW,MACX,EACA,GAAa,UAAW,KAAU,WAAW,IAC3C,OAAQ,4BACV,EACF,OACQ,GAAM,QAAW,oBAAsB,EAAM,aAAe,WAC5D,GAAM,OAAU,mBAAqB,EAAM,WAAa"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/File.53d141a7.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/File.53d141a7.js
new file mode 100644
index 0000000000000000000000000000000000000000..66bb7582e2defa1b914603cc2867c518487d67ba
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/File.53d141a7.js
@@ -0,0 +1,2 @@
+import{S as h,i as c,s as f,A as o,B as t,f as d,D as i,E as r,p as u}from"./index.8bc3f3e8.js";function g(l){let e,s,a;return{c(){e=o("svg"),s=o("path"),a=o("polyline"),t(s,"d","M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"),t(a,"points","13 2 13 9 20 9"),t(e,"xmlns","http://www.w3.org/2000/svg"),t(e,"width","100%"),t(e,"height","100%"),t(e,"viewBox","0 0 24 24"),t(e,"fill","none"),t(e,"stroke","currentColor"),t(e,"stroke-width","1.5"),t(e,"stroke-linecap","round"),t(e,"stroke-linejoin","round"),t(e,"class","feather feather-file")},m(n,p){d(n,e,p),i(e,s),i(e,a)},p:r,i:r,o:r,d(n){n&&u(e)}}}class v extends h{constructor(e){super(),c(this,e,null,g,f,{})}}export{v as F};
+//# sourceMappingURL=File.53d141a7.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/File.53d141a7.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/File.53d141a7.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..68049223e4f631ab9d5457e5d4eb6a8151408125
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/File.53d141a7.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"File.53d141a7.js","sources":["../../../../ui/packages/icons/src/File.svelte"],"sourcesContent":["\n"],"names":[],"mappings":"gjBAAA,SAYC,OACA"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Form.0a7d9dad.css b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Form.0a7d9dad.css
new file mode 100644
index 0000000000000000000000000000000000000000..4f21cff8eebea060d05e431443a878eec064de57
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Form.0a7d9dad.css
@@ -0,0 +1 @@
+div.svelte-awbtu4{display:flex;flex-direction:inherit;flex-wrap:wrap;gap:var(--form-gap-width);box-shadow:var(--block-shadow);border:var(--block-border-width) solid var(--border-color-primary);border-radius:var(--radius-lg);background:var(--border-color-primary);overflow:hidden}div.svelte-awbtu4 .block{box-shadow:none!important;border-width:0px!important;border-radius:0!important}.hidden.svelte-awbtu4{display:none}
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Form.5de40f6d.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Form.5de40f6d.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee03eac2cfdf84e98cce5a7e683691c7ad52045a
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Form.5de40f6d.js
@@ -0,0 +1,2 @@
+import{S as r,i as _,s as f,W as u,F as c,B as m,O as o,f as d,X as v,Y as b,Z as g,o as p,t as h,p as F}from"./index.8bc3f3e8.js";function S(i){let t,a;const n=i[2].default,s=u(n,i,i[1],null);return{c(){t=c("div"),s&&s.c(),m(t,"class","form svelte-awbtu4"),o(t,"hidden",!i[0])},m(e,l){d(e,t,l),s&&s.m(t,null),a=!0},p(e,[l]){s&&s.p&&(!a||l&2)&&v(s,n,e,e[1],a?g(n,e[1],l,null):b(e[1]),null),l&1&&o(t,"hidden",!e[0])},i(e){a||(p(s,e),a=!0)},o(e){h(s,e),a=!1},d(e){e&&F(t),s&&s.d(e)}}}function q(i,t,a){let{$$slots:n={},$$scope:s}=t,{visible:e=!0}=t;return i.$$set=l=>{"visible"in l&&a(0,e=l.visible),"$$scope"in l&&a(1,s=l.$$scope)},[e,s,n]}class y extends r{constructor(t){super(),_(this,t,q,S,f,{visible:0})}}export{y as F};
+//# sourceMappingURL=Form.5de40f6d.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Form.5de40f6d.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Form.5de40f6d.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..bc7640dc6efe2609c1d93ab9a19e5cc8c04b9c0c
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Form.5de40f6d.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Form.5de40f6d.js","sources":["../../../../ui/packages/app/src/components/Form/Form.svelte"],"sourcesContent":["\n\n
\n\t\n
\n\n\n"],"names":[],"mappings":"gRAIiC,cAAjC,2HAAiC,0HAHrB,UAAU"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.3a14ca24.css b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.3a14ca24.css
new file mode 100644
index 0000000000000000000000000000000000000000..60f45635043d082881d8d8a529c1142ee028a68b
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.3a14ca24.css
@@ -0,0 +1 @@
+img.svelte-gqt00k{border-radius:var(--radius-lg);max-width:none}img.selected.svelte-gqt00k{border-color:var(--border-color-accent)}.table.svelte-gqt00k{margin:0 auto;border:2px solid var(--border-color-primary);border-radius:var(--radius-lg);width:var(--size-20);height:var(--size-20);object-fit:cover}.gallery.svelte-gqt00k{border:2px solid var(--border-color-primary);max-height:var(--size-20);object-fit:cover}
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.6849a1b2.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.6849a1b2.js
new file mode 100644
index 0000000000000000000000000000000000000000..57a07332fb72e3dd1996c99bc91bd600c3edcbf0
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.6849a1b2.js
@@ -0,0 +1,2 @@
+import{S as h,i as g,s as d,A as n,B as e,f,D as a,E as l,p as m}from"./index.8bc3f3e8.js";function u(c){let t,r,s,o;return{c(){t=n("svg"),r=n("rect"),s=n("circle"),o=n("polyline"),e(r,"x","3"),e(r,"y","3"),e(r,"width","18"),e(r,"height","18"),e(r,"rx","2"),e(r,"ry","2"),e(s,"cx","8.5"),e(s,"cy","8.5"),e(s,"r","1.5"),e(o,"points","21 15 16 10 5 21"),e(t,"xmlns","http://www.w3.org/2000/svg"),e(t,"width","100%"),e(t,"height","100%"),e(t,"viewBox","0 0 24 24"),e(t,"fill","none"),e(t,"stroke","currentColor"),e(t,"stroke-width","1.5"),e(t,"stroke-linecap","round"),e(t,"stroke-linejoin","round"),e(t,"class","feather feather-image")},m(i,p){f(i,t,p),a(t,r),a(t,s),a(t,o)},p:l,i:l,o:l,d(i){i&&m(t)}}}class x extends h{constructor(t){super(),g(this,t,null,u,d,{})}}export{x as I};
+//# sourceMappingURL=Image.6849a1b2.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.6849a1b2.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.6849a1b2.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..e36d3b6453a8d248061faff605c3c298b1bee7e2
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.6849a1b2.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Image.6849a1b2.js","sources":["../../../../ui/packages/icons/src/Image.svelte"],"sourcesContent":["\n"],"names":[],"mappings":"koBAAA,SAYC,OACA,OACA"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.69a24912.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.69a24912.js
new file mode 100644
index 0000000000000000000000000000000000000000..9aaa194182217fce29914d6df2a96212b05d3ec2
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.69a24912.js
@@ -0,0 +1,2 @@
+import{S as g,i as u,s as v,F as d,K as _,B as r,O as n,f as y,E as c,p as b}from"./index.8bc3f3e8.js";function o(t){let e,a;return{c(){e=d("img"),_(e.src,a=t[1]+t[0])||r(e,"src",a),r(e,"class","svelte-gqt00k"),n(e,"table",t[2]==="table"),n(e,"gallery",t[2]==="gallery"),n(e,"selected",t[3])},m(l,s){y(l,e,s)},p(l,[s]){s&3&&!_(e.src,a=l[1]+l[0])&&r(e,"src",a),s&4&&n(e,"table",l[2]==="table"),s&4&&n(e,"gallery",l[2]==="gallery"),s&8&&n(e,"selected",l[3])},i:c,o:c,d(l){l&&b(e)}}}function q(t,e,a){let{value:l}=e,{samples_dir:s}=e,{type:f}=e,{selected:m=!1}=e;return t.$$set=i=>{"value"in i&&a(0,l=i.value),"samples_dir"in i&&a(1,s=i.samples_dir),"type"in i&&a(2,f=i.type),"selected"in i&&a(3,m=i.selected)},[l,s,f,m]}class E extends g{constructor(e){super(),u(this,e,q,o,v,{value:0,samples_dir:1,type:2,selected:3})}}var h=E;export{h as E};
+//# sourceMappingURL=Image.69a24912.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.69a24912.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.69a24912.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..e63662ef1fedfcc9bb973c16d9626064f5212749
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/Image.69a24912.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Image.69a24912.js","sources":["../../../../ui/packages/app/src/components/Dataset/ExampleComponents/Image.svelte"],"sourcesContent":["\n\n\n\n\n\n"],"names":[],"mappings":"6JASM,KAAc,6DACN,OAAS,OAAO,gBACd,OAAS,SAAS,+BAHlC,mCACM,KAAc,qCACN,OAAS,OAAO,qBACd,OAAS,SAAS,0EAVtB,YACA,kBACA,WACA,WAAoB"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/api-logo.5346f193.svg b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/api-logo.5346f193.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bce49a58f0e8a89980e96b8f3bb99f7da48e6254
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/api-logo.5346f193.svg
@@ -0,0 +1,4 @@
+
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/color.a3b0f265.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/color.a3b0f265.js
new file mode 100644
index 0000000000000000000000000000000000000000..916c02f23f5f0b02e9c24555cd5039407d88f6a9
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/color.a3b0f265.js
@@ -0,0 +1,2 @@
+import{am as o}from"./index.8bc3f3e8.js";const t=r=>o[r%o.length];export{t as g};
+//# sourceMappingURL=color.a3b0f265.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/color.a3b0f265.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/color.a3b0f265.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..d618792ad501076a747c9287fd70865610918a5f
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/color.a3b0f265.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"color.a3b0f265.js","sources":["../../../../ui/packages/utils/src/color.ts"],"sourcesContent":["import { colors, ordered_colors } from \"@gradio/theme\";\n\nexport const get_next_color = (index: number): keyof typeof colors => {\n\treturn ordered_colors[index % ordered_colors.length];\n};\n"],"names":[],"mappings":"8CAEa,GAAiB,AAAC,GACvB,EAAe,EAAQ,EAAe"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/csv.27f5436c.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/csv.27f5436c.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ee090c69a9158e1331c5630c3dff9699534ab58
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/csv.27f5436c.js
@@ -0,0 +1,2 @@
+import{d as a}from"./dsv.7fe76a93.js";var s=a(","),v=s.parse,o=s.parseRows;export{v as a,o as c};
+//# sourceMappingURL=csv.27f5436c.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/csv.27f5436c.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/csv.27f5436c.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..a2fc13e7d828302e2d638bb4c4ef261c7c9670ec
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/csv.27f5436c.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"csv.27f5436c.js","sources":["../../../../ui/node_modules/.pnpm/d3-dsv@3.0.1/node_modules/d3-dsv/src/csv.js"],"sourcesContent":["import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n"],"names":["dsv"],"mappings":"sCAEA,GAAI,GAAMA,EAAI,GAAG,EAEN,EAAW,EAAI,MACf,EAAe,EAAI"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/dockerfile.088eba71.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/dockerfile.088eba71.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c4466ab9a87e5fe8865875adf758592dbfa167c
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/dockerfile.088eba71.js
@@ -0,0 +1,2 @@
+function c(n){a(n,"start");var t={},e=n.languageData||{},s=!1;for(var l in n)if(l!=e&&n.hasOwnProperty(l))for(var u=t[l]=[],o=n[l],r=0;r2&&o.token&&typeof o.token!="string"){e.pending=[];for(var g=2;g-1)return null;var l=e.indent.length-1,u=n[e.state];n:for(;;){for(var o=0;o 2 && rule.token && typeof rule.token != \"string\") {\n state.pending = [];\n for (var j = 2; j < matches.length; j++)\n if (matches[j])\n state.pending.push({text: matches[j], token: rule.token[j - 1]});\n stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));\n return token[0];\n } else if (token && token.join) {\n return token[0];\n } else {\n return token;\n }\n }\n }\n stream.next();\n return null;\n };\n}\n\nfunction indentFunction(states, meta) {\n return function(state, textAfter) {\n if (state.indent == null || meta.dontIndentStates && meta.doneIndentState.indexOf(state.state) > -1)\n return null\n\n var pos = state.indent.length - 1, rules = states[state.state];\n scan: for (;;) {\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {\n var m = rule.regex.exec(textAfter);\n if (m && m[0]) {\n pos--;\n if (rule.next || rule.push) rules = states[rule.next || rule.push];\n textAfter = textAfter.slice(m[0].length);\n continue scan;\n }\n }\n }\n break;\n }\n return pos < 0 ? 0 : state.indent[pos];\n };\n}\n","import {simpleMode} from \"./simple-mode.js\"\n\nvar from = \"from\";\nvar fromRegex = new RegExp(\"^(\\\\s*)\\\\b(\" + from + \")\\\\b\", \"i\");\n\nvar shells = [\"run\", \"cmd\", \"entrypoint\", \"shell\"];\nvar shellsAsArrayRegex = new RegExp(\"^(\\\\s*)(\" + shells.join('|') + \")(\\\\s+\\\\[)\", \"i\");\n\nvar expose = \"expose\";\nvar exposeRegex = new RegExp(\"^(\\\\s*)(\" + expose + \")(\\\\s+)\", \"i\");\n\nvar others = [\n \"arg\", \"from\", \"maintainer\", \"label\", \"env\",\n \"add\", \"copy\", \"volume\", \"user\",\n \"workdir\", \"onbuild\", \"stopsignal\", \"healthcheck\", \"shell\"\n];\n\n// Collect all Dockerfile directives\nvar instructions = [from, expose].concat(shells).concat(others),\n instructionRegex = \"(\" + instructions.join('|') + \")\",\n instructionOnlyLine = new RegExp(\"^(\\\\s*)\" + instructionRegex + \"(\\\\s*)(#.*)?$\", \"i\"),\n instructionWithArguments = new RegExp(\"^(\\\\s*)\" + instructionRegex + \"(\\\\s+)\", \"i\");\n\nexport const dockerFile = simpleMode({\n start: [\n // Block comment: This is a line starting with a comment\n {\n regex: /^\\s*#.*$/,\n sol: true,\n token: \"comment\"\n },\n {\n regex: fromRegex,\n token: [null, \"keyword\"],\n sol: true,\n next: \"from\"\n },\n // Highlight an instruction without any arguments (for convenience)\n {\n regex: instructionOnlyLine,\n token: [null, \"keyword\", null, \"error\"],\n sol: true\n },\n {\n regex: shellsAsArrayRegex,\n token: [null, \"keyword\", null],\n sol: true,\n next: \"array\"\n },\n {\n regex: exposeRegex,\n token: [null, \"keyword\", null],\n sol: true,\n next: \"expose\"\n },\n // Highlight an instruction followed by arguments\n {\n regex: instructionWithArguments,\n token: [null, \"keyword\", null],\n sol: true,\n next: \"arguments\"\n },\n {\n regex: /./,\n token: null\n }\n ],\n from: [\n {\n regex: /\\s*$/,\n token: null,\n next: \"start\"\n },\n {\n // Line comment without instruction arguments is an error\n regex: /(\\s*)(#.*)$/,\n token: [null, \"error\"],\n next: \"start\"\n },\n {\n regex: /(\\s*\\S+\\s+)(as)/i,\n token: [null, \"keyword\"],\n next: \"start\"\n },\n // Fail safe return to start\n {\n token: null,\n next: \"start\"\n }\n ],\n single: [\n {\n regex: /(?:[^\\\\']|\\\\.)/,\n token: \"string\"\n },\n {\n regex: /'/,\n token: \"string\",\n pop: true\n }\n ],\n double: [\n {\n regex: /(?:[^\\\\\"]|\\\\.)/,\n token: \"string\"\n },\n {\n regex: /\"/,\n token: \"string\",\n pop: true\n }\n ],\n array: [\n {\n regex: /\\]/,\n token: null,\n next: \"start\"\n },\n {\n regex: /\"(?:[^\\\\\"]|\\\\.)*\"?/,\n token: \"string\"\n }\n ],\n expose: [\n {\n regex: /\\d+$/,\n token: \"number\",\n next: \"start\"\n },\n {\n regex: /[^\\d]+$/,\n token: null,\n next: \"start\"\n },\n {\n regex: /\\d+/,\n token: \"number\"\n },\n {\n regex: /[^\\d]+/,\n token: null\n },\n // Fail safe return to start\n {\n token: null,\n next: \"start\"\n }\n ],\n arguments: [\n {\n regex: /^\\s*#.*$/,\n sol: true,\n token: \"comment\"\n },\n {\n regex: /\"(?:[^\\\\\"]|\\\\.)*\"?$/,\n token: \"string\",\n next: \"start\"\n },\n {\n regex: /\"/,\n token: \"string\",\n push: \"double\"\n },\n {\n regex: /'(?:[^\\\\']|\\\\.)*'?$/,\n token: \"string\",\n next: \"start\"\n },\n {\n regex: /'/,\n token: \"string\",\n push: \"single\"\n },\n {\n regex: /[^#\"']+[\\\\`]$/,\n token: null\n },\n {\n regex: /[^#\"']+$/,\n token: null,\n next: \"start\"\n },\n {\n regex: /[^#\"']+/,\n token: null\n },\n // Fail safe return to start\n {\n token: null,\n next: \"start\"\n }\n ],\n languageData: {\n commentTokens: {line: \"#\"}\n }\n});\n\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/dsv.7fe76a93.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/dsv.7fe76a93.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd7a34bfb56dda82dfbc84dbca32dfe81c5c5b4d
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/dsv.7fe76a93.js
@@ -0,0 +1,6 @@
+var D={},A={},E=34,m=10,R=13;function I(r){return new Function("d","return {"+r.map(function(t,e){return JSON.stringify(t)+": d["+e+'] || ""'}).join(",")+"}")}function B(r,t){var e=I(r);return function(a,c){return t(e(a),c,r)}}function F(r){var t=Object.create(null),e=[];return r.forEach(function(a){for(var c in a)c in t||e.push(t[c]=c)}),e}function f(r,t){var e=r+"",a=e.length;return a9999?"+"+f(r,6):f(r,4)}function S(r){var t=r.getUTCHours(),e=r.getUTCMinutes(),a=r.getUTCSeconds(),c=r.getUTCMilliseconds();return isNaN(r)?"Invalid Date":L(r.getUTCFullYear())+"-"+f(r.getUTCMonth()+1,2)+"-"+f(r.getUTCDate(),2)+(c?"T"+f(t,2)+":"+f(e,2)+":"+f(a,2)+"."+f(c,3)+"Z":a?"T"+f(t,2)+":"+f(e,2)+":"+f(a,2)+"Z":e||t?"T"+f(t,2)+":"+f(e,2)+"Z":"")}function Z(r){var t=new RegExp('["'+r+`
+\r]`),e=r.charCodeAt(0);function a(n,o){var s,i,u=c(n,function(h,l){if(s)return s(h,l-1);i=h,s=o?B(h,o):I(h)});return u.columns=i||[],u}function c(n,o){var s=[],i=n.length,u=0,h=0,l,v=i<=0,C=!1;n.charCodeAt(i-1)===m&&--i,n.charCodeAt(i-1)===R&&--i;function w(){if(v)return A;if(C)return C=!1,D;var j,d=u,p;if(n.charCodeAt(d)===E){for(;u++=i?v=!0:(p=n.charCodeAt(u++))===m?C=!0:p===R&&(C=!0,n.charCodeAt(u)===m&&++u),n.slice(d+1,j-1).replace(/""/g,'"')}for(;u 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/frontmatter.35a7ead5.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/frontmatter.35a7ead5.js
new file mode 100644
index 0000000000000000000000000000000000000000..65d2cfe0eab09d1cfac61f608f78f30da5f0713d
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/frontmatter.35a7ead5.js
@@ -0,0 +1,2 @@
+import{s as m,t as a,f as s,a as i,p,S as l}from"./index.6d4cf29b.js";import{yaml as f}from"./yaml.44f733df.js";import"./index.8bc3f3e8.js";import"./Blocks.721a001e.js";import"./Empty.svelte_svelte_type_style_lang.bc882d5f.js";import"./BlockLabel.353a84f3.js";import"./Empty.2aba5ba4.js";/* empty css */import"./Check.2e4ca81a.js";import"./Copy.81b6b893.js";import"./Download.db27fee4.js";const n=/^---\s*$/m,v={defineNodes:[{name:"Frontmatter",block:!0},"FrontmatterMark"],props:[m({Frontmatter:[a.documentMeta,a.monospace],FrontmatterMark:a.processingInstruction}),s.add({Frontmatter:i,FrontmatterMark:()=>null})],wrap:p(t=>{const{parser:e}=l.define(f);return t.type.name==="Frontmatter"?{parser:e,overlay:[{from:t.from+4,to:t.to-4}]}:null}),parseBlock:[{name:"Frontmatter",before:"HorizontalRule",parse:(t,e)=>{let r;const o=new Array;if(t.lineStart===0&&n.test(e.text)){for(o.push(t.elt("FrontmatterMark",0,4));t.nextLine();)if(n.test(e.text)){r=t.lineStart+4;break}return r!==void 0&&(o.push(t.elt("FrontmatterMark",r-4,r)),t.addElement(t.elt("Frontmatter",0,r,o))),!0}else return!1}}]};export{v as frontmatter};
+//# sourceMappingURL=frontmatter.35a7ead5.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/frontmatter.35a7ead5.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/frontmatter.35a7ead5.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..ae83e2a5f8dec6f57e08342c661d97ec20c9d5cb
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/frontmatter.35a7ead5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"frontmatter.35a7ead5.js","sources":["../../../../ui/packages/code/interactive/frontmatter.ts"],"sourcesContent":["import type {\n\tElement,\n\tMarkdownExtension,\n\tBlockContext,\n\tLine\n} from \"@lezer/markdown\";\nimport { parseMixed } from \"@lezer/common\";\nimport { yaml } from \"@codemirror/legacy-modes/mode/yaml\";\nimport { foldInside, foldNodeProp, StreamLanguage } from \"@codemirror/language\";\nimport { styleTags, tags } from \"@lezer/highlight\";\n\nconst frontMatterFence = /^---\\s*$/m;\n\nexport const frontmatter: MarkdownExtension = {\n\tdefineNodes: [{ name: \"Frontmatter\", block: true }, \"FrontmatterMark\"],\n\tprops: [\n\t\tstyleTags({\n\t\t\tFrontmatter: [tags.documentMeta, tags.monospace],\n\t\t\tFrontmatterMark: tags.processingInstruction\n\t\t}),\n\t\tfoldNodeProp.add({\n\t\t\tFrontmatter: foldInside,\n\t\t\tFrontmatterMark: () => null\n\t\t})\n\t],\n\twrap: parseMixed((node) => {\n\t\tconst { parser } = StreamLanguage.define(yaml);\n\t\tif (node.type.name === \"Frontmatter\") {\n\t\t\treturn {\n\t\t\t\tparser,\n\t\t\t\toverlay: [{ from: node.from + 4, to: node.to - 4 }]\n\t\t\t};\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}),\n\tparseBlock: [\n\t\t{\n\t\t\tname: \"Frontmatter\",\n\t\t\tbefore: \"HorizontalRule\",\n\t\t\tparse: (cx: BlockContext, line: Line): boolean => {\n\t\t\t\tlet end: number | undefined = undefined;\n\t\t\t\tconst children = new Array();\n\t\t\t\tif (cx.lineStart === 0 && frontMatterFence.test(line.text)) {\n\t\t\t\t\tchildren.push(cx.elt(\"FrontmatterMark\", 0, 4));\n\t\t\t\t\twhile (cx.nextLine()) {\n\t\t\t\t\t\tif (frontMatterFence.test(line.text)) {\n\t\t\t\t\t\t\tend = cx.lineStart + 4;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (end !== undefined) {\n\t\t\t\t\t\tchildren.push(cx.elt(\"FrontmatterMark\", end - 4, end));\n\t\t\t\t\t\tcx.addElement(cx.elt(\"Frontmatter\", 0, end, children));\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t]\n};\n"],"names":[],"mappings":"wbAWA,KAAM,GAAmB,YAEZ,EAAiC,CAC7C,YAAa,CAAC,CAAE,KAAM,cAAe,MAAO,IAAQ,iBAAiB,EACrE,MAAO,CACN,EAAU,CACT,YAAa,CAAC,EAAK,aAAc,EAAK,SAAS,EAC/C,gBAAiB,EAAK,sBACtB,EACD,EAAa,IAAI,CAChB,YAAa,EACb,gBAAiB,IAAM,KACvB,GAEF,KAAM,EAAW,AAAC,GAAS,MACpB,CAAE,UAAW,EAAe,OAAO,CAAI,QACzC,GAAK,KAAK,OAAS,cACf,CACN,SACA,QAAS,CAAC,CAAE,KAAM,EAAK,KAAO,EAAG,GAAI,EAAK,GAAK,EAAG,GAG5C,KAER,EACD,WAAY,CACX,CACC,KAAM,cACN,OAAQ,iBACR,MAAO,CAAC,EAAkB,IAAwB,IAC7C,QACE,GAAW,GAAI,UACjB,EAAG,YAAc,GAAK,EAAiB,KAAK,EAAK,IAAI,EAAG,OAClD,KAAK,EAAG,IAAI,kBAAmB,EAAG,CAAC,CAAC,EACtC,EAAG,eACL,EAAiB,KAAK,EAAK,IAAI,EAAG,GAC/B,EAAG,UAAY,cAInB,KAAQ,WACF,KAAK,EAAG,IAAI,kBAAmB,EAAM,EAAG,CAAG,CAAC,IAClD,WAAW,EAAG,IAAI,cAAe,EAAG,EAAK,CAAQ,CAAC,GAE/C,cAEA,KAKZ"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.005e6c3c.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.005e6c3c.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad4c3574c8039a97a74f1c8fb4904cc052fa660b
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.005e6c3c.js
@@ -0,0 +1,2 @@
+import{S as H,i as I,s as J,F as R,G as S,H as M,B as k,O as B,f as w,D as v,I as T,J as z,p as y,a2 as A,c as j,m as q,y as K,ao as L,o as C,t as D,l as O,q as N,v as P,a7 as Q,b as U,a as V,g as W,h as X,j as Y,x as E}from"./index.8bc3f3e8.js";/* empty css */import{g as Z,a as p}from"./Empty.svelte_svelte_type_style_lang.bc882d5f.js";/* empty css */import{B as x}from"./BlockTitle.8df62d03.js";import"./Info.c3b929b0.js";function F(s,e,a){const l=s.slice();return l[13]=e[a],l[15]=a,l}function $(s){let e;return{c(){e=M(s[3])},m(a,l){w(a,e,l)},p(a,l){l&8&&z(e,a[3])},d(a){a&&y(e)}}}function G(s,e){let a,l,i,_,d,c,m=e[13]+"",n,t,f,r;function b(){return e[12](e[13],e[15])}return{key:s,first:null,c(){a=R("label"),l=R("input"),d=S(),c=R("span"),n=M(m),t=S(),l.disabled=e[2],k(l,"type","radio"),k(l,"name",i="radio-"+e[6]),l.__value=_=e[13],l.value=l.__value,k(l,"class","svelte-1p9xokt"),e[11][0].push(l),k(c,"class","ml-2 svelte-1p9xokt"),k(a,"style",e[7]),k(a,"class","svelte-1p9xokt"),B(a,"disabled",e[2]),B(a,"selected",e[0]===e[13]),this.first=a},m(g,h){w(g,a,h),v(a,l),l.checked=l.__value===e[0],v(a,d),v(a,c),v(c,n),v(a,t),f||(r=[T(l,"change",e[10]),T(l,"input",b)],f=!0)},p(g,h){e=g,h&4&&(l.disabled=e[2]),h&64&&i!==(i="radio-"+e[6])&&k(l,"name",i),h&2&&_!==(_=e[13])&&(l.__value=_,l.value=l.__value),h&1&&(l.checked=l.__value===e[0]),h&2&&m!==(m=e[13]+"")&&z(n,m),h&128&&k(a,"style",e[7]),h&4&&B(a,"disabled",e[2]),h&3&&B(a,"selected",e[0]===e[13])},d(g){g&&y(a),e[11][0].splice(e[11][0].indexOf(l),1),f=!1,A(r)}}}function ee(s){let e,a,l,i=[],_=new Map,d;e=new x({props:{show_label:s[5],info:s[4],$$slots:{default:[$]},$$scope:{ctx:s}}});let c=s[1];const m=n=>n[15];for(let n=0;nr("select",{value:u,index:o});return s.$$set=u=>{"value"in u&&a(0,i=u.value),"style"in u&&a(9,_=u.style),"choices"in u&&a(1,d=u.choices),"disabled"in u&&a(2,c=u.disabled),"label"in u&&a(3,m=u.label),"info"in u&&a(4,n=u.info),"show_label"in u&&a(5,t=u.show_label),"elem_id"in u&&a(6,f=u.elem_id)},s.$$.update=()=>{s.$$.dirty&1&&r("change",i),s.$$.dirty&512&&a(7,{item_container:l}=Z(_,["item_container"]),l)},[i,d,c,m,n,t,f,l,r,_,g,b,h]}class ae extends H{constructor(e){super(),I(this,e,le,ee,J,{value:0,style:9,choices:1,disabled:2,label:3,info:4,show_label:5,elem_id:6})}}function te(s){let e,a,l,i,_;const d=[s[10]];let c={};for(let t=0;tV(l,"value",m)),l.$on("change",s[12]),l.$on("select",s[13]),{c(){j(e.$$.fragment),a=S(),j(l.$$.fragment)},m(t,f){q(e,t,f),w(t,a,f),q(l,t,f),_=!0},p(t,f){const r=f&1024?W(d,[X(t[10])]):{};e.$set(r);const b={};f&2&&(b.label=t[1]),f&4&&(b.info=t[2]),f&8&&(b.elem_id=t[3]),f&256&&(b.show_label=t[8]),f&64&&(b.choices=t[6]),f&512&&(b.style=t[9]),f&128&&(b.disabled=t[7]==="static"),!i&&f&1&&(i=!0,b.value=t[0],Y(()=>i=!1)),l.$set(b)},i(t){_||(C(e.$$.fragment,t),C(l.$$.fragment,t),_=!0)},o(t){D(e.$$.fragment,t),D(l.$$.fragment,t),_=!1},d(t){O(e,t),t&&y(a),O(l,t)}}}function se(s){let e,a;return e=new p({props:{visible:s[5],type:"fieldset",elem_id:s[3],elem_classes:s[4],disable:typeof s[9].container=="boolean"&&!s[9].container,$$slots:{default:[te]},$$scope:{ctx:s}}}),{c(){j(e.$$.fragment)},m(l,i){q(e,l,i),a=!0},p(l,[i]){const _={};i&32&&(_.visible=l[5]),i&8&&(_.elem_id=l[3]),i&16&&(_.elem_classes=l[4]),i&512&&(_.disable=typeof l[9].container=="boolean"&&!l[9].container),i&18383&&(_.$$scope={dirty:i,ctx:l}),e.$set(_)},i(l){a||(C(e.$$.fragment,l),a=!0)},o(l){D(e.$$.fragment,l),a=!1},d(l){O(e,l)}}}function ne(s,e,a){let{label:l="Radio"}=e,{info:i=void 0}=e,{elem_id:_=""}=e,{elem_classes:d=[]}=e,{visible:c=!0}=e,{value:m=null}=e,{choices:n=[]}=e,{mode:t}=e,{show_label:f}=e,{style:r={}}=e,{loading_status:b}=e;function g(o){m=o,a(0,m)}function h(o){E.call(this,s,o)}function u(o){E.call(this,s,o)}return s.$$set=o=>{"label"in o&&a(1,l=o.label),"info"in o&&a(2,i=o.info),"elem_id"in o&&a(3,_=o.elem_id),"elem_classes"in o&&a(4,d=o.elem_classes),"visible"in o&&a(5,c=o.visible),"value"in o&&a(0,m=o.value),"choices"in o&&a(6,n=o.choices),"mode"in o&&a(7,t=o.mode),"show_label"in o&&a(8,f=o.show_label),"style"in o&&a(9,r=o.style),"loading_status"in o&&a(10,b=o.loading_status)},[m,l,i,_,d,c,n,t,f,r,b,g,h,u]}class ie extends H{constructor(e){super(),I(this,e,ne,se,J,{label:1,info:2,elem_id:3,elem_classes:4,visible:5,value:0,choices:6,mode:7,show_label:8,style:9,loading_status:10})}}var me=ie;const be=["static","dynamic"],he=s=>({type:{payload:"string"},description:{payload:"selected choice"},example_data:s.choices.length>1?s.choices[0]:""});export{me as Component,he as document,be as modes};
+//# sourceMappingURL=index.005e6c3c.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.005e6c3c.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.005e6c3c.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..bd20ce35a213f68febfab596f862a441f689c68d
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.005e6c3c.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.005e6c3c.js","sources":["../../../../ui/packages/form/src/Radio.svelte","../../../../ui/packages/app/src/components/Radio/Radio.svelte","../../../../ui/packages/app/src/components/Radio/index.ts"],"sourcesContent":["\n\n{label}\n\n
\n\t{#each choices as choice, i (i)}\n\t\t\n\t{/each}\n
\n\n\n","\n\n\n\t\n\n\t\n\n","export { default as Component } from \"./Radio.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: {\n\t\tpayload: \"string\"\n\t},\n\tdescription: {\n\t\tpayload: \"selected choice\"\n\t},\n\texample_data: config.choices.length > 1 ? config.choices[0] : \"\"\n});\n"],"names":[],"mappings":"gnBAyBiC,wCAAA,wDAiBV,uMAHN,kBACN,sHARD,wEADS,OAAU,4BAF3B,SAKC,6BAEa,YAMb,+HAHc,iCACN,oEAJK,kBAMO,qCAVb,oDADS,OAAU,2MAHrB,gBAAsB,sBAA3B,uMADH,qLACQ,qMAtBI,YACA,eACA,cACA,WAAoB,OACpB,YACA,OAA2B,WAC3B,aAAsB,OACtB,kBAEL,GAAW,wBAqBF,qCACI,EAAS,UAAY,MAAO,EAAQ,MAAO,6SAjB3D,EAAS,SAAU,CAAK,uBAErB,kBAAmB,EAAW,GAAQ,gBAAgB,mNCKzC,4LAUR,OAAS,6PAVD,yLAUR,OAAS,0TAZJ,MAAM,WAAc,YAAc,KAAM,sNAAxC,MAAM,WAAc,YAAc,KAAM,iKAlB7C,QAAgB,YAChB,OAA2B,WAC3B,UAAkB,OAClB,sBACA,UAAmB,OACnB,QAAuB,SACvB,iBACA,WACA,iBACA,eACA,osBChBC,IAAQ,CAAC,SAAU,SAAS,EAE5B,GAAW,AAAC,KACxB,KAAM,CACL,QAAS,UAEV,YAAa,CACZ,QAAS,mBAEV,aAAc,EAAO,QAAQ,OAAS,EAAI,EAAO,QAAQ,GAAK,EAC/D"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.00ec9920.css b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.00ec9920.css
new file mode 100644
index 0000000000000000000000000000000000000000..15c9d289c09b6f2581d92648fe1acdaebd8776fd
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.00ec9920.css
@@ -0,0 +1 @@
+.model3D.svelte-14ct53h{display:flex;position:relative;width:var(--size-full);height:var(--size-full)}canvas.svelte-14ct53h{width:var(--size-full);height:var(--size-full);object-fit:contain}.download.svelte-14ct53h{position:absolute;top:6px;right:6px}.input-model.svelte-wn75i6{display:flex;position:relative;justify-content:center;align-items:center;width:var(--size-full);height:var(--size-64)}canvas.svelte-wn75i6{width:var(--size-full);height:var(--size-full);object-fit:contain}
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0640fef3.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0640fef3.js
new file mode 100644
index 0000000000000000000000000000000000000000..d781830028bd52441e8da3e74f109f0439237570
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0640fef3.js
@@ -0,0 +1,2 @@
+import{P as $,N as j,c as R,D as G,e as T,T as x,I as E}from"./index.6d4cf29b.js";class S{constructor(t,e,s,i,h,r,n,a,l,u=0,f){this.p=t,this.stack=e,this.state=s,this.reducePos=i,this.pos=h,this.score=r,this.buffer=n,this.bufferBase=a,this.curContext=l,this.lookAhead=u,this.parent=f}toString(){return`[${this.stack.filter((t,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,s=0){let i=t.parser.context;return new S(t,[],e,s,s,0,[],0,i?new y(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){let e=t>>19,s=t&65535,{parser:i}=this.p,h=i.dynamicPrecedence(s);if(h&&(this.score+=h),e==0){this.pushState(i.getGoto(this.state,s,!0),this.reducePos),sr;)this.stack.pop();this.reduceContext(s,n)}storeNode(t,e,s,i=4,h=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&r.buffer[n-4]==0&&r.buffer[n-1]>-1){if(e==s)return;if(r.buffer[n-2]>=e){r.buffer[n-2]=s;return}}}if(!h||this.pos==s)this.buffer.push(t,e,s,i);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0)for(;r>0&&this.buffer[r-2]>s;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,i>4&&(i-=4);this.buffer[r]=t,this.buffer[r+1]=e,this.buffer[r+2]=s,this.buffer[r+3]=i}}shift(t,e,s){let i=this.pos;if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let h=t,{parser:r}=this.p;(s>this.pos||e<=r.maxNode)&&(this.pos=s,r.stateFlag(h,1)||(this.reducePos=s)),this.pushState(h,i),this.shiftContext(e,i),e<=r.maxNode&&this.buffer.push(e,i,s,4)}else this.pos=s,this.shiftContext(e,i),e<=this.p.parser.maxNode&&this.buffer.push(e,i,s,4)}apply(t,e,s){t&65536?this.reduce(t):this.shift(t,e,s)}useNode(t,e){let s=this.p.reused.length-1;(s<0||this.p.reused[s]!=t)&&(this.p.reused.push(t),s++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(e,i),this.buffer.push(s,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,e=t.buffer.length;for(;e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let s=t.buffer.slice(e),i=t.bufferBase+e;for(;t&&i==t.bufferBase;)t=t.parent;return new S(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,s,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let s=t<=this.p.parser.maxNode;s&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,s?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new U(this);;){let s=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if((s&65536)==0)return!0;if(s==0)return!1;e.reduce(s)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>4<<1||this.stack.length>=120){let i=[];for(let h=0,r;ha&1&&n==r)||i.push(e[h],r)}e=i}let s=[];for(let i=0;i>19,i=t&65535,h=this.stack.length-s*3;if(h<0||e.getGoto(this.stack[h],i,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;ethis.lookAhead&&(this.emitLookAhead(),this.lookAhead=t)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class y{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}}var N;(function(o){o[o.Insert=200]="Insert",o[o.Delete=190]="Delete",o[o.Reduce=100]="Reduce",o[o.MaxNext=4]="MaxNext",o[o.MaxInsertStackDepth=300]="MaxInsertStackDepth",o[o.DampenInsertStackDepth=120]="DampenInsertStackDepth"})(N||(N={}));class U{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=t&65535,s=t>>19;s==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(s-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=i}}class A{constructor(t,e,s){this.stack=t,this.pos=e,this.index=s,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new A(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new A(this.stack,this.pos,this.index)}}class b{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const D=new b;class H{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=D,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let s=this.range,i=this.rangeIndex,h=this.pos+t;for(;hs.to:h>=s.to;){if(i==this.ranges.length-1)return null;let r=this.ranges[++i];h+=r.from-s.to,s=r}return h}clipPos(t){if(t>=this.range.from&&tt)return Math.max(t,e.from);return this.end}peek(t){let e=this.chunkOff+t,s,i;if(e>=0&&e=this.chunk2Pos&&sn.to&&(this.chunk2=this.chunk2.slice(0,n.to-s)),i=this.chunk2.charCodeAt(0)}}return s>=this.token.lookAhead&&(this.token.lookAhead=s+1),i}acceptToken(t,e=0){let s=e?this.resolveOffset(e,-1):this.pos;if(s==null||s=this.chunk2Pos&&this.posthis.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=D,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let s="";for(let i of this.ranges){if(i.from>=e)break;i.to>t&&(s+=this.input.read(Math.max(i.from,t),Math.min(i.to,e)))}return s}}class P{constructor(t,e){this.data=t,this.id=e}token(t,e){W(this.data,t,e,this.id)}}P.prototype.contextual=P.prototype.fallback=P.prototype.extend=!1;class Y{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}}function W(o,t,e,s){let i=0,h=1<0){let p=o[c];if(n.allows(p)&&(t.token.value==-1||t.token.value==p||r.overrides(p,t.token.value))){t.acceptToken(p);break}}let l=t.next,u=0,f=o[i+2];if(t.next<0&&f>u&&o[a+f*3-3]==65535&&o[a+f*3-3]==65535){i=o[a+f*3-1];continue t}for(;u>1,p=a+c+(c<<1),g=o[p],L=o[p+1]||65536;if(l=L)u=c+1;else{i=o[p+2],t.advance();continue t}}break}}function m(o,t=Uint16Array){if(typeof o!="string")return o;let e=null;for(let s=0,i=0;s=92&&r--,r>=34&&r--;let a=r-32;if(a>=46&&(a-=46,n=!0),h+=a,n)break;h*=46}e?e[i++]=h:e=new t(h)}return e}const d=typeof process<"u"&&process.env&&/\bparse\b/.test({}.LOG);let C=null;var I;(function(o){o[o.Margin=25]="Margin"})(I||(I={}));function z(o,t,e){let s=o.cursor(E.IncludeAnonymous);for(s.moveTo(t);;)if(!(e<0?s.childBefore(t):s.childAfter(t)))for(;;){if((e<0?s.tot)&&!s.type.isError)return e<0?Math.max(0,Math.min(s.to-1,t-25)):Math.min(o.length,Math.max(s.from+1,t+25));if(e<0?s.prevSibling():s.nextSibling())break;if(!s.parent())return e<0?0:o.length}}class q{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?z(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?z(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(tt)return this.nextStart=r,null;if(h instanceof x){if(r==t){if(r=Math.max(this.safeFrom,t)&&(this.trees.push(h),this.start.push(r),this.index.push(0))}else this.index[e]++,this.nextStart=r+h.length}}}class J{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(s=>new b)}getActions(t){let e=0,s=null,{parser:i}=t.p,{tokenizers:h}=i,r=i.stateSlot(t.state,3),n=t.curContext?t.curContext.hash:0,a=0;for(let l=0;lf.end+25&&(a=Math.max(f.lookAhead,a)),f.value!=0)){let c=e;if(f.extended>-1&&(e=this.addActions(t,f.extended,f.end,e)),e=this.addActions(t,f.value,f.end,e),!u.extend&&(s=f,e>c))break}}for(;this.actions.length>e;)this.actions.pop();return a&&t.setLookAhead(a),!s&&t.pos==this.stream.end&&(s=new b,s.value=t.p.parser.eofTerm,s.start=s.end=t.pos,e=this.addActions(t,s.value,s.end,e)),this.mainToken=s,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new b,{pos:s,p:i}=t;return e.start=s,e.end=Math.min(s+1,i.stream.end),e.value=s==i.stream.end?i.parser.eofTerm:0,e}updateCachedToken(t,e,s){let i=this.stream.clipPos(s.pos);if(e.token(this.stream.reset(i,t),s),t.value>-1){let{parser:h}=s.p;for(let r=0;r=0&&s.p.parser.dialect.allows(n>>1)){(n&1)==0?t.value=n>>1:t.extended=n>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,e,s,i){for(let h=0;ht.bufferLength*4?new q(s,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,e=this.minStackPos,s=this.stacks=[],i,h;for(let r=0;re)s.push(n);else{if(this.advanceStack(n,s,t))continue;{i||(i=[],h=[]),i.push(n);let a=this.tokens.getMainToken(n);h.push(a.value,a.end)}}break}}if(!s.length){let r=i&&V(i);if(r)return this.stackToTree(r);if(this.parser.strict)throw d&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&i){let r=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,h,s);if(r)return this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(s.length>r)for(s.sort((n,a)=>a.score-n.score);s.length>r;)s.pop();s.some(n=>n.reducePos>e)&&this.recovering--}else if(s.length>1){t:for(let r=0;r500&&l.buffer.length>500)if((n.score-l.score||n.buffer.length-l.buffer.length)>0)s.splice(a--,1);else{s.splice(r--,1);continue t}}}}this.minStackPos=s[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let l=t.curContext&&t.curContext.tracker.strict,u=l?t.curContext.hash:0;for(let f=this.fragments.nodeAt(i);f;){let c=this.parser.nodeSet.types[f.type.id]==f.type?h.getGoto(t.state,f.type.id):-1;if(c>-1&&f.length&&(!l||(f.prop(T.contextHash)||0)==u))return t.useNode(f,c),d&&console.log(r+this.stackID(t)+` (via reuse of ${h.getName(f.type.id)})`),!0;if(!(f instanceof x)||f.children.length==0||f.positions[0]>0)break;let p=f.children[0];if(p instanceof x&&f.positions[0]==0)f=p;else break}}let n=h.stateSlot(t.state,4);if(n>0)return t.reduce(n),d&&console.log(r+this.stackID(t)+` (via always-reduce ${h.getName(n&65535)})`),!0;if(t.stack.length>=15e3)for(;t.stack.length>9e3&&t.forceReduce(););let a=this.tokens.getActions(t);for(let l=0;li?e.push(g):s.push(g)}return!1}advanceFully(t,e){let s=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>s)return O(t,e),!0}}runRecovery(t,e,s){let i=null,h=!1;for(let r=0;r ":"";if(n.deadEnd&&(h||(h=!0,n.restart(),d&&console.log(u+this.stackID(n)+" (restarted)"),this.advanceFully(n,s))))continue;let f=n.split(),c=u;for(let p=0;f.forceReduce()&&p<10&&(d&&console.log(c+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,s));p++)d&&(c=this.stackID(f)+" -> ");for(let p of n.recoverByInsert(a))d&&console.log(u+this.stackID(p)+" (via recover-insert)"),this.advanceFully(p,s);this.stream.end>n.pos?(l==n.pos&&(l++,a=0),n.recoverByDelete(a,l),d&&console.log(u+this.stackID(n)+` (via recover-delete ${this.parser.getName(a)})`),O(n,s)):(!i||i.scoreo;class Z{constructor(t){this.start=t.start,this.shift=t.shift||v,this.reduce=t.reduce||v,this.reuse=t.reuse||v,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}}class w extends ${constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (${14})`);let e=t.nodeNames.split(" ");this.minRepeatTerm=e.length;for(let n=0;nt.topRules[n][1]),i=[];for(let n=0;n=0)h(u,a,n[l++]);else{let f=n[l+-u];for(let c=-u;c>0;c--)h(n[l++],a,f);l++}}}this.nodeSet=new j(e.map((n,a)=>R.define({name:a>=this.minRepeatTerm?void 0:n,id:a,props:i[a],top:s.indexOf(a)>-1,error:a==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(a)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=G;let r=m(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let n=0;ntypeof n=="number"?new P(r,n):n),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,s){let i=new K(this,t,e,s);for(let h of this.wrappers)i=h(i,t,e,s);return i}getGoto(t,e,s=!1){let i=this.goto;if(e>=i[0])return-1;for(let h=i[e+1];;){let r=i[h++],n=r&1,a=i[h++];if(n&&s)return a;for(let l=h+(r>>1);h0}validAction(t,e){if(e==this.stateSlot(t,4))return!0;for(let s=this.stateSlot(t,1);;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=k(this.data,s+2);else return!1;if(e==k(this.data,s+1))return!0}}nextStates(t){let e=[];for(let s=this.stateSlot(t,1);;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=k(this.data,s+2);else break;if((this.data[s+2]&1)==0){let i=this.data[s+1];e.some((h,r)=>r&1&&h==i)||e.push(this.data[s],i)}}return e}overrides(t,e){let s=B(this.data,this.tokenPrecTable,e);return s<0||B(this.data,this.tokenPrecTable,t){let i=t.tokenizers.find(h=>h.from==s);return i?i.to:s})),t.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map((s,i)=>{let h=t.specializers.find(n=>n.from==s.external);if(!h)return s;let r=Object.assign(Object.assign({},s),{external:h.to});return e.specializers[i]=F(r),r})),t.contextTracker&&(e.context=t.contextTracker),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(e.strict=t.strict),t.wrap&&(e.wrappers=e.wrappers.concat(t.wrap)),t.bufferLength!=null&&(e.bufferLength=t.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return e==null?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),s=e.map(()=>!1);if(t)for(let h of t.split(" ")){let r=e.indexOf(h);r>=0&&(s[r]=!0)}let i=null;for(let h=0;hs)&&e.p.parser.stateFlag(e.state,2)&&(!t||t.scoreo.external(e,s)<<1|t}return o.get}export{Z as C,Y as E,w as L};
+//# sourceMappingURL=index.0640fef3.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0640fef3.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0640fef3.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..de16fa81aabe59f8a97256945421441eb09e8659
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0640fef3.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.0640fef3.js","sources":["../../../../ui/node_modules/.pnpm/@lezer+lr@1.2.4/node_modules/@lezer/lr/dist/index.js"],"sourcesContent":["import { Parser, NodeSet, NodeType, DefaultBufferLength, NodeProp, Tree, IterMode } from '@lezer/common';\n\n/// A parse stack. These are used internally by the parser to track\n/// parsing progress. They also provide some properties and methods\n/// that external code such as a tokenizer can use to get information\n/// about the parse state.\nclass Stack {\n /// @internal\n constructor(\n /// The parse that this stack is part of @internal\n p, \n /// Holds state, input pos, buffer index triplets for all but the\n /// top state @internal\n stack, \n /// The current parse state @internal\n state, \n // The position at which the next reduce should take place. This\n // can be less than `this.pos` when skipped expressions have been\n // added to the stack (which should be moved outside of the next\n // reduction)\n /// @internal\n reducePos, \n /// The input position up to which this stack has parsed.\n pos, \n /// The dynamic score of the stack, including dynamic precedence\n /// and error-recovery penalties\n /// @internal\n score, \n // The output buffer. Holds (type, start, end, size) quads\n // representing nodes created by the parser, where `size` is\n // amount of buffer array entries covered by this node.\n /// @internal\n buffer, \n // The base offset of the buffer. When stacks are split, the split\n // instance shared the buffer history with its parent up to\n // `bufferBase`, which is the absolute offset (including the\n // offset of previous splits) into the buffer at which this stack\n // starts writing.\n /// @internal\n bufferBase, \n /// @internal\n curContext, \n /// @internal\n lookAhead = 0, \n // A parent stack from which this was split off, if any. This is\n // set up so that it always points to a stack that has some\n // additional buffer content, never to a stack with an equal\n // `bufferBase`.\n /// @internal\n parent) {\n this.p = p;\n this.stack = stack;\n this.state = state;\n this.reducePos = reducePos;\n this.pos = pos;\n this.score = score;\n this.buffer = buffer;\n this.bufferBase = bufferBase;\n this.curContext = curContext;\n this.lookAhead = lookAhead;\n this.parent = parent;\n }\n /// @internal\n toString() {\n return `[${this.stack.filter((_, i) => i % 3 == 0).concat(this.state)}]@${this.pos}${this.score ? \"!\" + this.score : \"\"}`;\n }\n // Start an empty stack\n /// @internal\n static start(p, state, pos = 0) {\n let cx = p.parser.context;\n return new Stack(p, [], state, pos, pos, 0, [], 0, cx ? new StackContext(cx, cx.start) : null, 0, null);\n }\n /// The stack's current [context](#lr.ContextTracker) value, if\n /// any. Its type will depend on the context tracker's type\n /// parameter, or it will be `null` if there is no context\n /// tracker.\n get context() { return this.curContext ? this.curContext.context : null; }\n // Push a state onto the stack, tracking its start position as well\n // as the buffer base at that point.\n /// @internal\n pushState(state, start) {\n this.stack.push(this.state, start, this.bufferBase + this.buffer.length);\n this.state = state;\n }\n // Apply a reduce action\n /// @internal\n reduce(action) {\n let depth = action >> 19 /* ReduceDepthShift */, type = action & 65535 /* ValueMask */;\n let { parser } = this.p;\n let dPrec = parser.dynamicPrecedence(type);\n if (dPrec)\n this.score += dPrec;\n if (depth == 0) {\n this.pushState(parser.getGoto(this.state, type, true), this.reducePos);\n // Zero-depth reductions are a special case—they add stuff to\n // the stack without popping anything off.\n if (type < parser.minRepeatTerm)\n this.storeNode(type, this.reducePos, this.reducePos, 4, true);\n this.reduceContext(type, this.reducePos);\n return;\n }\n // Find the base index into `this.stack`, content after which will\n // be dropped. Note that with `StayFlag` reductions we need to\n // consume two extra frames (the dummy parent node for the skipped\n // expression and the state that we'll be staying in, which should\n // be moved to `this.state`).\n let base = this.stack.length - ((depth - 1) * 3) - (action & 262144 /* StayFlag */ ? 6 : 0);\n let start = this.stack[base - 2];\n let bufferBase = this.stack[base - 1], count = this.bufferBase + this.buffer.length - bufferBase;\n // Store normal terms or `R -> R R` repeat reductions\n if (type < parser.minRepeatTerm || (action & 131072 /* RepeatFlag */)) {\n let pos = parser.stateFlag(this.state, 1 /* Skipped */) ? this.pos : this.reducePos;\n this.storeNode(type, start, pos, count + 4, true);\n }\n if (action & 262144 /* StayFlag */) {\n this.state = this.stack[base];\n }\n else {\n let baseStateID = this.stack[base - 3];\n this.state = parser.getGoto(baseStateID, type, true);\n }\n while (this.stack.length > base)\n this.stack.pop();\n this.reduceContext(type, start);\n }\n // Shift a value into the buffer\n /// @internal\n storeNode(term, start, end, size = 4, isReduce = false) {\n if (term == 0 /* Err */ &&\n (!this.stack.length || this.stack[this.stack.length - 1] < this.buffer.length + this.bufferBase)) {\n // Try to omit/merge adjacent error nodes\n let cur = this, top = this.buffer.length;\n if (top == 0 && cur.parent) {\n top = cur.bufferBase - cur.parent.bufferBase;\n cur = cur.parent;\n }\n if (top > 0 && cur.buffer[top - 4] == 0 /* Err */ && cur.buffer[top - 1] > -1) {\n if (start == end)\n return;\n if (cur.buffer[top - 2] >= start) {\n cur.buffer[top - 2] = end;\n return;\n }\n }\n }\n if (!isReduce || this.pos == end) { // Simple case, just append\n this.buffer.push(term, start, end, size);\n }\n else { // There may be skipped nodes that have to be moved forward\n let index = this.buffer.length;\n if (index > 0 && this.buffer[index - 4] != 0 /* Err */)\n while (index > 0 && this.buffer[index - 2] > end) {\n // Move this record forward\n this.buffer[index] = this.buffer[index - 4];\n this.buffer[index + 1] = this.buffer[index - 3];\n this.buffer[index + 2] = this.buffer[index - 2];\n this.buffer[index + 3] = this.buffer[index - 1];\n index -= 4;\n if (size > 4)\n size -= 4;\n }\n this.buffer[index] = term;\n this.buffer[index + 1] = start;\n this.buffer[index + 2] = end;\n this.buffer[index + 3] = size;\n }\n }\n // Apply a shift action\n /// @internal\n shift(action, next, nextEnd) {\n let start = this.pos;\n if (action & 131072 /* GotoFlag */) {\n this.pushState(action & 65535 /* ValueMask */, this.pos);\n }\n else if ((action & 262144 /* StayFlag */) == 0) { // Regular shift\n let nextState = action, { parser } = this.p;\n if (nextEnd > this.pos || next <= parser.maxNode) {\n this.pos = nextEnd;\n if (!parser.stateFlag(nextState, 1 /* Skipped */))\n this.reducePos = nextEnd;\n }\n this.pushState(nextState, start);\n this.shiftContext(next, start);\n if (next <= parser.maxNode)\n this.buffer.push(next, start, nextEnd, 4);\n }\n else { // Shift-and-stay, which means this is a skipped token\n this.pos = nextEnd;\n this.shiftContext(next, start);\n if (next <= this.p.parser.maxNode)\n this.buffer.push(next, start, nextEnd, 4);\n }\n }\n // Apply an action\n /// @internal\n apply(action, next, nextEnd) {\n if (action & 65536 /* ReduceFlag */)\n this.reduce(action);\n else\n this.shift(action, next, nextEnd);\n }\n // Add a prebuilt (reused) node into the buffer.\n /// @internal\n useNode(value, next) {\n let index = this.p.reused.length - 1;\n if (index < 0 || this.p.reused[index] != value) {\n this.p.reused.push(value);\n index++;\n }\n let start = this.pos;\n this.reducePos = this.pos = start + value.length;\n this.pushState(next, start);\n this.buffer.push(index, start, this.reducePos, -1 /* size == -1 means this is a reused value */);\n if (this.curContext)\n this.updateContext(this.curContext.tracker.reuse(this.curContext.context, value, this, this.p.stream.reset(this.pos - value.length)));\n }\n // Split the stack. Due to the buffer sharing and the fact\n // that `this.stack` tends to stay quite shallow, this isn't very\n // expensive.\n /// @internal\n split() {\n let parent = this;\n let off = parent.buffer.length;\n // Because the top of the buffer (after this.pos) may be mutated\n // to reorder reductions and skipped tokens, and shared buffers\n // should be immutable, this copies any outstanding skipped tokens\n // to the new buffer, and puts the base pointer before them.\n while (off > 0 && parent.buffer[off - 2] > parent.reducePos)\n off -= 4;\n let buffer = parent.buffer.slice(off), base = parent.bufferBase + off;\n // Make sure parent points to an actual parent with content, if there is such a parent.\n while (parent && base == parent.bufferBase)\n parent = parent.parent;\n return new Stack(this.p, this.stack.slice(), this.state, this.reducePos, this.pos, this.score, buffer, base, this.curContext, this.lookAhead, parent);\n }\n // Try to recover from an error by 'deleting' (ignoring) one token.\n /// @internal\n recoverByDelete(next, nextEnd) {\n let isNode = next <= this.p.parser.maxNode;\n if (isNode)\n this.storeNode(next, this.pos, nextEnd, 4);\n this.storeNode(0 /* Err */, this.pos, nextEnd, isNode ? 8 : 4);\n this.pos = this.reducePos = nextEnd;\n this.score -= 190 /* Delete */;\n }\n /// Check if the given term would be able to be shifted (optionally\n /// after some reductions) on this stack. This can be useful for\n /// external tokenizers that want to make sure they only provide a\n /// given token when it applies.\n canShift(term) {\n for (let sim = new SimulatedStack(this);;) {\n let action = this.p.parser.stateSlot(sim.state, 4 /* DefaultReduce */) || this.p.parser.hasAction(sim.state, term);\n if ((action & 65536 /* ReduceFlag */) == 0)\n return true;\n if (action == 0)\n return false;\n sim.reduce(action);\n }\n }\n // Apply up to Recover.MaxNext recovery actions that conceptually\n // inserts some missing token or rule.\n /// @internal\n recoverByInsert(next) {\n if (this.stack.length >= 300 /* MaxInsertStackDepth */)\n return [];\n let nextStates = this.p.parser.nextStates(this.state);\n if (nextStates.length > 4 /* MaxNext */ << 1 || this.stack.length >= 120 /* DampenInsertStackDepth */) {\n let best = [];\n for (let i = 0, s; i < nextStates.length; i += 2) {\n if ((s = nextStates[i + 1]) != this.state && this.p.parser.hasAction(s, next))\n best.push(nextStates[i], s);\n }\n if (this.stack.length < 120 /* DampenInsertStackDepth */)\n for (let i = 0; best.length < 4 /* MaxNext */ << 1 && i < nextStates.length; i += 2) {\n let s = nextStates[i + 1];\n if (!best.some((v, i) => (i & 1) && v == s))\n best.push(nextStates[i], s);\n }\n nextStates = best;\n }\n let result = [];\n for (let i = 0; i < nextStates.length && result.length < 4 /* MaxNext */; i += 2) {\n let s = nextStates[i + 1];\n if (s == this.state)\n continue;\n let stack = this.split();\n stack.pushState(s, this.pos);\n stack.storeNode(0 /* Err */, stack.pos, stack.pos, 4, true);\n stack.shiftContext(nextStates[i], this.pos);\n stack.score -= 200 /* Insert */;\n result.push(stack);\n }\n return result;\n }\n // Force a reduce, if possible. Return false if that can't\n // be done.\n /// @internal\n forceReduce() {\n let reduce = this.p.parser.stateSlot(this.state, 5 /* ForcedReduce */);\n if ((reduce & 65536 /* ReduceFlag */) == 0)\n return false;\n let { parser } = this.p;\n if (!parser.validAction(this.state, reduce)) {\n let depth = reduce >> 19 /* ReduceDepthShift */, term = reduce & 65535 /* ValueMask */;\n let target = this.stack.length - depth * 3;\n if (target < 0 || parser.getGoto(this.stack[target], term, false) < 0)\n return false;\n this.storeNode(0 /* Err */, this.reducePos, this.reducePos, 4, true);\n this.score -= 100 /* Reduce */;\n }\n this.reducePos = this.pos;\n this.reduce(reduce);\n return true;\n }\n /// @internal\n forceAll() {\n while (!this.p.parser.stateFlag(this.state, 2 /* Accepting */)) {\n if (!this.forceReduce()) {\n this.storeNode(0 /* Err */, this.pos, this.pos, 4, true);\n break;\n }\n }\n return this;\n }\n /// Check whether this state has no further actions (assumed to be a direct descendant of the\n /// top state, since any other states must be able to continue\n /// somehow). @internal\n get deadEnd() {\n if (this.stack.length != 3)\n return false;\n let { parser } = this.p;\n return parser.data[parser.stateSlot(this.state, 1 /* Actions */)] == 65535 /* End */ &&\n !parser.stateSlot(this.state, 4 /* DefaultReduce */);\n }\n /// Restart the stack (put it back in its start state). Only safe\n /// when this.stack.length == 3 (state is directly below the top\n /// state). @internal\n restart() {\n this.state = this.stack[0];\n this.stack.length = 0;\n }\n /// @internal\n sameState(other) {\n if (this.state != other.state || this.stack.length != other.stack.length)\n return false;\n for (let i = 0; i < this.stack.length; i += 3)\n if (this.stack[i] != other.stack[i])\n return false;\n return true;\n }\n /// Get the parser used by this stack.\n get parser() { return this.p.parser; }\n /// Test whether a given dialect (by numeric ID, as exported from\n /// the terms file) is enabled.\n dialectEnabled(dialectID) { return this.p.parser.dialect.flags[dialectID]; }\n shiftContext(term, start) {\n if (this.curContext)\n this.updateContext(this.curContext.tracker.shift(this.curContext.context, term, this, this.p.stream.reset(start)));\n }\n reduceContext(term, start) {\n if (this.curContext)\n this.updateContext(this.curContext.tracker.reduce(this.curContext.context, term, this, this.p.stream.reset(start)));\n }\n /// @internal\n emitContext() {\n let last = this.buffer.length - 1;\n if (last < 0 || this.buffer[last] != -3)\n this.buffer.push(this.curContext.hash, this.reducePos, this.reducePos, -3);\n }\n /// @internal\n emitLookAhead() {\n let last = this.buffer.length - 1;\n if (last < 0 || this.buffer[last] != -4)\n this.buffer.push(this.lookAhead, this.reducePos, this.reducePos, -4);\n }\n updateContext(context) {\n if (context != this.curContext.context) {\n let newCx = new StackContext(this.curContext.tracker, context);\n if (newCx.hash != this.curContext.hash)\n this.emitContext();\n this.curContext = newCx;\n }\n }\n /// @internal\n setLookAhead(lookAhead) {\n if (lookAhead > this.lookAhead) {\n this.emitLookAhead();\n this.lookAhead = lookAhead;\n }\n }\n /// @internal\n close() {\n if (this.curContext && this.curContext.tracker.strict)\n this.emitContext();\n if (this.lookAhead > 0)\n this.emitLookAhead();\n }\n}\nclass StackContext {\n constructor(tracker, context) {\n this.tracker = tracker;\n this.context = context;\n this.hash = tracker.strict ? tracker.hash(context) : 0;\n }\n}\nvar Recover;\n(function (Recover) {\n Recover[Recover[\"Insert\"] = 200] = \"Insert\";\n Recover[Recover[\"Delete\"] = 190] = \"Delete\";\n Recover[Recover[\"Reduce\"] = 100] = \"Reduce\";\n Recover[Recover[\"MaxNext\"] = 4] = \"MaxNext\";\n Recover[Recover[\"MaxInsertStackDepth\"] = 300] = \"MaxInsertStackDepth\";\n Recover[Recover[\"DampenInsertStackDepth\"] = 120] = \"DampenInsertStackDepth\";\n})(Recover || (Recover = {}));\n// Used to cheaply run some reductions to scan ahead without mutating\n// an entire stack\nclass SimulatedStack {\n constructor(start) {\n this.start = start;\n this.state = start.state;\n this.stack = start.stack;\n this.base = this.stack.length;\n }\n reduce(action) {\n let term = action & 65535 /* ValueMask */, depth = action >> 19 /* ReduceDepthShift */;\n if (depth == 0) {\n if (this.stack == this.start.stack)\n this.stack = this.stack.slice();\n this.stack.push(this.state, 0, 0);\n this.base += 3;\n }\n else {\n this.base -= (depth - 1) * 3;\n }\n let goto = this.start.p.parser.getGoto(this.stack[this.base - 3], term, true);\n this.state = goto;\n }\n}\n// This is given to `Tree.build` to build a buffer, and encapsulates\n// the parent-stack-walking necessary to read the nodes.\nclass StackBufferCursor {\n constructor(stack, pos, index) {\n this.stack = stack;\n this.pos = pos;\n this.index = index;\n this.buffer = stack.buffer;\n if (this.index == 0)\n this.maybeNext();\n }\n static create(stack, pos = stack.bufferBase + stack.buffer.length) {\n return new StackBufferCursor(stack, pos, pos - stack.bufferBase);\n }\n maybeNext() {\n let next = this.stack.parent;\n if (next != null) {\n this.index = this.stack.bufferBase - next.bufferBase;\n this.stack = next;\n this.buffer = next.buffer;\n }\n }\n get id() { return this.buffer[this.index - 4]; }\n get start() { return this.buffer[this.index - 3]; }\n get end() { return this.buffer[this.index - 2]; }\n get size() { return this.buffer[this.index - 1]; }\n next() {\n this.index -= 4;\n this.pos -= 4;\n if (this.index == 0)\n this.maybeNext();\n }\n fork() {\n return new StackBufferCursor(this.stack, this.pos, this.index);\n }\n}\n\nclass CachedToken {\n constructor() {\n this.start = -1;\n this.value = -1;\n this.end = -1;\n this.extended = -1;\n this.lookAhead = 0;\n this.mask = 0;\n this.context = 0;\n }\n}\nconst nullToken = new CachedToken;\n/// [Tokenizers](#lr.ExternalTokenizer) interact with the input\n/// through this interface. It presents the input as a stream of\n/// characters, tracking lookahead and hiding the complexity of\n/// [ranges](#common.Parser.parse^ranges) from tokenizer code.\nclass InputStream {\n /// @internal\n constructor(\n /// @internal\n input, \n /// @internal\n ranges) {\n this.input = input;\n this.ranges = ranges;\n /// @internal\n this.chunk = \"\";\n /// @internal\n this.chunkOff = 0;\n /// Backup chunk\n this.chunk2 = \"\";\n this.chunk2Pos = 0;\n /// The character code of the next code unit in the input, or -1\n /// when the stream is at the end of the input.\n this.next = -1;\n /// @internal\n this.token = nullToken;\n this.rangeIndex = 0;\n this.pos = this.chunkPos = ranges[0].from;\n this.range = ranges[0];\n this.end = ranges[ranges.length - 1].to;\n this.readNext();\n }\n /// @internal\n resolveOffset(offset, assoc) {\n let range = this.range, index = this.rangeIndex;\n let pos = this.pos + offset;\n while (pos < range.from) {\n if (!index)\n return null;\n let next = this.ranges[--index];\n pos -= range.from - next.to;\n range = next;\n }\n while (assoc < 0 ? pos > range.to : pos >= range.to) {\n if (index == this.ranges.length - 1)\n return null;\n let next = this.ranges[++index];\n pos += next.from - range.to;\n range = next;\n }\n return pos;\n }\n /// @internal\n clipPos(pos) {\n if (pos >= this.range.from && pos < this.range.to)\n return pos;\n for (let range of this.ranges)\n if (range.to > pos)\n return Math.max(pos, range.from);\n return this.end;\n }\n /// Look at a code unit near the stream position. `.peek(0)` equals\n /// `.next`, `.peek(-1)` gives you the previous character, and so\n /// on.\n ///\n /// Note that looking around during tokenizing creates dependencies\n /// on potentially far-away content, which may reduce the\n /// effectiveness incremental parsing—when looking forward—or even\n /// cause invalid reparses when looking backward more than 25 code\n /// units, since the library does not track lookbehind.\n peek(offset) {\n let idx = this.chunkOff + offset, pos, result;\n if (idx >= 0 && idx < this.chunk.length) {\n pos = this.pos + offset;\n result = this.chunk.charCodeAt(idx);\n }\n else {\n let resolved = this.resolveOffset(offset, 1);\n if (resolved == null)\n return -1;\n pos = resolved;\n if (pos >= this.chunk2Pos && pos < this.chunk2Pos + this.chunk2.length) {\n result = this.chunk2.charCodeAt(pos - this.chunk2Pos);\n }\n else {\n let i = this.rangeIndex, range = this.range;\n while (range.to <= pos)\n range = this.ranges[++i];\n this.chunk2 = this.input.chunk(this.chunk2Pos = pos);\n if (pos + this.chunk2.length > range.to)\n this.chunk2 = this.chunk2.slice(0, range.to - pos);\n result = this.chunk2.charCodeAt(0);\n }\n }\n if (pos >= this.token.lookAhead)\n this.token.lookAhead = pos + 1;\n return result;\n }\n /// Accept a token. By default, the end of the token is set to the\n /// current stream position, but you can pass an offset (relative to\n /// the stream position) to change that.\n acceptToken(token, endOffset = 0) {\n let end = endOffset ? this.resolveOffset(endOffset, -1) : this.pos;\n if (end == null || end < this.token.start)\n throw new RangeError(\"Token end out of bounds\");\n this.token.value = token;\n this.token.end = end;\n }\n getChunk() {\n if (this.pos >= this.chunk2Pos && this.pos < this.chunk2Pos + this.chunk2.length) {\n let { chunk, chunkPos } = this;\n this.chunk = this.chunk2;\n this.chunkPos = this.chunk2Pos;\n this.chunk2 = chunk;\n this.chunk2Pos = chunkPos;\n this.chunkOff = this.pos - this.chunkPos;\n }\n else {\n this.chunk2 = this.chunk;\n this.chunk2Pos = this.chunkPos;\n let nextChunk = this.input.chunk(this.pos);\n let end = this.pos + nextChunk.length;\n this.chunk = end > this.range.to ? nextChunk.slice(0, this.range.to - this.pos) : nextChunk;\n this.chunkPos = this.pos;\n this.chunkOff = 0;\n }\n }\n readNext() {\n if (this.chunkOff >= this.chunk.length) {\n this.getChunk();\n if (this.chunkOff == this.chunk.length)\n return this.next = -1;\n }\n return this.next = this.chunk.charCodeAt(this.chunkOff);\n }\n /// Move the stream forward N (defaults to 1) code units. Returns\n /// the new value of [`next`](#lr.InputStream.next).\n advance(n = 1) {\n this.chunkOff += n;\n while (this.pos + n >= this.range.to) {\n if (this.rangeIndex == this.ranges.length - 1)\n return this.setDone();\n n -= this.range.to - this.pos;\n this.range = this.ranges[++this.rangeIndex];\n this.pos = this.range.from;\n }\n this.pos += n;\n if (this.pos >= this.token.lookAhead)\n this.token.lookAhead = this.pos + 1;\n return this.readNext();\n }\n setDone() {\n this.pos = this.chunkPos = this.end;\n this.range = this.ranges[this.rangeIndex = this.ranges.length - 1];\n this.chunk = \"\";\n return this.next = -1;\n }\n /// @internal\n reset(pos, token) {\n if (token) {\n this.token = token;\n token.start = pos;\n token.lookAhead = pos + 1;\n token.value = token.extended = -1;\n }\n else {\n this.token = nullToken;\n }\n if (this.pos != pos) {\n this.pos = pos;\n if (pos == this.end) {\n this.setDone();\n return this;\n }\n while (pos < this.range.from)\n this.range = this.ranges[--this.rangeIndex];\n while (pos >= this.range.to)\n this.range = this.ranges[++this.rangeIndex];\n if (pos >= this.chunkPos && pos < this.chunkPos + this.chunk.length) {\n this.chunkOff = pos - this.chunkPos;\n }\n else {\n this.chunk = \"\";\n this.chunkOff = 0;\n }\n this.readNext();\n }\n return this;\n }\n /// @internal\n read(from, to) {\n if (from >= this.chunkPos && to <= this.chunkPos + this.chunk.length)\n return this.chunk.slice(from - this.chunkPos, to - this.chunkPos);\n if (from >= this.chunk2Pos && to <= this.chunk2Pos + this.chunk2.length)\n return this.chunk2.slice(from - this.chunk2Pos, to - this.chunk2Pos);\n if (from >= this.range.from && to <= this.range.to)\n return this.input.read(from, to);\n let result = \"\";\n for (let r of this.ranges) {\n if (r.from >= to)\n break;\n if (r.to > from)\n result += this.input.read(Math.max(r.from, from), Math.min(r.to, to));\n }\n return result;\n }\n}\n/// @internal\nclass TokenGroup {\n constructor(data, id) {\n this.data = data;\n this.id = id;\n }\n token(input, stack) { readToken(this.data, input, stack, this.id); }\n}\nTokenGroup.prototype.contextual = TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;\n/// `@external tokens` declarations in the grammar should resolve to\n/// an instance of this class.\nclass ExternalTokenizer {\n /// Create a tokenizer. The first argument is the function that,\n /// given an input stream, scans for the types of tokens it\n /// recognizes at the stream's position, and calls\n /// [`acceptToken`](#lr.InputStream.acceptToken) when it finds\n /// one.\n constructor(\n /// @internal\n token, options = {}) {\n this.token = token;\n this.contextual = !!options.contextual;\n this.fallback = !!options.fallback;\n this.extend = !!options.extend;\n }\n}\n// Tokenizer data is stored a big uint16 array containing, for each\n// state:\n//\n// - A group bitmask, indicating what token groups are reachable from\n// this state, so that paths that can only lead to tokens not in\n// any of the current groups can be cut off early.\n//\n// - The position of the end of the state's sequence of accepting\n// tokens\n//\n// - The number of outgoing edges for the state\n//\n// - The accepting tokens, as (token id, group mask) pairs\n//\n// - The outgoing edges, as (start character, end character, state\n// index) triples, with end character being exclusive\n//\n// This function interprets that data, running through a stream as\n// long as new states with the a matching group mask can be reached,\n// and updating `input.token` when it matches a token.\nfunction readToken(data, input, stack, group) {\n let state = 0, groupMask = 1 << group, { parser } = stack.p, { dialect } = parser;\n scan: for (;;) {\n if ((groupMask & data[state]) == 0)\n break;\n let accEnd = data[state + 1];\n // Check whether this state can lead to a token in the current group\n // Accept tokens in this state, possibly overwriting\n // lower-precedence / shorter tokens\n for (let i = state + 3; i < accEnd; i += 2)\n if ((data[i + 1] & groupMask) > 0) {\n let term = data[i];\n if (dialect.allows(term) &&\n (input.token.value == -1 || input.token.value == term || parser.overrides(term, input.token.value))) {\n input.acceptToken(term);\n break;\n }\n }\n let next = input.next, low = 0, high = data[state + 2];\n // Special case for EOF\n if (input.next < 0 && high > low && data[accEnd + high * 3 - 3] == 65535 /* End */ && data[accEnd + high * 3 - 3] == 65535 /* End */) {\n state = data[accEnd + high * 3 - 1];\n continue scan;\n }\n // Do a binary search on the state's edges\n for (; low < high;) {\n let mid = (low + high) >> 1;\n let index = accEnd + mid + (mid << 1);\n let from = data[index], to = data[index + 1] || 0x10000;\n if (next < from)\n high = mid;\n else if (next >= to)\n low = mid + 1;\n else {\n state = data[index + 2];\n input.advance();\n continue scan;\n }\n }\n break;\n }\n}\n\n// See lezer-generator/src/encode.ts for comments about the encoding\n// used here\nfunction decodeArray(input, Type = Uint16Array) {\n if (typeof input != \"string\")\n return input;\n let array = null;\n for (let pos = 0, out = 0; pos < input.length;) {\n let value = 0;\n for (;;) {\n let next = input.charCodeAt(pos++), stop = false;\n if (next == 126 /* BigValCode */) {\n value = 65535 /* BigVal */;\n break;\n }\n if (next >= 92 /* Gap2 */)\n next--;\n if (next >= 34 /* Gap1 */)\n next--;\n let digit = next - 32 /* Start */;\n if (digit >= 46 /* Base */) {\n digit -= 46 /* Base */;\n stop = true;\n }\n value += digit;\n if (stop)\n break;\n value *= 46 /* Base */;\n }\n if (array)\n array[out++] = value;\n else\n array = new Type(value);\n }\n return array;\n}\n\n// Environment variable used to control console output\nconst verbose = typeof process != \"undefined\" && process.env && /\\bparse\\b/.test(process.env.LOG);\nlet stackIDs = null;\nvar Safety;\n(function (Safety) {\n Safety[Safety[\"Margin\"] = 25] = \"Margin\";\n})(Safety || (Safety = {}));\nfunction cutAt(tree, pos, side) {\n let cursor = tree.cursor(IterMode.IncludeAnonymous);\n cursor.moveTo(pos);\n for (;;) {\n if (!(side < 0 ? cursor.childBefore(pos) : cursor.childAfter(pos)))\n for (;;) {\n if ((side < 0 ? cursor.to < pos : cursor.from > pos) && !cursor.type.isError)\n return side < 0 ? Math.max(0, Math.min(cursor.to - 1, pos - 25 /* Margin */))\n : Math.min(tree.length, Math.max(cursor.from + 1, pos + 25 /* Margin */));\n if (side < 0 ? cursor.prevSibling() : cursor.nextSibling())\n break;\n if (!cursor.parent())\n return side < 0 ? 0 : tree.length;\n }\n }\n}\nclass FragmentCursor {\n constructor(fragments, nodeSet) {\n this.fragments = fragments;\n this.nodeSet = nodeSet;\n this.i = 0;\n this.fragment = null;\n this.safeFrom = -1;\n this.safeTo = -1;\n this.trees = [];\n this.start = [];\n this.index = [];\n this.nextFragment();\n }\n nextFragment() {\n let fr = this.fragment = this.i == this.fragments.length ? null : this.fragments[this.i++];\n if (fr) {\n this.safeFrom = fr.openStart ? cutAt(fr.tree, fr.from + fr.offset, 1) - fr.offset : fr.from;\n this.safeTo = fr.openEnd ? cutAt(fr.tree, fr.to + fr.offset, -1) - fr.offset : fr.to;\n while (this.trees.length) {\n this.trees.pop();\n this.start.pop();\n this.index.pop();\n }\n this.trees.push(fr.tree);\n this.start.push(-fr.offset);\n this.index.push(0);\n this.nextStart = this.safeFrom;\n }\n else {\n this.nextStart = 1e9;\n }\n }\n // `pos` must be >= any previously given `pos` for this cursor\n nodeAt(pos) {\n if (pos < this.nextStart)\n return null;\n while (this.fragment && this.safeTo <= pos)\n this.nextFragment();\n if (!this.fragment)\n return null;\n for (;;) {\n let last = this.trees.length - 1;\n if (last < 0) { // End of tree\n this.nextFragment();\n return null;\n }\n let top = this.trees[last], index = this.index[last];\n if (index == top.children.length) {\n this.trees.pop();\n this.start.pop();\n this.index.pop();\n continue;\n }\n let next = top.children[index];\n let start = this.start[last] + top.positions[index];\n if (start > pos) {\n this.nextStart = start;\n return null;\n }\n if (next instanceof Tree) {\n if (start == pos) {\n if (start < this.safeFrom)\n return null;\n let end = start + next.length;\n if (end <= this.safeTo) {\n let lookAhead = next.prop(NodeProp.lookAhead);\n if (!lookAhead || end + lookAhead < this.fragment.to)\n return next;\n }\n }\n this.index[last]++;\n if (start + next.length >= Math.max(this.safeFrom, pos)) { // Enter this node\n this.trees.push(next);\n this.start.push(start);\n this.index.push(0);\n }\n }\n else {\n this.index[last]++;\n this.nextStart = start + next.length;\n }\n }\n }\n}\nclass TokenCache {\n constructor(parser, stream) {\n this.stream = stream;\n this.tokens = [];\n this.mainToken = null;\n this.actions = [];\n this.tokens = parser.tokenizers.map(_ => new CachedToken);\n }\n getActions(stack) {\n let actionIndex = 0;\n let main = null;\n let { parser } = stack.p, { tokenizers } = parser;\n let mask = parser.stateSlot(stack.state, 3 /* TokenizerMask */);\n let context = stack.curContext ? stack.curContext.hash : 0;\n let lookAhead = 0;\n for (let i = 0; i < tokenizers.length; i++) {\n if (((1 << i) & mask) == 0)\n continue;\n let tokenizer = tokenizers[i], token = this.tokens[i];\n if (main && !tokenizer.fallback)\n continue;\n if (tokenizer.contextual || token.start != stack.pos || token.mask != mask || token.context != context) {\n this.updateCachedToken(token, tokenizer, stack);\n token.mask = mask;\n token.context = context;\n }\n if (token.lookAhead > token.end + 25 /* Margin */)\n lookAhead = Math.max(token.lookAhead, lookAhead);\n if (token.value != 0 /* Err */) {\n let startIndex = actionIndex;\n if (token.extended > -1)\n actionIndex = this.addActions(stack, token.extended, token.end, actionIndex);\n actionIndex = this.addActions(stack, token.value, token.end, actionIndex);\n if (!tokenizer.extend) {\n main = token;\n if (actionIndex > startIndex)\n break;\n }\n }\n }\n while (this.actions.length > actionIndex)\n this.actions.pop();\n if (lookAhead)\n stack.setLookAhead(lookAhead);\n if (!main && stack.pos == this.stream.end) {\n main = new CachedToken;\n main.value = stack.p.parser.eofTerm;\n main.start = main.end = stack.pos;\n actionIndex = this.addActions(stack, main.value, main.end, actionIndex);\n }\n this.mainToken = main;\n return this.actions;\n }\n getMainToken(stack) {\n if (this.mainToken)\n return this.mainToken;\n let main = new CachedToken, { pos, p } = stack;\n main.start = pos;\n main.end = Math.min(pos + 1, p.stream.end);\n main.value = pos == p.stream.end ? p.parser.eofTerm : 0 /* Err */;\n return main;\n }\n updateCachedToken(token, tokenizer, stack) {\n let start = this.stream.clipPos(stack.pos);\n tokenizer.token(this.stream.reset(start, token), stack);\n if (token.value > -1) {\n let { parser } = stack.p;\n for (let i = 0; i < parser.specialized.length; i++)\n if (parser.specialized[i] == token.value) {\n let result = parser.specializers[i](this.stream.read(token.start, token.end), stack);\n if (result >= 0 && stack.p.parser.dialect.allows(result >> 1)) {\n if ((result & 1) == 0 /* Specialize */)\n token.value = result >> 1;\n else\n token.extended = result >> 1;\n break;\n }\n }\n }\n else {\n token.value = 0 /* Err */;\n token.end = this.stream.clipPos(start + 1);\n }\n }\n putAction(action, token, end, index) {\n // Don't add duplicate actions\n for (let i = 0; i < index; i += 3)\n if (this.actions[i] == action)\n return index;\n this.actions[index++] = action;\n this.actions[index++] = token;\n this.actions[index++] = end;\n return index;\n }\n addActions(stack, token, end, index) {\n let { state } = stack, { parser } = stack.p, { data } = parser;\n for (let set = 0; set < 2; set++) {\n for (let i = parser.stateSlot(state, set ? 2 /* Skip */ : 1 /* Actions */);; i += 3) {\n if (data[i] == 65535 /* End */) {\n if (data[i + 1] == 1 /* Next */) {\n i = pair(data, i + 2);\n }\n else {\n if (index == 0 && data[i + 1] == 2 /* Other */)\n index = this.putAction(pair(data, i + 2), token, end, index);\n break;\n }\n }\n if (data[i] == token)\n index = this.putAction(pair(data, i + 1), token, end, index);\n }\n }\n return index;\n }\n}\nvar Rec;\n(function (Rec) {\n Rec[Rec[\"Distance\"] = 5] = \"Distance\";\n Rec[Rec[\"MaxRemainingPerStep\"] = 3] = \"MaxRemainingPerStep\";\n // When two stacks have been running independently long enough to\n // add this many elements to their buffers, prune one.\n Rec[Rec[\"MinBufferLengthPrune\"] = 500] = \"MinBufferLengthPrune\";\n Rec[Rec[\"ForceReduceLimit\"] = 10] = \"ForceReduceLimit\";\n // Once a stack reaches this depth (in .stack.length) force-reduce\n // it back to CutTo to avoid creating trees that overflow the stack\n // on recursive traversal.\n Rec[Rec[\"CutDepth\"] = 15000] = \"CutDepth\";\n Rec[Rec[\"CutTo\"] = 9000] = \"CutTo\";\n})(Rec || (Rec = {}));\nclass Parse {\n constructor(parser, input, fragments, ranges) {\n this.parser = parser;\n this.input = input;\n this.ranges = ranges;\n this.recovering = 0;\n this.nextStackID = 0x2654; // ♔, ♕, ♖, ♗, ♘, ♙, ♠, ♡, ♢, ♣, ♤, ♥, ♦, ♧\n this.minStackPos = 0;\n this.reused = [];\n this.stoppedAt = null;\n this.stream = new InputStream(input, ranges);\n this.tokens = new TokenCache(parser, this.stream);\n this.topTerm = parser.top[1];\n let { from } = ranges[0];\n this.stacks = [Stack.start(this, parser.top[0], from)];\n this.fragments = fragments.length && this.stream.end - from > parser.bufferLength * 4\n ? new FragmentCursor(fragments, parser.nodeSet) : null;\n }\n get parsedPos() {\n return this.minStackPos;\n }\n // Move the parser forward. This will process all parse stacks at\n // `this.pos` and try to advance them to a further position. If no\n // stack for such a position is found, it'll start error-recovery.\n //\n // When the parse is finished, this will return a syntax tree. When\n // not, it returns `null`.\n advance() {\n let stacks = this.stacks, pos = this.minStackPos;\n // This will hold stacks beyond `pos`.\n let newStacks = this.stacks = [];\n let stopped, stoppedTokens;\n // Keep advancing any stacks at `pos` until they either move\n // forward or can't be advanced. Gather stacks that can't be\n // advanced further in `stopped`.\n for (let i = 0; i < stacks.length; i++) {\n let stack = stacks[i];\n for (;;) {\n this.tokens.mainToken = null;\n if (stack.pos > pos) {\n newStacks.push(stack);\n }\n else if (this.advanceStack(stack, newStacks, stacks)) {\n continue;\n }\n else {\n if (!stopped) {\n stopped = [];\n stoppedTokens = [];\n }\n stopped.push(stack);\n let tok = this.tokens.getMainToken(stack);\n stoppedTokens.push(tok.value, tok.end);\n }\n break;\n }\n }\n if (!newStacks.length) {\n let finished = stopped && findFinished(stopped);\n if (finished)\n return this.stackToTree(finished);\n if (this.parser.strict) {\n if (verbose && stopped)\n console.log(\"Stuck with token \" + (this.tokens.mainToken ? this.parser.getName(this.tokens.mainToken.value) : \"none\"));\n throw new SyntaxError(\"No parse at \" + pos);\n }\n if (!this.recovering)\n this.recovering = 5 /* Distance */;\n }\n if (this.recovering && stopped) {\n let finished = this.stoppedAt != null && stopped[0].pos > this.stoppedAt ? stopped[0]\n : this.runRecovery(stopped, stoppedTokens, newStacks);\n if (finished)\n return this.stackToTree(finished.forceAll());\n }\n if (this.recovering) {\n let maxRemaining = this.recovering == 1 ? 1 : this.recovering * 3 /* MaxRemainingPerStep */;\n if (newStacks.length > maxRemaining) {\n newStacks.sort((a, b) => b.score - a.score);\n while (newStacks.length > maxRemaining)\n newStacks.pop();\n }\n if (newStacks.some(s => s.reducePos > pos))\n this.recovering--;\n }\n else if (newStacks.length > 1) {\n // Prune stacks that are in the same state, or that have been\n // running without splitting for a while, to avoid getting stuck\n // with multiple successful stacks running endlessly on.\n outer: for (let i = 0; i < newStacks.length - 1; i++) {\n let stack = newStacks[i];\n for (let j = i + 1; j < newStacks.length; j++) {\n let other = newStacks[j];\n if (stack.sameState(other) ||\n stack.buffer.length > 500 /* MinBufferLengthPrune */ && other.buffer.length > 500 /* MinBufferLengthPrune */) {\n if (((stack.score - other.score) || (stack.buffer.length - other.buffer.length)) > 0) {\n newStacks.splice(j--, 1);\n }\n else {\n newStacks.splice(i--, 1);\n continue outer;\n }\n }\n }\n }\n }\n this.minStackPos = newStacks[0].pos;\n for (let i = 1; i < newStacks.length; i++)\n if (newStacks[i].pos < this.minStackPos)\n this.minStackPos = newStacks[i].pos;\n return null;\n }\n stopAt(pos) {\n if (this.stoppedAt != null && this.stoppedAt < pos)\n throw new RangeError(\"Can't move stoppedAt forward\");\n this.stoppedAt = pos;\n }\n // Returns an updated version of the given stack, or null if the\n // stack can't advance normally. When `split` and `stacks` are\n // given, stacks split off by ambiguous operations will be pushed to\n // `split`, or added to `stacks` if they move `pos` forward.\n advanceStack(stack, stacks, split) {\n let start = stack.pos, { parser } = this;\n let base = verbose ? this.stackID(stack) + \" -> \" : \"\";\n if (this.stoppedAt != null && start > this.stoppedAt)\n return stack.forceReduce() ? stack : null;\n if (this.fragments) {\n let strictCx = stack.curContext && stack.curContext.tracker.strict, cxHash = strictCx ? stack.curContext.hash : 0;\n for (let cached = this.fragments.nodeAt(start); cached;) {\n let match = this.parser.nodeSet.types[cached.type.id] == cached.type ? parser.getGoto(stack.state, cached.type.id) : -1;\n if (match > -1 && cached.length && (!strictCx || (cached.prop(NodeProp.contextHash) || 0) == cxHash)) {\n stack.useNode(cached, match);\n if (verbose)\n console.log(base + this.stackID(stack) + ` (via reuse of ${parser.getName(cached.type.id)})`);\n return true;\n }\n if (!(cached instanceof Tree) || cached.children.length == 0 || cached.positions[0] > 0)\n break;\n let inner = cached.children[0];\n if (inner instanceof Tree && cached.positions[0] == 0)\n cached = inner;\n else\n break;\n }\n }\n let defaultReduce = parser.stateSlot(stack.state, 4 /* DefaultReduce */);\n if (defaultReduce > 0) {\n stack.reduce(defaultReduce);\n if (verbose)\n console.log(base + this.stackID(stack) + ` (via always-reduce ${parser.getName(defaultReduce & 65535 /* ValueMask */)})`);\n return true;\n }\n if (stack.stack.length >= 15000 /* CutDepth */) {\n while (stack.stack.length > 9000 /* CutTo */ && stack.forceReduce()) { }\n }\n let actions = this.tokens.getActions(stack);\n for (let i = 0; i < actions.length;) {\n let action = actions[i++], term = actions[i++], end = actions[i++];\n let last = i == actions.length || !split;\n let localStack = last ? stack : stack.split();\n localStack.apply(action, term, end);\n if (verbose)\n console.log(base + this.stackID(localStack) + ` (via ${(action & 65536 /* ReduceFlag */) == 0 ? \"shift\"\n : `reduce of ${parser.getName(action & 65535 /* ValueMask */)}`} for ${parser.getName(term)} @ ${start}${localStack == stack ? \"\" : \", split\"})`);\n if (last)\n return true;\n else if (localStack.pos > start)\n stacks.push(localStack);\n else\n split.push(localStack);\n }\n return false;\n }\n // Advance a given stack forward as far as it will go. Returns the\n // (possibly updated) stack if it got stuck, or null if it moved\n // forward and was given to `pushStackDedup`.\n advanceFully(stack, newStacks) {\n let pos = stack.pos;\n for (;;) {\n if (!this.advanceStack(stack, null, null))\n return false;\n if (stack.pos > pos) {\n pushStackDedup(stack, newStacks);\n return true;\n }\n }\n }\n runRecovery(stacks, tokens, newStacks) {\n let finished = null, restarted = false;\n for (let i = 0; i < stacks.length; i++) {\n let stack = stacks[i], token = tokens[i << 1], tokenEnd = tokens[(i << 1) + 1];\n let base = verbose ? this.stackID(stack) + \" -> \" : \"\";\n if (stack.deadEnd) {\n if (restarted)\n continue;\n restarted = true;\n stack.restart();\n if (verbose)\n console.log(base + this.stackID(stack) + \" (restarted)\");\n let done = this.advanceFully(stack, newStacks);\n if (done)\n continue;\n }\n let force = stack.split(), forceBase = base;\n for (let j = 0; force.forceReduce() && j < 10 /* ForceReduceLimit */; j++) {\n if (verbose)\n console.log(forceBase + this.stackID(force) + \" (via force-reduce)\");\n let done = this.advanceFully(force, newStacks);\n if (done)\n break;\n if (verbose)\n forceBase = this.stackID(force) + \" -> \";\n }\n for (let insert of stack.recoverByInsert(token)) {\n if (verbose)\n console.log(base + this.stackID(insert) + \" (via recover-insert)\");\n this.advanceFully(insert, newStacks);\n }\n if (this.stream.end > stack.pos) {\n if (tokenEnd == stack.pos) {\n tokenEnd++;\n token = 0 /* Err */;\n }\n stack.recoverByDelete(token, tokenEnd);\n if (verbose)\n console.log(base + this.stackID(stack) + ` (via recover-delete ${this.parser.getName(token)})`);\n pushStackDedup(stack, newStacks);\n }\n else if (!finished || finished.score < stack.score) {\n finished = stack;\n }\n }\n return finished;\n }\n // Convert the stack's buffer to a syntax tree.\n stackToTree(stack) {\n stack.close();\n return Tree.build({ buffer: StackBufferCursor.create(stack),\n nodeSet: this.parser.nodeSet,\n topID: this.topTerm,\n maxBufferLength: this.parser.bufferLength,\n reused: this.reused,\n start: this.ranges[0].from,\n length: stack.pos - this.ranges[0].from,\n minRepeatType: this.parser.minRepeatTerm });\n }\n stackID(stack) {\n let id = (stackIDs || (stackIDs = new WeakMap)).get(stack);\n if (!id)\n stackIDs.set(stack, id = String.fromCodePoint(this.nextStackID++));\n return id + stack;\n }\n}\nfunction pushStackDedup(stack, newStacks) {\n for (let i = 0; i < newStacks.length; i++) {\n let other = newStacks[i];\n if (other.pos == stack.pos && other.sameState(stack)) {\n if (newStacks[i].score < stack.score)\n newStacks[i] = stack;\n return;\n }\n }\n newStacks.push(stack);\n}\nclass Dialect {\n constructor(source, flags, disabled) {\n this.source = source;\n this.flags = flags;\n this.disabled = disabled;\n }\n allows(term) { return !this.disabled || this.disabled[term] == 0; }\n}\nconst id = x => x;\n/// Context trackers are used to track stateful context (such as\n/// indentation in the Python grammar, or parent elements in the XML\n/// grammar) needed by external tokenizers. You declare them in a\n/// grammar file as `@context exportName from \"module\"`.\n///\n/// Context values should be immutable, and can be updated (replaced)\n/// on shift or reduce actions.\n///\n/// The export used in a `@context` declaration should be of this\n/// type.\nclass ContextTracker {\n /// Define a context tracker.\n constructor(spec) {\n this.start = spec.start;\n this.shift = spec.shift || id;\n this.reduce = spec.reduce || id;\n this.reuse = spec.reuse || id;\n this.hash = spec.hash || (() => 0);\n this.strict = spec.strict !== false;\n }\n}\n/// Holds the parse tables for a given grammar, as generated by\n/// `lezer-generator`, and provides [methods](#common.Parser) to parse\n/// content with.\nclass LRParser extends Parser {\n /// @internal\n constructor(spec) {\n super();\n /// @internal\n this.wrappers = [];\n if (spec.version != 14 /* Version */)\n throw new RangeError(`Parser version (${spec.version}) doesn't match runtime version (${14 /* Version */})`);\n let nodeNames = spec.nodeNames.split(\" \");\n this.minRepeatTerm = nodeNames.length;\n for (let i = 0; i < spec.repeatNodeCount; i++)\n nodeNames.push(\"\");\n let topTerms = Object.keys(spec.topRules).map(r => spec.topRules[r][1]);\n let nodeProps = [];\n for (let i = 0; i < nodeNames.length; i++)\n nodeProps.push([]);\n function setProp(nodeID, prop, value) {\n nodeProps[nodeID].push([prop, prop.deserialize(String(value))]);\n }\n if (spec.nodeProps)\n for (let propSpec of spec.nodeProps) {\n let prop = propSpec[0];\n if (typeof prop == \"string\")\n prop = NodeProp[prop];\n for (let i = 1; i < propSpec.length;) {\n let next = propSpec[i++];\n if (next >= 0) {\n setProp(next, prop, propSpec[i++]);\n }\n else {\n let value = propSpec[i + -next];\n for (let j = -next; j > 0; j--)\n setProp(propSpec[i++], prop, value);\n i++;\n }\n }\n }\n this.nodeSet = new NodeSet(nodeNames.map((name, i) => NodeType.define({\n name: i >= this.minRepeatTerm ? undefined : name,\n id: i,\n props: nodeProps[i],\n top: topTerms.indexOf(i) > -1,\n error: i == 0,\n skipped: spec.skippedNodes && spec.skippedNodes.indexOf(i) > -1\n })));\n if (spec.propSources)\n this.nodeSet = this.nodeSet.extend(...spec.propSources);\n this.strict = false;\n this.bufferLength = DefaultBufferLength;\n let tokenArray = decodeArray(spec.tokenData);\n this.context = spec.context;\n this.specializerSpecs = spec.specialized || [];\n this.specialized = new Uint16Array(this.specializerSpecs.length);\n for (let i = 0; i < this.specializerSpecs.length; i++)\n this.specialized[i] = this.specializerSpecs[i].term;\n this.specializers = this.specializerSpecs.map(getSpecializer);\n this.states = decodeArray(spec.states, Uint32Array);\n this.data = decodeArray(spec.stateData);\n this.goto = decodeArray(spec.goto);\n this.maxTerm = spec.maxTerm;\n this.tokenizers = spec.tokenizers.map(value => typeof value == \"number\" ? new TokenGroup(tokenArray, value) : value);\n this.topRules = spec.topRules;\n this.dialects = spec.dialects || {};\n this.dynamicPrecedences = spec.dynamicPrecedences || null;\n this.tokenPrecTable = spec.tokenPrec;\n this.termNames = spec.termNames || null;\n this.maxNode = this.nodeSet.types.length - 1;\n this.dialect = this.parseDialect();\n this.top = this.topRules[Object.keys(this.topRules)[0]];\n }\n createParse(input, fragments, ranges) {\n let parse = new Parse(this, input, fragments, ranges);\n for (let w of this.wrappers)\n parse = w(parse, input, fragments, ranges);\n return parse;\n }\n /// Get a goto table entry @internal\n getGoto(state, term, loose = false) {\n let table = this.goto;\n if (term >= table[0])\n return -1;\n for (let pos = table[term + 1];;) {\n let groupTag = table[pos++], last = groupTag & 1;\n let target = table[pos++];\n if (last && loose)\n return target;\n for (let end = pos + (groupTag >> 1); pos < end; pos++)\n if (table[pos] == state)\n return target;\n if (last)\n return -1;\n }\n }\n /// Check if this state has an action for a given terminal @internal\n hasAction(state, terminal) {\n let data = this.data;\n for (let set = 0; set < 2; set++) {\n for (let i = this.stateSlot(state, set ? 2 /* Skip */ : 1 /* Actions */), next;; i += 3) {\n if ((next = data[i]) == 65535 /* End */) {\n if (data[i + 1] == 1 /* Next */)\n next = data[i = pair(data, i + 2)];\n else if (data[i + 1] == 2 /* Other */)\n return pair(data, i + 2);\n else\n break;\n }\n if (next == terminal || next == 0 /* Err */)\n return pair(data, i + 1);\n }\n }\n return 0;\n }\n /// @internal\n stateSlot(state, slot) {\n return this.states[(state * 6 /* Size */) + slot];\n }\n /// @internal\n stateFlag(state, flag) {\n return (this.stateSlot(state, 0 /* Flags */) & flag) > 0;\n }\n /// @internal\n validAction(state, action) {\n if (action == this.stateSlot(state, 4 /* DefaultReduce */))\n return true;\n for (let i = this.stateSlot(state, 1 /* Actions */);; i += 3) {\n if (this.data[i] == 65535 /* End */) {\n if (this.data[i + 1] == 1 /* Next */)\n i = pair(this.data, i + 2);\n else\n return false;\n }\n if (action == pair(this.data, i + 1))\n return true;\n }\n }\n /// Get the states that can follow this one through shift actions or\n /// goto jumps. @internal\n nextStates(state) {\n let result = [];\n for (let i = this.stateSlot(state, 1 /* Actions */);; i += 3) {\n if (this.data[i] == 65535 /* End */) {\n if (this.data[i + 1] == 1 /* Next */)\n i = pair(this.data, i + 2);\n else\n break;\n }\n if ((this.data[i + 2] & (65536 /* ReduceFlag */ >> 16)) == 0) {\n let value = this.data[i + 1];\n if (!result.some((v, i) => (i & 1) && v == value))\n result.push(this.data[i], value);\n }\n }\n return result;\n }\n /// @internal\n overrides(token, prev) {\n let iPrev = findOffset(this.data, this.tokenPrecTable, prev);\n return iPrev < 0 || findOffset(this.data, this.tokenPrecTable, token) < iPrev;\n }\n /// Configure the parser. Returns a new parser instance that has the\n /// given settings modified. Settings not provided in `config` are\n /// kept from the original parser.\n configure(config) {\n // Hideous reflection-based kludge to make it easy to create a\n // slightly modified copy of a parser.\n let copy = Object.assign(Object.create(LRParser.prototype), this);\n if (config.props)\n copy.nodeSet = this.nodeSet.extend(...config.props);\n if (config.top) {\n let info = this.topRules[config.top];\n if (!info)\n throw new RangeError(`Invalid top rule name ${config.top}`);\n copy.top = info;\n }\n if (config.tokenizers)\n copy.tokenizers = this.tokenizers.map(t => {\n let found = config.tokenizers.find(r => r.from == t);\n return found ? found.to : t;\n });\n if (config.specializers) {\n copy.specializers = this.specializers.slice();\n copy.specializerSpecs = this.specializerSpecs.map((s, i) => {\n let found = config.specializers.find(r => r.from == s.external);\n if (!found)\n return s;\n let spec = Object.assign(Object.assign({}, s), { external: found.to });\n copy.specializers[i] = getSpecializer(spec);\n return spec;\n });\n }\n if (config.contextTracker)\n copy.context = config.contextTracker;\n if (config.dialect)\n copy.dialect = this.parseDialect(config.dialect);\n if (config.strict != null)\n copy.strict = config.strict;\n if (config.wrap)\n copy.wrappers = copy.wrappers.concat(config.wrap);\n if (config.bufferLength != null)\n copy.bufferLength = config.bufferLength;\n return copy;\n }\n /// Tells you whether any [parse wrappers](#lr.ParserConfig.wrap)\n /// are registered for this parser.\n hasWrappers() {\n return this.wrappers.length > 0;\n }\n /// Returns the name associated with a given term. This will only\n /// work for all terms when the parser was generated with the\n /// `--names` option. By default, only the names of tagged terms are\n /// stored.\n getName(term) {\n return this.termNames ? this.termNames[term] : String(term <= this.maxNode && this.nodeSet.types[term].name || term);\n }\n /// The eof term id is always allocated directly after the node\n /// types. @internal\n get eofTerm() { return this.maxNode + 1; }\n /// The type of top node produced by the parser.\n get topNode() { return this.nodeSet.types[this.top[1]]; }\n /// @internal\n dynamicPrecedence(term) {\n let prec = this.dynamicPrecedences;\n return prec == null ? 0 : prec[term] || 0;\n }\n /// @internal\n parseDialect(dialect) {\n let values = Object.keys(this.dialects), flags = values.map(() => false);\n if (dialect)\n for (let part of dialect.split(\" \")) {\n let id = values.indexOf(part);\n if (id >= 0)\n flags[id] = true;\n }\n let disabled = null;\n for (let i = 0; i < values.length; i++)\n if (!flags[i]) {\n for (let j = this.dialects[values[i]], id; (id = this.data[j++]) != 65535 /* End */;)\n (disabled || (disabled = new Uint8Array(this.maxTerm + 1)))[id] = 1;\n }\n return new Dialect(dialect, flags, disabled);\n }\n /// Used by the output of the parser generator. Not available to\n /// user code.\n static deserialize(spec) {\n return new LRParser(spec);\n }\n}\nfunction pair(data, off) { return data[off] | (data[off + 1] << 16); }\nfunction findOffset(data, start, term) {\n for (let i = start, next; (next = data[i]) != 65535 /* End */; i++)\n if (next == term)\n return i - start;\n return -1;\n}\nfunction findFinished(stacks) {\n let best = null;\n for (let stack of stacks) {\n let stopped = stack.p.stoppedAt;\n if ((stack.pos == stack.p.stream.end || stopped != null && stack.pos > stopped) &&\n stack.p.parser.stateFlag(stack.state, 2 /* Accepting */) &&\n (!best || best.score < stack.score))\n best = stack;\n }\n return best;\n}\nfunction getSpecializer(spec) {\n if (spec.external) {\n let mask = spec.extend ? 1 /* Extend */ : 0 /* Specialize */;\n return (value, stack) => (spec.external(value, stack) << 1) | mask;\n }\n return spec.get;\n}\n\nexport { ContextTracker, ExternalTokenizer, InputStream, LRParser, Stack };\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0e1b4f3e.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0e1b4f3e.js
new file mode 100644
index 0000000000000000000000000000000000000000..a6ecd16ef125319faab5b01f282cf5138b530a58
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0e1b4f3e.js
@@ -0,0 +1,2 @@
+import{a7 as s}from"./index.8bc3f3e8.js";const o=["static"];export{s as Component,o as modes};
+//# sourceMappingURL=index.0e1b4f3e.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0e1b4f3e.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0e1b4f3e.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..c6acfe67ef63488f1c0b2b64e2d0e7a0ebdb6504
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.0e1b4f3e.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.0e1b4f3e.js","sources":["../../../../ui/packages/app/src/components/StatusTracker/index.ts"],"sourcesContent":["export { default as Component } from \"./StatusTracker.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"8CACa,GAAQ,CAAC,QAAQ"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.1090d348.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.1090d348.js
new file mode 100644
index 0000000000000000000000000000000000000000..95e43f68030fbc8e1a9f666807c8261170a3384a
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.1090d348.js
@@ -0,0 +1,2 @@
+import{S as a,i as o,s}from"./index.8bc3f3e8.js";class n extends a{constructor(e){super(),o(this,e,null,null,s,{})}}var p=n;const c=["static"],i=t=>({type:{payload:"Any"},description:{payload:"stored state value"},example_data:""});export{p as Component,i as document,c as modes};
+//# sourceMappingURL=index.1090d348.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.1090d348.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.1090d348.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..cd985032de7f6895908b7c4bbcaa48d329e71a5d
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.1090d348.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.1090d348.js","sources":["../../../../ui/packages/app/src/components/State/index.ts"],"sourcesContent":["export { default as Component } from \"./State.svelte\";\nexport const modes = [\"static\"];\n\nexport const document = (config: Record) => ({\n\ttype: {\n\t\tpayload: \"Any\"\n\t},\n\tdescription: {\n\t\tpayload: \"stored state value\"\n\t},\n\texample_data: \"\"\n});\n"],"names":[],"mappings":"iIACa,GAAQ,CAAC,QAAQ,EAEjB,EAAW,AAAC,KACxB,KAAM,CACL,QAAS,OAEV,YAAa,CACZ,QAAS,sBAEV,aAAc,EACf"}
\ No newline at end of file
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.144a6f68.js b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.144a6f68.js
new file mode 100644
index 0000000000000000000000000000000000000000..fc631e18059213c056f228eeb47846312186c680
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.144a6f68.js
@@ -0,0 +1,2 @@
+import{S as L,i as M,s as j,F as w,B as o,O as c,f as g,E as H,p as v,q as S,c as d,m as h,o as b,t as T,l as k,v as q,a7 as B,G as C,g as E,h as z,x as D}from"./index.8bc3f3e8.js";import{a as F}from"./Empty.svelte_svelte_type_style_lang.bc882d5f.js";function G(t){let e,a;return{c(){e=w("div"),o(e,"class",a="prose "+t[1].join(" ")+" svelte-1ybaih5"),o(e,"id",t[0]),c(e,"min",t[4]),c(e,"hide",!t[3])},m(s,i){g(s,e,i),e.innerHTML=t[2]},p(s,[i]){i&4&&(e.innerHTML=s[2]),i&2&&a!==(a="prose "+s[1].join(" ")+" svelte-1ybaih5")&&o(e,"class",a),i&1&&o(e,"id",s[0]),i&18&&c(e,"min",s[4]),i&10&&c(e,"hide",!s[3])},i:H,o:H,d(s){s&&v(e)}}}function O(t,e,a){let{elem_id:s=""}=e,{elem_classes:i=[]}=e,{value:m}=e,{visible:u=!0}=e,{min_height:f=!1}=e;const l=S();return t.$$set=n=>{"elem_id"in n&&a(0,s=n.elem_id),"elem_classes"in n&&a(1,i=n.elem_classes),"value"in n&&a(2,m=n.value),"visible"in n&&a(3,u=n.visible),"min_height"in n&&a(4,f=n.min_height)},t.$$.update=()=>{t.$$.dirty&4&&l("change")},[s,i,m,u,f]}class A extends L{constructor(e){super(),M(this,e,O,G,j,{elem_id:0,elem_classes:1,value:2,visible:3,min_height:4})}}function I(t){let e,a,s,i,m;const u=[t[4],{variant:"center"}];let f={};for(let l=0;l{"label"in _&&a(5,s=_.label),"elem_id"in _&&a(0,i=_.elem_id),"elem_classes"in _&&a(1,m=_.elem_classes),"visible"in _&&a(2,u=_.visible),"value"in _&&a(3,f=_.value),"loading_status"in _&&a(4,l=_.loading_status)},t.$$.update=()=>{t.$$.dirty&32&&n("change")},[i,m,u,f,l,s,r]}class N extends L{constructor(e){super(),M(this,e,K,J,j,{label:5,elem_id:0,elem_classes:1,visible:2,value:3,loading_status:4})}}var R=N;const U=["static"],V=t=>({type:{payload:"string"},description:{payload:"HTML output"}});export{R as Component,V as document,U as modes};
+//# sourceMappingURL=index.144a6f68.js.map
diff --git a/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.144a6f68.js.map b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.144a6f68.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..4b007c7e61cfa5686961d909caf07d05f1e86a39
--- /dev/null
+++ b/extensions/canvas-zoom/dist/old-auto-v-1-0/templates/frontend/assets/index.144a6f68.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.144a6f68.js","sources":["../../../../ui/packages/html/src/HTML.svelte","../../../../ui/packages/app/src/components/HTML/HTML.svelte","../../../../ui/packages/app/src/components/HTML/index.ts"],"sourcesContent":["\n\n