From 13badd7ce48873d1ea62b45a9e0361713df531bc Mon Sep 17 00:00:00 2001 From: Wolfgang Ginolas Date: Mon, 9 Oct 2023 11:32:40 +0200 Subject: [PATCH 01/73] Use correct mime type for .wasm files https://github.com/cryptpad/cryptpad/issues/1277 --- lib/http-worker.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/http-worker.js b/lib/http-worker.js index 9d264ab6c..059ec7d8f 100644 --- a/lib/http-worker.js +++ b/lib/http-worker.js @@ -158,6 +158,7 @@ var setHeaders = function (req, res) { }; const Express = require("express"); +Express.static.mime.define({'application/wasm': ['wasm']}); var app = Express(); (function () { From 6e50b9d9dc8550f7757627da7a849c03799ff486 Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 17 Oct 2023 11:50:02 +0200 Subject: [PATCH 02/73] Fix HPM error proxy websocket to undefined --- lib/http-worker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/http-worker.js b/lib/http-worker.js index 059ec7d8f..3ade5af71 100644 --- a/lib/http-worker.js +++ b/lib/http-worker.js @@ -178,7 +178,7 @@ app.head(/^\/common\/feedback\.html/, function (req, res, next) { const { createProxyMiddleware } = require("http-proxy-middleware"); -var proxyTarget = new URL('', 'ws:localhost'); +var proxyTarget = new URL('', `ws:${Env.httpAddress}`); proxyTarget.port = Env.websocketPort; const wsProxy = createProxyMiddleware({ From c59db652d481b5c8ba8f12cee38313895f32f69d Mon Sep 17 00:00:00 2001 From: David Benque Date: Thu, 19 Oct 2023 15:39:09 +0100 Subject: [PATCH 03/73] REUSE setup result of running `reuse init` --- .reuse/dep5 | 10 ++ LICENSES/AGPL-3.0-or-later.txt | 235 +++++++++++++++++++++++++++++++++ 2 files changed, 245 insertions(+) create mode 100644 .reuse/dep5 create mode 100644 LICENSES/AGPL-3.0-or-later.txt diff --git a/.reuse/dep5 b/.reuse/dep5 new file mode 100644 index 000000000..722820adb --- /dev/null +++ b/.reuse/dep5 @@ -0,0 +1,10 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: CryptPad +Upstream-Contact: XWiki +Source: https://cryptpad.org + +# Sample paragraph, commented out: +# +# Files: src/* +# Copyright: $YEAR $NAME <$CONTACT> +# License: ... diff --git a/LICENSES/AGPL-3.0-or-later.txt b/LICENSES/AGPL-3.0-or-later.txt new file mode 100644 index 000000000..0c97efd25 --- /dev/null +++ b/LICENSES/AGPL-3.0-or-later.txt @@ -0,0 +1,235 @@ +GNU AFFERO GENERAL PUBLIC LICENSE +Version 3, 19 November 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 Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are 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. + +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. + +Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. + +A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. + +The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. + +An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. + +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 Affero 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. Remote Network Interaction; Use with the GNU General Public License. + +Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. + +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 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 work with which it is combined will remain governed by version 3 of the GNU General Public License. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of the GNU Affero 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 Affero 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 Affero 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 Affero 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 Affero 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. + +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 AGPL, see . From 1a79fc91468c2e1673be00348a524b458cfecb83 Mon Sep 17 00:00:00 2001 From: David Benque Date: Thu, 19 Oct 2023 15:40:19 +0100 Subject: [PATCH 04/73] Tests on www/admin and www/calendar --- www/admin/app-admin.less | 6 ++++++ www/admin/index.html | 6 ++++++ www/admin/inner.html | 6 ++++++ www/admin/inner.js | 4 ++++ www/admin/main.js | 4 ++++ www/calendar/app-calendar.less | 6 ++++++ www/calendar/export.js | 4 ++++ www/calendar/index.html | 6 ++++++ www/calendar/inner.html | 6 ++++++ www/calendar/inner.js | 4 ++++ www/calendar/main.js | 4 ++++ www/calendar/recurrence.js | 4 ++++ 12 files changed, 60 insertions(+) diff --git a/www/admin/app-admin.less b/www/admin/app-admin.less index d9811b662..28efad7e7 100644 --- a/www/admin/app-admin.less +++ b/www/admin/app-admin.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/sidebar-layout.less'; @import (reference) '../../customize/src/less2/include/support.less'; diff --git a/www/admin/index.html b/www/admin/index.html index bd4595c54..afde85cbd 100644 --- a/www/admin/index.html +++ b/www/admin/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/admin/inner.html b/www/admin/inner.html index 976118bff..ab05a3105 100644 --- a/www/admin/inner.html +++ b/www/admin/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/admin/inner.js b/www/admin/inner.js index 4d5ae11b7..d784c7379 100644 --- a/www/admin/inner.js +++ b/www/admin/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/admin/main.js b/www/admin/main.js index 06a25957f..f6be3331c 100644 --- a/www/admin/main.js +++ b/www/admin/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/calendar/app-calendar.less b/www/calendar/app-calendar.less index 6bb76cf8e..de047cc62 100644 --- a/www/calendar/app-calendar.less +++ b/www/calendar/app-calendar.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/sidebar-layout.less'; @import (reference) '../../customize/src/less2/include/tools.less'; diff --git a/www/calendar/export.js b/www/calendar/export.js index 694179a9f..df62221c8 100644 --- a/www/calendar/export.js +++ b/www/calendar/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // This file is used when a user tries to export the entire CryptDrive. // Calendars will be exported using this format instead of plain text. define([ diff --git a/www/calendar/index.html b/www/calendar/index.html index e5cef404e..c8c6384bb 100644 --- a/www/calendar/index.html +++ b/www/calendar/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/calendar/inner.html b/www/calendar/inner.html index 79d2d6b34..4523f16a8 100644 --- a/www/calendar/inner.html +++ b/www/calendar/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 800045e14..e32b70d81 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', 'json.sortify', diff --git a/www/calendar/main.js b/www/calendar/main.js index 72eb336c8..82239f511 100644 --- a/www/calendar/main.js +++ b/www/calendar/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/calendar/recurrence.js b/www/calendar/recurrence.js index bd3fa0519..5e7d0a27a 100644 --- a/www/calendar/recurrence.js +++ b/www/calendar/recurrence.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', ], function (Util) { From 33b1376b5ce5f81d36f13aae69ef804f5f4cc0ee Mon Sep 17 00:00:00 2001 From: yflory Date: Fri, 20 Oct 2023 14:19:35 +0200 Subject: [PATCH 05/73] Fix undefined user hash in localStorage #1298 --- www/common/sframe-common-outer.js | 2 +- www/settings/main.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index a24cbe290..4ccda4b68 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -1235,7 +1235,7 @@ define([ var nSecret = secret; if (cfg.isDrive) { // Shared folder or user hash or fs hash - var hash = Utils.LocalStore.getUserHash() || Utils.LocalStore.getFSHash(); + var hash = Cryptpad.userHash || Utils.LocalStore.getFSHash(); if (data.sharedFolder) { hash = data.sharedFolder.hash; } if (hash) { var password = (data.sharedFolder && data.sharedFolder.password) || undefined; diff --git a/www/settings/main.js b/www/settings/main.js index 371c4f899..5fdeab860 100644 --- a/www/settings/main.js +++ b/www/settings/main.js @@ -51,7 +51,7 @@ define([ require([ '/common/cryptget.js', ], function (Crypt) { - var k = Utils.LocalStore.getUserHash() || Utils.LocalStore.getFSHash(); + var k = Cryptpad.userHash || Utils.LocalStore.getFSHash(); Crypt.put(k, sjson, function (err) { cb(err); }); From 97223214a65ea932085fcdddc56fd42c02b5ab0e Mon Sep 17 00:00:00 2001 From: David Benque Date: Fri, 20 Oct 2023 15:33:55 +0100 Subject: [PATCH 06/73] Make use of dep5 file --- .reuse/dep5 | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/.reuse/dep5 b/.reuse/dep5 index 722820adb..75817642a 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -8,3 +8,44 @@ Source: https://cryptpad.org # Files: src/* # Copyright: $YEAR $NAME <$CONTACT> # License: ... + +# Temporary WIP DIRECTORIES + +# www/common/onlyoffice +# www/components +# www/lib + +Files: www/common/onlyoffice/* +Copyright: ignoring this for now +License: MIT + +Files: www/components/* +Copyright: Respective copyright holders +License: MIT + +Files: www/lib/* +Copyright: Respective copyright holders +License: MIT + +Files: www/common/theme/* +Copyright: temporary +License: MIT + +## Dependencies + +Files: www/pad/mathjax/* +Copyright: 2009-2018 The MathJax Consortium +License: Apache-2.0 + +Files: www/pad/wordcount/* +Copyright: Ingo Herbote +License: MIT + +# same as CKEditor +Files: www/pad/wysiwygarea-plugin.js +Copyright: 2003-2017, CKSource - Frederico Knabben. All rights reserved +License: GPL-2.0-or-later + +Files: www/pad/icons/* +Copyright: unknown +License: GPL-2.0-or-later From 8f0a6319a5e6a2e703edb61a659c6452d8a0c8bd Mon Sep 17 00:00:00 2001 From: David Benque Date: Fri, 20 Oct 2023 15:35:26 +0100 Subject: [PATCH 07/73] Apply headers --- .dockerignore | 4 + .editorconfig | 4 + .flowconfig | 4 + .github/FUNDING.yml | 4 + .github/ISSUE_TEMPLATE/bug_resolution.yml | 4 + .github/ISSUE_TEMPLATE/config.yml | 4 + .gitignore | 4 + .jshintignore.license | 3 + .jshintrc.license | 3 + .lesshintrc.license | 3 + CHANGELOG.md | 5 + CODE_OF_CONDUCT.md | 6 + Dockerfile | 4 + LICENSES/Apache-2.0.txt | 73 +++++++++++ LICENSES/GPL-2.0-or-later.txt | 117 ++++++++++++++++++ LICENSES/MIT.txt | 9 ++ and_so_it_begins.png.license | 3 + config/config.example.js | 4 + cryptofist.png.license | 3 + customize.dist/404.html | 6 + customize.dist/500.html | 6 + customize.dist/CryptPad_logo.svg.license | 3 + customize.dist/CryptPad_logo_grey.svg.license | 3 + customize.dist/CryptPad_logo_hero.svg.license | 3 + customize.dist/application_config.js | 4 + customize.dist/ckeditor-config.js | 4 + customize.dist/ckeditor-contents.css | 8 +- customize.dist/contact.html | 6 + customize.dist/delta-words.js | 4 + customize.dist/down.html | 6 + customize.dist/favicon.ico.license | 3 + .../favicon/alt-favicon-code.ico.license | 3 + .../favicon/alt-favicon-code.png.license | 3 + .../favicon/alt-favicon-diagram.ico.license | 3 + .../favicon/alt-favicon-diagram.png.license | 3 + .../favicon/alt-favicon-doc.ico.license | 3 + .../favicon/alt-favicon-doc.png.license | 3 + .../favicon/alt-favicon-form.ico.license | 3 + .../favicon/alt-favicon-form.png.license | 3 + .../favicon/alt-favicon-kanban.ico.license | 3 + .../favicon/alt-favicon-kanban.png.license | 3 + .../favicon/alt-favicon-pad.ico.license | 3 + .../favicon/alt-favicon-pad.png.license | 3 + .../favicon/alt-favicon-poll.ico.license | 3 + .../favicon/alt-favicon-poll.png.license | 3 + .../alt-favicon-presentation.ico.license | 3 + .../alt-favicon-presentation.png.license | 3 + .../favicon/alt-favicon-sheet.ico.license | 3 + .../favicon/alt-favicon-sheet.png.license | 3 + .../favicon/alt-favicon-slide.ico.license | 3 + .../favicon/alt-favicon-slide.png.license | 3 + .../alt-favicon-whiteboard.ico.license | 3 + .../alt-favicon-whiteboard.png.license | 3 + .../favicon/alt-favicon.ico.license | 3 + .../favicon/alt-favicon.png.license | 3 + .../favicon/favicon_source.svg.license | 3 + .../favicon/main-favicon-code.ico.license | 3 + .../favicon/main-favicon-code.png.license | 3 + .../favicon/main-favicon-diagram.ico.license | 3 + .../favicon/main-favicon-diagram.png.license | 3 + .../favicon/main-favicon-doc.ico.license | 3 + .../favicon/main-favicon-doc.png.license | 3 + .../favicon/main-favicon-form.ico.license | 3 + .../favicon/main-favicon-form.png.license | 3 + .../favicon/main-favicon-kanban.ico.license | 3 + .../favicon/main-favicon-kanban.png.license | 3 + .../favicon/main-favicon-pad.ico.license | 3 + .../favicon/main-favicon-pad.png.license | 3 + .../favicon/main-favicon-poll.ico.license | 3 + .../favicon/main-favicon-poll.png.license | 3 + .../main-favicon-presentation.ico.license | 3 + .../main-favicon-presentation.png.license | 3 + .../favicon/main-favicon-sheet.ico.license | 3 + .../favicon/main-favicon-sheet.png.license | 3 + .../favicon/main-favicon-slide.ico.license | 3 + .../favicon/main-favicon-slide.png.license | 3 + .../favicon/main-favicon-teams.ico.license | 3 + .../favicon/main-favicon-teams.png.license | 3 + .../main-favicon-whiteboard.ico.license | 3 + .../main-favicon-whiteboard.png.license | 3 + .../favicon/main-favicon.ico.license | 3 + .../favicon/main-favicon.png.license | 3 + customize.dist/features.html | 6 + .../fonts/IBMPlexMono-Medium.woff.license | 3 + .../fonts/IBMPlexMono-Medium.woff2.license | 3 + customize.dist/fonts/cptools/README.md | 6 + .../fonts/cptools/fonts/cptools.eot.license | 3 + .../fonts/cptools/fonts/cptools.svg.license | 3 + .../fonts/cptools/fonts/cptools.ttf.license | 3 + .../fonts/cptools/fonts/cptools.woff.license | 3 + customize.dist/fonts/cptools/style.css | 6 + customize.dist/fonts/open-sans.less | 6 + customize.dist/four-oh-four.js | 4 + customize.dist/images/AGPL.png.license | 3 + customize.dist/images/avatar.png.license | 3 + customize.dist/images/email.svg.license | 3 + customize.dist/images/github.svg.license | 3 + .../images/icons/folder.svg.license | 3 + .../images/icons/folderOpen.svg.license | 3 + .../icons/ic_folder_black_24px.svg.license | 3 + .../ic_folder_open_black_24px.svg.license | 3 + customize.dist/images/irc.svg.license | 3 + customize.dist/images/issue.svg.license | 3 + customize.dist/images/logo_AGPLv3.svg.license | 3 + customize.dist/images/mastodon.svg.license | 3 + .../opengraph_preview/og-calendar.png.license | 3 + .../opengraph_preview/og-code.png.license | 3 + .../opengraph_preview/og-default.png.license | 3 + .../opengraph_preview/og-diagram.png.license | 3 + .../opengraph_preview/og-doc.png.license | 3 + .../opengraph_preview/og-drive.png.license | 3 + .../opengraph_preview/og-form.png.license | 3 + .../opengraph_preview/og-kanban.png.license | 3 + .../opengraph_preview/og-pad.png.license | 3 + .../opengraph_preview/og-poll.png.license | 3 + .../og-presentation.png.license | 3 + .../opengraph_preview/og-sheet.png.license | 3 + .../opengraph_preview/og-slide.png.license | 3 + .../opengraph_preview/og-teams.png.license | 3 + .../og-whiteboard.png.license | 3 + customize.dist/images/sayhi.svg.license | 3 + customize.dist/images/shredder.png.license | 3 + customize.dist/images/support.svg.license | 3 + .../images/swallow-the-key.png.license | 3 + customize.dist/images/twiitter.svg.license | 3 + customize.dist/index.html | 6 + customize.dist/loading.js | 4 + customize.dist/login.js | 4 + customize.dist/main-favicon.png.license | 3 + customize.dist/main.js | 4 + customize.dist/messages.js | 4 + customize.dist/pages.js | 4 + customize.dist/pages/contact.js | 4 + customize.dist/pages/features.js | 4 + customize.dist/pages/index.js | 4 + customize.dist/pages/install.js | 4 + customize.dist/pages/login.js | 4 + customize.dist/pages/recovery.js | 4 + customize.dist/pages/register.js | 4 + customize.dist/pre-loading.js | 4 + customize.dist/readme.md | 6 + .../src/less2/include/alertify.less | 5 + .../src/less2/include/app-noscroll.less | 6 + .../src/less2/include/app-print.less | 6 + customize.dist/src/less2/include/avatar.less | 6 + customize.dist/src/less2/include/browser.less | 6 + customize.dist/src/less2/include/charts.less | 6 + .../src/less2/include/checkmark.less | 6 + .../src/less2/include/ckeditor-fix.less | 6 + .../src/less2/include/colortheme-all.less | 6 + .../src/less2/include/colortheme-dark.less | 6 + .../src/less2/include/colortheme.less | 6 + .../src/less2/include/comments.less | 6 + .../src/less2/include/contextmenu.less | 6 + customize.dist/src/less2/include/corner.less | 6 + .../src/less2/include/creation.less | 6 + customize.dist/src/less2/include/cursor.less | 6 + customize.dist/src/less2/include/drive.less | 6 + .../src/less2/include/dropdown.less | 6 + customize.dist/src/less2/include/export.less | 6 + .../src/less2/include/fileupload.less | 6 + customize.dist/src/less2/include/font.less | 6 + customize.dist/src/less2/include/forms.less | 6 + .../src/less2/include/framework.less | 6 + customize.dist/src/less2/include/help.less | 6 + .../src/less2/include/icon-colors.less | 6 + customize.dist/src/less2/include/icons.less | 6 + .../src/less2/include/infopages.less | 6 + .../src/less2/include/leftside-menu.less | 6 + .../src/less2/include/limit-bar.less | 6 + customize.dist/src/less2/include/loading.less | 6 + .../src/less2/include/markdown.less | 6 + .../src/less2/include/mediatag.less | 6 + .../src/less2/include/mentions.less | 6 + .../src/less2/include/messenger.less | 6 + customize.dist/src/less2/include/modal.less | 6 + .../src/less2/include/modals-ui-elements.less | 6 + .../src/less2/include/notifications.less | 6 + .../src/less2/include/password-input.less | 6 + .../src/less2/include/sidebar-layout.less | 6 + customize.dist/src/less2/include/support.less | 6 + customize.dist/src/less2/include/tippy.less | 6 + .../src/less2/include/tokenfield.less | 6 + .../src/less2/include/toolbar-history.less | 6 + customize.dist/src/less2/include/toolbar.less | 6 + customize.dist/src/less2/include/tools.less | 6 + .../src/less2/include/unselectable.less | 6 + .../src/less2/include/usergrid.less | 6 + .../src/less2/include/variables.less | 6 + customize.dist/src/less2/pages/page-404.less | 6 + .../src/less2/pages/page-assert.less | 6 + .../src/less2/pages/page-contact.less | 6 + .../src/less2/pages/page-features.less | 6 + .../src/less2/pages/page-feedback.less | 6 + .../src/less2/pages/page-index.less | 6 + .../src/less2/pages/page-install.less | 6 + .../src/less2/pages/page-login.less | 6 + .../src/less2/pages/page-privacy.less | 6 + .../src/less2/pages/page-recovery.less | 6 + .../src/less2/pages/page-register.less | 6 + .../src/less2/pages/page-report.less | 6 + .../src/less2/pages/page-terms.less | 6 + .../less2/pages/page-what-is-cryptpad.less | 6 + customize.dist/src/less2/readme.md | 6 + customize.dist/src/outer.css | 6 + customize.dist/src/pre-loading.css | 6 + customize.dist/src/print-landscape.css | 6 + customize.dist/src/print.css | 6 + customize.dist/src/template.html | 6 + customize.dist/template.js | 4 + customize.dist/translations/README.md | 6 + customize.dist/translations/messages.ca.js | 4 + customize.dist/translations/messages.cs.js | 4 + customize.dist/translations/messages.de.js | 4 + customize.dist/translations/messages.el.js | 4 + customize.dist/translations/messages.es.js | 4 + customize.dist/translations/messages.eu.js | 4 + customize.dist/translations/messages.fi.js | 4 + customize.dist/translations/messages.fr.js | 4 + customize.dist/translations/messages.hi.js | 4 + customize.dist/translations/messages.it.js | 4 + customize.dist/translations/messages.ja.js | 4 + customize.dist/translations/messages.js | 4 + customize.dist/translations/messages.nb.js | 4 + customize.dist/translations/messages.nl.js | 4 + customize.dist/translations/messages.pl.js | 4 + customize.dist/translations/messages.pt-br.js | 4 + customize.dist/translations/messages.pt-pt.js | 4 + customize.dist/translations/messages.ro.js | 4 + customize.dist/translations/messages.ru.js | 4 + customize.dist/translations/messages.sv.js | 4 + customize.dist/translations/messages.te.js | 4 + customize.dist/translations/messages.uk.js | 4 + customize.dist/translations/messages.zh.js | 4 + docker-compose.yml | 4 + docker-entrypoint.sh | 4 + docs/ARCHITECTURE.md | 6 + docs/cryptpad.service | 4 + docs/debugging.md | 6 + docs/example-advanced.nginx.conf | 4 + docs/example.nginx.conf | 4 + docs/rc.d-cryptpad.license | 3 + lib/api.js | 4 + lib/archive-account.js | 4 + lib/batch-read.js | 4 + lib/challenge-commands/base.js | 4 + lib/challenge-commands/totp.js | 4 + lib/client/index.js | 4 + lib/commands/admin-rpc.js | 4 + lib/commands/block.js | 4 + lib/commands/channel.js | 4 + lib/commands/core.js | 4 + lib/commands/metadata.js | 4 + lib/commands/pin-rpc.js | 4 + lib/commands/quota.js | 4 + lib/commands/upload.js | 4 + lib/common-util.js | 4 + lib/decrees.js | 4 + lib/defaults.js | 4 + lib/env.js | 4 + lib/eviction.js | 4 + lib/historyKeeper.js | 4 + lib/hk-util.js | 4 + lib/http-commands.js | 4 + lib/http-worker.js | 4 + lib/keys.js | 4 + lib/load-config.js | 4 + lib/log.js | 4 + lib/metadata.js | 4 + lib/pins.js | 4 + lib/plan.js | 4 + lib/rpc.js | 4 + lib/schedule.js | 4 + lib/stats.js | 4 + lib/storage/basic.js | 4 + lib/storage/blob.js | 4 + lib/storage/block.js | 4 + lib/storage/challenge.js | 4 + lib/storage/file.js | 4 + lib/storage/mfa.js | 4 + lib/storage/sessions.js | 4 + lib/storage/tasks.js | 4 + lib/stream-file.js | 4 + lib/workers/db-worker.js | 4 + lib/workers/index.js | 4 + lib/write-queue.js | 4 + package-lock.json.license | 3 + package.json.license | 3 + readme.md | 6 + screenshot-suite.png.license | 3 + screenshot.png.license | 3 + scripts/TestSelenium.js | 4 + scripts/build.js | 4 + scripts/check-account-deletion.js | 4 + scripts/check-accounts.js | 4 + scripts/clear.js | 4 + scripts/compare-pin-methods.js | 4 + scripts/convert-favicons-to-ico.sh | 5 + scripts/copy-components.js | 4 + scripts/diagnose-archive-conflicts.js | 4 + scripts/evict-archived.js | 4 + scripts/evict-inactive.js | 4 + scripts/expire-channels.js | 4 + scripts/generate-admin-keys.js | 4 + scripts/install.js | 4 + scripts/issue-jwt.js | 4 + scripts/migrations/migrate-tasks-v1.js | 4 + scripts/pinned.js | 4 + scripts/restore-archived.js | 4 + scripts/runtests.js | 4 + scripts/test-metadata.js | 4 + scripts/tests/index.js | 4 + scripts/tests/roster.js | 4 + scripts/tests/test-lkh.js | 4 + scripts/tests/test-mailbox.js | 4 + scripts/tests/test-pins.js | 4 + scripts/tests/test-plan.js | 4 + scripts/tests/test-rpc.js | 4 + scripts/tests/test-scheduler.js | 4 + .../find-duplicate-translations.js | 4 + scripts/translations/lint-translations.js | 4 + scripts/translations/unused-translations.js | 4 + server.js | 4 + www/assert/assertions.js | 4 + www/assert/frame/frame.html | 6 + www/assert/frame/frame.js | 4 + www/assert/frame/respond.js | 4 + www/assert/index.html | 6 + www/assert/main.js | 4 + www/auth/app-auth.less | 6 + www/auth/base32.js | 4 + www/auth/index.html | 6 + www/auth/main.js | 4 + www/bounce/index.html | 6 + www/bounce/main.js | 4 + www/bounce/readme.md | 6 + www/checkup/app-checkup.less | 6 + www/checkup/checkup-tools.js | 4 + www/checkup/dependency-warning.js | 4 + www/checkup/index.html | 6 + www/checkup/inner.html | 6 + www/checkup/inner.js | 4 + www/checkup/main.js | 4 + www/checkup/sandbox/index.html | 6 + www/checkup/sandbox/main.js | 4 + www/code/app-code.less | 6 + www/code/export.js | 4 + www/code/index.html | 6 + www/code/inner.html | 6 + www/code/inner.js | 4 + www/code/markers.js | 4 + www/code/mermaid-new.css | 6 + www/code/mermaid.css | 6 + www/code/orgmode.js | 4 + www/common/LessLoader.js | 4 + www/common/RequireLess.js | 4 + www/common/TypingTests.js | 4 + www/common/application_config_internal.js | 4 + www/common/boot.js | 4 + www/common/boot2.js | 4 + www/common/clipboard.js | 4 + www/common/common-constants.js | 4 + www/common/common-credential.js | 4 + www/common/common-feedback.js | 4 + www/common/common-hash.js | 4 + www/common/common-interface.js | 4 + www/common/common-language.js | 4 + www/common/common-messaging.js | 4 + www/common/common-notifier.js | 4 + www/common/common-realtime.js | 4 + www/common/common-signing-keys.js | 4 + www/common/common-thumbnail.js | 4 + www/common/common-ui-elements.js | 4 + www/common/common-util.js | 4 + www/common/cryptget.js | 4 + www/common/cryptpad-common.js | 4 + www/common/cursor-treesome.js | 4 + www/common/cursor.js | 4 + www/common/diffMarked.js | 4 + www/common/dom-ready.js | 4 + www/common/drive-ui.js | 4 + www/common/encode.js | 4 + www/common/feedback-main.js | 4 + www/common/feedback.html | 6 + www/common/flat-dom.js | 4 + www/common/hyperscript.js | 15 ++- www/common/inner/access.js | 4 + www/common/inner/cache.js | 4 + www/common/inner/common-mediatag.js | 4 + www/common/inner/common-modal.js | 4 + www/common/inner/invitation.js | 4 + www/common/inner/properties.js | 4 + www/common/inner/share.js | 4 + www/common/inner/snapshots.js | 4 + www/common/jscolor.js | 4 + www/common/loading.js | 4 + www/common/make-backup.js | 4 + www/common/media-tag-nacl.min.js | 4 + www/common/media-tag.js | 4 + www/common/mergeDrive.js | 4 + www/common/messenger-ui.js | 4 + www/common/metadata-manager.js | 4 + www/common/migrate-user-object.js | 4 + www/common/modes.js | 4 + www/common/notifications.js | 4 + www/common/notify.js | 4 + www/common/outer/async-store.js | 4 + www/common/outer/cache-store.js | 4 + www/common/outer/calendar.js | 4 + www/common/outer/cursor.js | 4 + www/common/outer/history.js | 4 + www/common/outer/http-command.js | 4 + www/common/outer/integration.js | 4 + www/common/outer/invitation.js | 4 + www/common/outer/local-store.js | 4 + www/common/outer/login-block.js | 4 + www/common/outer/mailbox-handlers.js | 4 + www/common/outer/mailbox.js | 4 + www/common/outer/messenger.js | 4 + www/common/outer/network-config.js | 4 + www/common/outer/noworker.js | 4 + www/common/outer/onlyoffice.js | 4 + www/common/outer/profile.js | 4 + www/common/outer/roster.js | 4 + www/common/outer/serviceworker.js | 4 + www/common/outer/sharedfolder.js | 4 + www/common/outer/sharedworker.js | 4 + www/common/outer/store-rpc.js | 4 + www/common/outer/team.js | 4 + www/common/outer/testworker.js | 4 + www/common/outer/upload.js | 4 + www/common/outer/userObject.js | 4 + www/common/outer/webworker.js | 4 + www/common/outer/worker-channel.js | 4 + www/common/outer/x2t.js | 4 + www/common/pinpad.js | 4 + www/common/proxy-manager.js | 4 + www/common/requireconfig.js | 4 + www/common/rpc.js | 4 + www/common/sframe-app-framework.js | 4 + www/common/sframe-app-outer.js | 4 + www/common/sframe-boot.js | 4 + www/common/sframe-boot2.js | 4 + www/common/sframe-chainpad-netflux-inner.js | 21 +--- www/common/sframe-chainpad-netflux-outer.js | 21 +--- www/common/sframe-common-codemirror.js | 4 + www/common/sframe-common-cursor.js | 4 + www/common/sframe-common-file.js | 4 + www/common/sframe-common-history.js | 4 + www/common/sframe-common-integration.js | 4 + www/common/sframe-common-mailbox.js | 4 + www/common/sframe-common-outer.js | 4 + www/common/sframe-common-title.js | 4 + www/common/sframe-common.js | 4 + www/common/test.js | 4 + www/common/test.md | 6 + www/common/text-cursor.js | 4 + www/common/themes.js | 4 + www/common/toolbar.js | 4 + www/common/translations/README.md | 6 + www/common/translations/README.md.license | 3 + .../archive/messages.bn_BD.json.license | 3 + .../archive/messages.te.json.license | 3 + .../archive/messages.uk.json.license | 3 + .../translations/messages.ar.json.license | 3 + .../translations/messages.bg.json.license | 3 + .../translations/messages.ca.json.license | 3 + .../translations/messages.cs.json.license | 3 + .../translations/messages.da.json.license | 3 + .../translations/messages.de.json.license | 3 + .../translations/messages.el.json.license | 3 + .../translations/messages.es.json.license | 3 + .../translations/messages.es_CU.json.license | 3 + .../translations/messages.eu.json.license | 3 + .../translations/messages.fa.json.license | 3 + .../translations/messages.fi.json.license | 3 + .../translations/messages.fr.json.license | 3 + .../translations/messages.hi.json.license | 3 + .../translations/messages.hu.json.license | 3 + .../translations/messages.id.json.license | 3 + .../translations/messages.it.json.license | 3 + .../translations/messages.ja.json.license | 3 + www/common/translations/messages.json.license | 3 + .../translations/messages.ko.json.license | 3 + .../translations/messages.lt.json.license | 3 + .../translations/messages.nb.json.license | 3 + .../translations/messages.nl.json.license | 3 + .../translations/messages.pl.json.license | 3 + .../translations/messages.pt-br.json.license | 3 + .../translations/messages.pt-pt.json.license | 3 + .../translations/messages.ro.json.license | 3 + .../translations/messages.ru.json.license | 3 + .../translations/messages.sk.json.license | 3 + .../translations/messages.sv.json.license | 3 + .../translations/messages.th.json.license | 3 + .../translations/messages.tr.json.license | 3 + .../translations/messages.uk.json.license | 3 + .../translations/messages.zh.json.license | 3 + www/common/translations/update.js | 4 + www/common/translations/update.js.license | 3 + www/common/userObject.js | 4 + www/common/visible.js | 4 + www/common/wire.js | 4 + www/contacts/app-contacts.less | 6 + www/contacts/index.html | 6 + www/contacts/inner.html | 6 + www/contacts/inner.js | 4 + www/contacts/main.js | 4 + www/convert/app-convert.less | 6 + www/convert/index.html | 6 + www/convert/inner.html | 6 + www/convert/inner.js | 4 + www/convert/main.js | 4 + www/cryptpad-api.js | 4 + www/debug/app-debug.less | 6 + www/debug/chainpad.dist.js | 22 +--- www/debug/colors.js | 4 + www/debug/index.html | 6 + www/debug/inner.html | 6 + www/debug/inner.js | 4 + www/debug/main.js | 4 + www/diagram/app-diagram.less | 6 + www/diagram/drawio.css | 6 + www/diagram/export.js | 4 + www/diagram/index.html | 6 + www/diagram/inner.html | 6 + www/diagram/inner.js | 4 + www/doc/export.js | 4 + www/doc/index.html | 6 + www/doc/inner.html | 6 + www/drive/app-drive.less | 6 + www/drive/index.html | 6 + www/drive/inner.html | 6 + www/drive/inner.js | 4 + www/drive/main.js | 4 + www/drive/tests.js | 4 + www/file/app-file.less | 6 + www/file/file-crypto.js | 4 + www/file/index.html | 6 + www/file/inner.html | 6 + www/file/inner.js | 4 + www/file/main.js | 4 + www/form/app-form.less | 6 + www/form/condorcet.js | 3 + www/form/export.js | 4 + www/form/index.html | 6 + www/form/inner.html | 6 + www/form/inner.js | 4 + www/form/main.js | 4 + www/form/templates.js | 4 + www/install/index.html | 6 + www/install/main.js | 4 + www/integration/app-nextcloud.less | 6 + www/integration/index.html | 6 + www/integration/main.js | 4 + www/kanban/app-kanban.less | 6 + www/kanban/export.js | 4 + www/kanban/index.html | 6 + www/kanban/inner.html | 6 + www/kanban/inner.js | 4 + www/kanban/jkanban.js | 4 + www/kanban/jkanban_cp.js | 4 + www/login/index.html | 6 + www/login/main.js | 4 + www/logout/index.html | 6 + www/logout/main.js | 4 + www/main.js | 4 + www/mediatag/index.html | 6 + www/mediatag/main.js | 4 + www/mediatag/media-tag.js | 4 + www/nextcloud/app-nextcloud.less | 6 + www/nextcloud/index.html | 6 + www/nextcloud/main.js | 4 + www/notifications/app-notifications.less | 6 + www/notifications/index.html | 6 + www/notifications/inner.html | 6 + www/notifications/inner.js | 4 + www/notifications/main.js | 4 + www/pad/app-pad.less | 6 + www/pad/ckeditor-inner.html | 6 + www/pad/comment.js | 4 + www/pad/comments.js | 4 + www/pad/csp.js | 4 + www/pad/cursor.js | 4 + www/pad/disable-base64.js | 4 + www/pad/export.js | 4 + www/pad/index.html | 6 + www/pad/inner.html | 6 + www/pad/inner.js | 4 + www/pad/links.js | 4 + www/pad/mediatag-plugin-dialog.js | 4 + www/pad/mediatag-plugin.js | 4 + www/poll/app-poll.less | 6 + www/poll/export.js | 4 + www/poll/index.html | 6 + www/poll/inner.html | 6 + www/poll/inner.js | 4 + www/poll/main.js | 4 + www/poll/render.js | 4 + www/presentation/export.js | 4 + www/presentation/index.html | 6 + www/presentation/inner.html | 6 + www/profile/app-profile.less | 6 + www/profile/index.html | 6 + www/profile/inner.html | 6 + www/profile/inner.js | 4 + www/profile/main.js | 4 + www/recovery/index.html | 6 + www/recovery/main.js | 4 + www/register/index.html | 6 + www/register/main.js | 4 + www/report/index.html | 6 + www/report/main.js | 4 + www/secureiframe/app-secure.less | 6 + www/secureiframe/inner.html | 6 + www/secureiframe/inner.js | 4 + www/secureiframe/main.js | 4 + www/settings/app-settings.less | 6 + www/settings/index.html | 6 + www/settings/inner.html | 6 + www/settings/inner.js | 4 + www/settings/main.js | 4 + www/sheet/export.js | 4 + www/sheet/index.html | 6 + www/sheet/inner.html | 6 + www/slide/app-slide.less | 6 + www/slide/export.js | 4 + www/slide/index.html | 6 + www/slide/inner.html | 6 + www/slide/inner.js | 4 + www/slide/slide.js | 4 + www/support/app-support.less | 6 + www/support/index.html | 6 + www/support/inner.html | 6 + www/support/inner.js | 4 + www/support/main.js | 4 + www/support/ui.js | 4 + www/teams/app-team.less | 6 + www/teams/index.html | 6 + www/teams/inner.html | 6 + www/teams/inner.js | 4 + www/teams/main.js | 4 + www/todo/app-todo.less | 6 + www/todo/index.html | 6 + www/todo/inner.html | 6 + www/todo/inner.js | 4 + www/todo/main.js | 4 + www/todo/todo.js | 4 + www/unsafeiframe/inner.html | 6 + www/unsafeiframe/inner.js | 4 + www/unsafeiframe/main.js | 4 + www/whiteboard/app-whiteboard.less | 6 + www/whiteboard/colors.js | 4 + www/whiteboard/export.js | 4 + www/whiteboard/index.html | 6 + www/whiteboard/inner.html | 6 + www/whiteboard/inner.js | 4 + www/worker/app-worker.less | 6 + www/worker/index.html | 6 + www/worker/inner.html | 6 + www/worker/inner.js | 4 + www/worker/main.js | 4 + www/worker/messages.js | 4 + www/worker/sw.js | 4 + www/worker/todo.js | 4 + www/worker/worker.js | 4 + 666 files changed, 3078 insertions(+), 57 deletions(-) create mode 100644 .jshintignore.license create mode 100644 .jshintrc.license create mode 100644 .lesshintrc.license create mode 100644 LICENSES/Apache-2.0.txt create mode 100644 LICENSES/GPL-2.0-or-later.txt create mode 100644 LICENSES/MIT.txt create mode 100644 and_so_it_begins.png.license create mode 100644 cryptofist.png.license create mode 100644 customize.dist/CryptPad_logo.svg.license create mode 100644 customize.dist/CryptPad_logo_grey.svg.license create mode 100644 customize.dist/CryptPad_logo_hero.svg.license create mode 100644 customize.dist/favicon.ico.license create mode 100644 customize.dist/favicon/alt-favicon-code.ico.license create mode 100644 customize.dist/favicon/alt-favicon-code.png.license create mode 100644 customize.dist/favicon/alt-favicon-diagram.ico.license create mode 100644 customize.dist/favicon/alt-favicon-diagram.png.license create mode 100644 customize.dist/favicon/alt-favicon-doc.ico.license create mode 100644 customize.dist/favicon/alt-favicon-doc.png.license create mode 100644 customize.dist/favicon/alt-favicon-form.ico.license create mode 100644 customize.dist/favicon/alt-favicon-form.png.license create mode 100644 customize.dist/favicon/alt-favicon-kanban.ico.license create mode 100644 customize.dist/favicon/alt-favicon-kanban.png.license create mode 100644 customize.dist/favicon/alt-favicon-pad.ico.license create mode 100644 customize.dist/favicon/alt-favicon-pad.png.license create mode 100644 customize.dist/favicon/alt-favicon-poll.ico.license create mode 100644 customize.dist/favicon/alt-favicon-poll.png.license create mode 100644 customize.dist/favicon/alt-favicon-presentation.ico.license create mode 100644 customize.dist/favicon/alt-favicon-presentation.png.license create mode 100644 customize.dist/favicon/alt-favicon-sheet.ico.license create mode 100644 customize.dist/favicon/alt-favicon-sheet.png.license create mode 100644 customize.dist/favicon/alt-favicon-slide.ico.license create mode 100644 customize.dist/favicon/alt-favicon-slide.png.license create mode 100644 customize.dist/favicon/alt-favicon-whiteboard.ico.license create mode 100644 customize.dist/favicon/alt-favicon-whiteboard.png.license create mode 100644 customize.dist/favicon/alt-favicon.ico.license create mode 100644 customize.dist/favicon/alt-favicon.png.license create mode 100644 customize.dist/favicon/favicon_source.svg.license create mode 100644 customize.dist/favicon/main-favicon-code.ico.license create mode 100644 customize.dist/favicon/main-favicon-code.png.license create mode 100644 customize.dist/favicon/main-favicon-diagram.ico.license create mode 100644 customize.dist/favicon/main-favicon-diagram.png.license create mode 100644 customize.dist/favicon/main-favicon-doc.ico.license create mode 100644 customize.dist/favicon/main-favicon-doc.png.license create mode 100644 customize.dist/favicon/main-favicon-form.ico.license create mode 100644 customize.dist/favicon/main-favicon-form.png.license create mode 100644 customize.dist/favicon/main-favicon-kanban.ico.license create mode 100644 customize.dist/favicon/main-favicon-kanban.png.license create mode 100644 customize.dist/favicon/main-favicon-pad.ico.license create mode 100644 customize.dist/favicon/main-favicon-pad.png.license create mode 100644 customize.dist/favicon/main-favicon-poll.ico.license create mode 100644 customize.dist/favicon/main-favicon-poll.png.license create mode 100644 customize.dist/favicon/main-favicon-presentation.ico.license create mode 100644 customize.dist/favicon/main-favicon-presentation.png.license create mode 100644 customize.dist/favicon/main-favicon-sheet.ico.license create mode 100644 customize.dist/favicon/main-favicon-sheet.png.license create mode 100644 customize.dist/favicon/main-favicon-slide.ico.license create mode 100644 customize.dist/favicon/main-favicon-slide.png.license create mode 100644 customize.dist/favicon/main-favicon-teams.ico.license create mode 100644 customize.dist/favicon/main-favicon-teams.png.license create mode 100644 customize.dist/favicon/main-favicon-whiteboard.ico.license create mode 100644 customize.dist/favicon/main-favicon-whiteboard.png.license create mode 100644 customize.dist/favicon/main-favicon.ico.license create mode 100644 customize.dist/favicon/main-favicon.png.license create mode 100644 customize.dist/fonts/IBMPlexMono-Medium.woff.license create mode 100644 customize.dist/fonts/IBMPlexMono-Medium.woff2.license create mode 100644 customize.dist/fonts/cptools/fonts/cptools.eot.license create mode 100644 customize.dist/fonts/cptools/fonts/cptools.svg.license create mode 100644 customize.dist/fonts/cptools/fonts/cptools.ttf.license create mode 100644 customize.dist/fonts/cptools/fonts/cptools.woff.license create mode 100644 customize.dist/images/AGPL.png.license create mode 100644 customize.dist/images/avatar.png.license create mode 100644 customize.dist/images/email.svg.license create mode 100644 customize.dist/images/github.svg.license create mode 100644 customize.dist/images/icons/folder.svg.license create mode 100644 customize.dist/images/icons/folderOpen.svg.license create mode 100644 customize.dist/images/icons/ic_folder_black_24px.svg.license create mode 100644 customize.dist/images/icons/ic_folder_open_black_24px.svg.license create mode 100644 customize.dist/images/irc.svg.license create mode 100644 customize.dist/images/issue.svg.license create mode 100644 customize.dist/images/logo_AGPLv3.svg.license create mode 100644 customize.dist/images/mastodon.svg.license create mode 100644 customize.dist/images/opengraph_preview/og-calendar.png.license create mode 100644 customize.dist/images/opengraph_preview/og-code.png.license create mode 100644 customize.dist/images/opengraph_preview/og-default.png.license create mode 100644 customize.dist/images/opengraph_preview/og-diagram.png.license create mode 100644 customize.dist/images/opengraph_preview/og-doc.png.license create mode 100644 customize.dist/images/opengraph_preview/og-drive.png.license create mode 100644 customize.dist/images/opengraph_preview/og-form.png.license create mode 100644 customize.dist/images/opengraph_preview/og-kanban.png.license create mode 100644 customize.dist/images/opengraph_preview/og-pad.png.license create mode 100644 customize.dist/images/opengraph_preview/og-poll.png.license create mode 100644 customize.dist/images/opengraph_preview/og-presentation.png.license create mode 100644 customize.dist/images/opengraph_preview/og-sheet.png.license create mode 100644 customize.dist/images/opengraph_preview/og-slide.png.license create mode 100644 customize.dist/images/opengraph_preview/og-teams.png.license create mode 100644 customize.dist/images/opengraph_preview/og-whiteboard.png.license create mode 100644 customize.dist/images/sayhi.svg.license create mode 100644 customize.dist/images/shredder.png.license create mode 100644 customize.dist/images/support.svg.license create mode 100644 customize.dist/images/swallow-the-key.png.license create mode 100644 customize.dist/images/twiitter.svg.license create mode 100644 customize.dist/main-favicon.png.license create mode 100644 docs/rc.d-cryptpad.license create mode 100644 package-lock.json.license create mode 100644 package.json.license create mode 100644 screenshot-suite.png.license create mode 100644 screenshot.png.license create mode 100644 www/common/translations/README.md.license create mode 100644 www/common/translations/archive/messages.bn_BD.json.license create mode 100644 www/common/translations/archive/messages.te.json.license create mode 100644 www/common/translations/archive/messages.uk.json.license create mode 100644 www/common/translations/messages.ar.json.license create mode 100644 www/common/translations/messages.bg.json.license create mode 100644 www/common/translations/messages.ca.json.license create mode 100644 www/common/translations/messages.cs.json.license create mode 100644 www/common/translations/messages.da.json.license create mode 100644 www/common/translations/messages.de.json.license create mode 100644 www/common/translations/messages.el.json.license create mode 100644 www/common/translations/messages.es.json.license create mode 100644 www/common/translations/messages.es_CU.json.license create mode 100644 www/common/translations/messages.eu.json.license create mode 100644 www/common/translations/messages.fa.json.license create mode 100644 www/common/translations/messages.fi.json.license create mode 100644 www/common/translations/messages.fr.json.license create mode 100644 www/common/translations/messages.hi.json.license create mode 100644 www/common/translations/messages.hu.json.license create mode 100644 www/common/translations/messages.id.json.license create mode 100644 www/common/translations/messages.it.json.license create mode 100644 www/common/translations/messages.ja.json.license create mode 100644 www/common/translations/messages.json.license create mode 100644 www/common/translations/messages.ko.json.license create mode 100644 www/common/translations/messages.lt.json.license create mode 100644 www/common/translations/messages.nb.json.license create mode 100644 www/common/translations/messages.nl.json.license create mode 100644 www/common/translations/messages.pl.json.license create mode 100644 www/common/translations/messages.pt-br.json.license create mode 100644 www/common/translations/messages.pt-pt.json.license create mode 100644 www/common/translations/messages.ro.json.license create mode 100644 www/common/translations/messages.ru.json.license create mode 100644 www/common/translations/messages.sk.json.license create mode 100644 www/common/translations/messages.sv.json.license create mode 100644 www/common/translations/messages.th.json.license create mode 100644 www/common/translations/messages.tr.json.license create mode 100644 www/common/translations/messages.uk.json.license create mode 100644 www/common/translations/messages.zh.json.license create mode 100644 www/common/translations/update.js.license diff --git a/.dockerignore b/.dockerignore index e7d60a793..b102e90a3 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + .dockerignore .git .gitignore diff --git a/.editorconfig b/.editorconfig index 11cacc2fa..31d399ad6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + # EditorConfig is awesome: https://EditorConfig.org # top-most EditorConfig file diff --git a/.flowconfig b/.flowconfig index 4d505b265..7f1aa684c 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + [ignore] .*/components/.* .*/node_modules/lesshint/* diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 4bad2f177..4c0043023 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + # These are supported funding model platforms github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] diff --git a/.github/ISSUE_TEMPLATE/bug_resolution.yml b/.github/ISSUE_TEMPLATE/bug_resolution.yml index 70f0f93a5..9e8efa655 100644 --- a/.github/ISSUE_TEMPLATE/bug_resolution.yml +++ b/.github/ISSUE_TEMPLATE/bug_resolution.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + name: Bug report description: Report a bug, otherwise see the links below labels: ["bug"] diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 7eb84652f..29be78a3c 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + blank_issues_enabled: true contact_links: - name: Feature request diff --git a/.gitignore b/.gitignore index 467950775..d1a704099 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + datastore tasks www/components/* diff --git a/.jshintignore.license b/.jshintignore.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/.jshintignore.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/.jshintrc.license b/.jshintrc.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/.jshintrc.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/.lesshintrc.license b/.lesshintrc.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/.lesshintrc.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/CHANGELOG.md b/CHANGELOG.md index 850ece24a..1a227a522 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ + # 5.5.0 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d69290153..3889dbaf6 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,3 +1,9 @@ + + # Contributor Covenant Code of Conduct ## Our Pledge diff --git a/Dockerfile b/Dockerfile index 0d75a0f24..7a7d57749 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + # Multistage build to reduce image size and increase security FROM node:lts-slim AS build diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt new file mode 100644 index 000000000..137069b82 --- /dev/null +++ b/LICENSES/Apache-2.0.txt @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/LICENSES/GPL-2.0-or-later.txt b/LICENSES/GPL-2.0-or-later.txt new file mode 100644 index 000000000..17cb28643 --- /dev/null +++ b/LICENSES/GPL-2.0-or-later.txt @@ -0,0 +1,117 @@ +GNU GENERAL PUBLIC LICENSE +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. + + c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. + + one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author + + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. + +signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 000000000..2071b23b0 --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/and_so_it_begins.png.license b/and_so_it_begins.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/and_so_it_begins.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/config/config.example.js b/config/config.example.js index 4f289b56b..ad29ac484 100644 --- a/config/config.example.js +++ b/config/config.example.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals module */ /* DISCLAIMER: diff --git a/cryptofist.png.license b/cryptofist.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/cryptofist.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/404.html b/customize.dist/404.html index d58b5b625..8f5d4e419 100644 --- a/customize.dist/404.html +++ b/customize.dist/404.html @@ -1,3 +1,9 @@ + + diff --git a/customize.dist/500.html b/customize.dist/500.html index f50013bf7..e97a14856 100644 --- a/customize.dist/500.html +++ b/customize.dist/500.html @@ -1,3 +1,9 @@ + + diff --git a/customize.dist/CryptPad_logo.svg.license b/customize.dist/CryptPad_logo.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/CryptPad_logo.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/CryptPad_logo_grey.svg.license b/customize.dist/CryptPad_logo_grey.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/CryptPad_logo_grey.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/CryptPad_logo_hero.svg.license b/customize.dist/CryptPad_logo_hero.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/CryptPad_logo_hero.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/application_config.js b/customize.dist/application_config.js index 4a8820682..9e2c574aa 100644 --- a/customize.dist/application_config.js +++ b/customize.dist/application_config.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the configurable values from this file. * The recommended method is to make a copy of this file (/customize.dist/application_config.js) diff --git a/customize.dist/ckeditor-config.js b/customize.dist/ckeditor-config.js index 9435c3d44..516aebbed 100644 --- a/customize.dist/ckeditor-config.js +++ b/customize.dist/ckeditor-config.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* global CKEDITOR */ CKEDITOR.editorConfig = function( config ) { var fixThings = false; diff --git a/customize.dist/ckeditor-contents.css b/customize.dist/ckeditor-contents.css index a99fab651..eb505b219 100644 --- a/customize.dist/ckeditor-contents.css +++ b/customize.dist/ckeditor-contents.css @@ -1,7 +1,9 @@ /* -Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ + * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ html { scrollbar-color: rgba(0,0,0,0.2) transparent; diff --git a/customize.dist/contact.html b/customize.dist/contact.html index 889e92d0e..63b4a1f43 100644 --- a/customize.dist/contact.html +++ b/customize.dist/contact.html @@ -1,3 +1,9 @@ + + diff --git a/customize.dist/delta-words.js b/customize.dist/delta-words.js index 4e55e1ab1..c38abab6f 100644 --- a/customize.dist/delta-words.js +++ b/customize.dist/delta-words.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/components/chainpad/chainpad.dist.js', ], function (ChainPad) { diff --git a/customize.dist/down.html b/customize.dist/down.html index 8d4e53c37..05fbf34b6 100644 --- a/customize.dist/down.html +++ b/customize.dist/down.html @@ -1,3 +1,9 @@ + + diff --git a/customize.dist/favicon.ico.license b/customize.dist/favicon.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-code.ico.license b/customize.dist/favicon/alt-favicon-code.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-code.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-code.png.license b/customize.dist/favicon/alt-favicon-code.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-code.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-diagram.ico.license b/customize.dist/favicon/alt-favicon-diagram.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-diagram.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-diagram.png.license b/customize.dist/favicon/alt-favicon-diagram.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-diagram.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-doc.ico.license b/customize.dist/favicon/alt-favicon-doc.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-doc.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-doc.png.license b/customize.dist/favicon/alt-favicon-doc.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-doc.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-form.ico.license b/customize.dist/favicon/alt-favicon-form.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-form.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-form.png.license b/customize.dist/favicon/alt-favicon-form.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-form.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-kanban.ico.license b/customize.dist/favicon/alt-favicon-kanban.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-kanban.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-kanban.png.license b/customize.dist/favicon/alt-favicon-kanban.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-kanban.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-pad.ico.license b/customize.dist/favicon/alt-favicon-pad.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-pad.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-pad.png.license b/customize.dist/favicon/alt-favicon-pad.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-pad.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-poll.ico.license b/customize.dist/favicon/alt-favicon-poll.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-poll.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-poll.png.license b/customize.dist/favicon/alt-favicon-poll.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-poll.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-presentation.ico.license b/customize.dist/favicon/alt-favicon-presentation.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-presentation.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-presentation.png.license b/customize.dist/favicon/alt-favicon-presentation.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-presentation.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-sheet.ico.license b/customize.dist/favicon/alt-favicon-sheet.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-sheet.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-sheet.png.license b/customize.dist/favicon/alt-favicon-sheet.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-sheet.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-slide.ico.license b/customize.dist/favicon/alt-favicon-slide.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-slide.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-slide.png.license b/customize.dist/favicon/alt-favicon-slide.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-slide.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-whiteboard.ico.license b/customize.dist/favicon/alt-favicon-whiteboard.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-whiteboard.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon-whiteboard.png.license b/customize.dist/favicon/alt-favicon-whiteboard.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon-whiteboard.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon.ico.license b/customize.dist/favicon/alt-favicon.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/alt-favicon.png.license b/customize.dist/favicon/alt-favicon.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/alt-favicon.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/favicon_source.svg.license b/customize.dist/favicon/favicon_source.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/favicon_source.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-code.ico.license b/customize.dist/favicon/main-favicon-code.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-code.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-code.png.license b/customize.dist/favicon/main-favicon-code.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-code.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-diagram.ico.license b/customize.dist/favicon/main-favicon-diagram.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-diagram.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-diagram.png.license b/customize.dist/favicon/main-favicon-diagram.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-diagram.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-doc.ico.license b/customize.dist/favicon/main-favicon-doc.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-doc.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-doc.png.license b/customize.dist/favicon/main-favicon-doc.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-doc.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-form.ico.license b/customize.dist/favicon/main-favicon-form.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-form.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-form.png.license b/customize.dist/favicon/main-favicon-form.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-form.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-kanban.ico.license b/customize.dist/favicon/main-favicon-kanban.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-kanban.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-kanban.png.license b/customize.dist/favicon/main-favicon-kanban.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-kanban.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-pad.ico.license b/customize.dist/favicon/main-favicon-pad.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-pad.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-pad.png.license b/customize.dist/favicon/main-favicon-pad.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-pad.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-poll.ico.license b/customize.dist/favicon/main-favicon-poll.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-poll.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-poll.png.license b/customize.dist/favicon/main-favicon-poll.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-poll.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-presentation.ico.license b/customize.dist/favicon/main-favicon-presentation.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-presentation.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-presentation.png.license b/customize.dist/favicon/main-favicon-presentation.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-presentation.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-sheet.ico.license b/customize.dist/favicon/main-favicon-sheet.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-sheet.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-sheet.png.license b/customize.dist/favicon/main-favicon-sheet.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-sheet.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-slide.ico.license b/customize.dist/favicon/main-favicon-slide.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-slide.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-slide.png.license b/customize.dist/favicon/main-favicon-slide.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-slide.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-teams.ico.license b/customize.dist/favicon/main-favicon-teams.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-teams.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-teams.png.license b/customize.dist/favicon/main-favicon-teams.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-teams.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-whiteboard.ico.license b/customize.dist/favicon/main-favicon-whiteboard.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-whiteboard.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon-whiteboard.png.license b/customize.dist/favicon/main-favicon-whiteboard.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon-whiteboard.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon.ico.license b/customize.dist/favicon/main-favicon.ico.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon.ico.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/favicon/main-favicon.png.license b/customize.dist/favicon/main-favicon.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/favicon/main-favicon.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/features.html b/customize.dist/features.html index 2e5709ee8..07966419b 100644 --- a/customize.dist/features.html +++ b/customize.dist/features.html @@ -1,3 +1,9 @@ + + diff --git a/customize.dist/fonts/IBMPlexMono-Medium.woff.license b/customize.dist/fonts/IBMPlexMono-Medium.woff.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/fonts/IBMPlexMono-Medium.woff.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/fonts/IBMPlexMono-Medium.woff2.license b/customize.dist/fonts/IBMPlexMono-Medium.woff2.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/fonts/IBMPlexMono-Medium.woff2.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/fonts/cptools/README.md b/customize.dist/fonts/cptools/README.md index e9307919f..da8fc4816 100644 --- a/customize.dist/fonts/cptools/README.md +++ b/customize.dist/fonts/cptools/README.md @@ -1,3 +1,9 @@ + + The "cptools" font is using the [palette-solid icon](https://fontawesome.com/icons/palette?style=solid) from the "Font Awesome 5 Free" icon set. This icon is licensed under the [Creative Commons Attribution 4.0 International license](https://fontawesome.com/license/free). diff --git a/customize.dist/fonts/cptools/fonts/cptools.eot.license b/customize.dist/fonts/cptools/fonts/cptools.eot.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/fonts/cptools/fonts/cptools.eot.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/fonts/cptools/fonts/cptools.svg.license b/customize.dist/fonts/cptools/fonts/cptools.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/fonts/cptools/fonts/cptools.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/fonts/cptools/fonts/cptools.ttf.license b/customize.dist/fonts/cptools/fonts/cptools.ttf.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/fonts/cptools/fonts/cptools.ttf.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/fonts/cptools/fonts/cptools.woff.license b/customize.dist/fonts/cptools/fonts/cptools.woff.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/fonts/cptools/fonts/cptools.woff.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/fonts/cptools/style.css b/customize.dist/fonts/cptools/style.css index ef3f539e4..24089c4b1 100644 --- a/customize.dist/fonts/cptools/style.css +++ b/customize.dist/fonts/cptools/style.css @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @font-face { font-family: 'cptools'; src: url('fonts/cptools.eot?nobkj'); diff --git a/customize.dist/fonts/open-sans.less b/customize.dist/fonts/open-sans.less index 9e25c3017..55df08b2c 100644 --- a/customize.dist/fonts/open-sans.less +++ b/customize.dist/fonts/open-sans.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + /* Open Sans @font-face kit */ @OpenSansPath: "/components/open-sans-fontface/fonts"; diff --git a/customize.dist/four-oh-four.js b/customize.dist/four-oh-four.js index b26b1bc04..9b2854626 100644 --- a/customize.dist/four-oh-four.js +++ b/customize.dist/four-oh-four.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/customize.dist/images/AGPL.png.license b/customize.dist/images/AGPL.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/AGPL.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/avatar.png.license b/customize.dist/images/avatar.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/avatar.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/email.svg.license b/customize.dist/images/email.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/email.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/github.svg.license b/customize.dist/images/github.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/github.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/icons/folder.svg.license b/customize.dist/images/icons/folder.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/icons/folder.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/icons/folderOpen.svg.license b/customize.dist/images/icons/folderOpen.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/icons/folderOpen.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/icons/ic_folder_black_24px.svg.license b/customize.dist/images/icons/ic_folder_black_24px.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/icons/ic_folder_black_24px.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/icons/ic_folder_open_black_24px.svg.license b/customize.dist/images/icons/ic_folder_open_black_24px.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/icons/ic_folder_open_black_24px.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/irc.svg.license b/customize.dist/images/irc.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/irc.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/issue.svg.license b/customize.dist/images/issue.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/issue.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/logo_AGPLv3.svg.license b/customize.dist/images/logo_AGPLv3.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/logo_AGPLv3.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/mastodon.svg.license b/customize.dist/images/mastodon.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/mastodon.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-calendar.png.license b/customize.dist/images/opengraph_preview/og-calendar.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-calendar.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-code.png.license b/customize.dist/images/opengraph_preview/og-code.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-code.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-default.png.license b/customize.dist/images/opengraph_preview/og-default.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-default.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-diagram.png.license b/customize.dist/images/opengraph_preview/og-diagram.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-diagram.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-doc.png.license b/customize.dist/images/opengraph_preview/og-doc.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-doc.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-drive.png.license b/customize.dist/images/opengraph_preview/og-drive.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-drive.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-form.png.license b/customize.dist/images/opengraph_preview/og-form.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-form.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-kanban.png.license b/customize.dist/images/opengraph_preview/og-kanban.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-kanban.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-pad.png.license b/customize.dist/images/opengraph_preview/og-pad.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-pad.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-poll.png.license b/customize.dist/images/opengraph_preview/og-poll.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-poll.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-presentation.png.license b/customize.dist/images/opengraph_preview/og-presentation.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-presentation.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-sheet.png.license b/customize.dist/images/opengraph_preview/og-sheet.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-sheet.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-slide.png.license b/customize.dist/images/opengraph_preview/og-slide.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-slide.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-teams.png.license b/customize.dist/images/opengraph_preview/og-teams.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-teams.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/opengraph_preview/og-whiteboard.png.license b/customize.dist/images/opengraph_preview/og-whiteboard.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/opengraph_preview/og-whiteboard.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/sayhi.svg.license b/customize.dist/images/sayhi.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/sayhi.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/shredder.png.license b/customize.dist/images/shredder.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/shredder.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/support.svg.license b/customize.dist/images/support.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/support.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/swallow-the-key.png.license b/customize.dist/images/swallow-the-key.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/swallow-the-key.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/images/twiitter.svg.license b/customize.dist/images/twiitter.svg.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/images/twiitter.svg.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/index.html b/customize.dist/index.html index 71697f082..6941f9717 100644 --- a/customize.dist/index.html +++ b/customize.dist/index.html @@ -1,3 +1,9 @@ + + diff --git a/customize.dist/loading.js b/customize.dist/loading.js index b20b46f77..9353be09c 100644 --- a/customize.dist/loading.js +++ b/customize.dist/loading.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // bg #e7e7e7 // blue #0087FF // text #3F4141 diff --git a/customize.dist/login.js b/customize.dist/login.js index df2d66316..9263272e9 100644 --- a/customize.dist/login.js +++ b/customize.dist/login.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', 'chainpad-listmap', diff --git a/customize.dist/main-favicon.png.license b/customize.dist/main-favicon.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/customize.dist/main-favicon.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/customize.dist/main.js b/customize.dist/main.js index 5969c6c71..dde20de36 100644 --- a/customize.dist/main.js +++ b/customize.dist/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/outer/local-store.js', diff --git a/customize.dist/messages.js b/customize.dist/messages.js index 471f68c2d..b322ac044 100755 --- a/customize.dist/messages.js +++ b/customize.dist/messages.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { // add your module to this map so it gets used var map = { diff --git a/customize.dist/pages.js b/customize.dist/pages.js index 27b8b9230..da85e72db 100644 --- a/customize.dist/pages.js +++ b/customize.dist/pages.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/hyperscript.js', '/common/common-language.js', diff --git a/customize.dist/pages/contact.js b/customize.dist/pages/contact.js index 592ea1a30..32023f78d 100644 --- a/customize.dist/pages/contact.js +++ b/customize.dist/pages/contact.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config', '/common/hyperscript.js', diff --git a/customize.dist/pages/features.js b/customize.dist/pages/features.js index 2727bb33b..5ff6021a5 100644 --- a/customize.dist/pages/features.js +++ b/customize.dist/pages/features.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/hyperscript.js', diff --git a/customize.dist/pages/index.js b/customize.dist/pages/index.js index ae251ac1e..c65ecc93c 100644 --- a/customize.dist/pages/index.js +++ b/customize.dist/pages/index.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/customize.dist/pages/install.js b/customize.dist/pages/install.js index dbe68b308..d6e8a1713 100644 --- a/customize.dist/pages/install.js +++ b/customize.dist/pages/install.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config', 'jquery', diff --git a/customize.dist/pages/login.js b/customize.dist/pages/login.js index 11a6b4d79..d3fb04aa8 100644 --- a/customize.dist/pages/login.js +++ b/customize.dist/pages/login.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/hyperscript.js', '/common/common-interface.js', diff --git a/customize.dist/pages/recovery.js b/customize.dist/pages/recovery.js index b92f4db33..2c8b414cf 100644 --- a/customize.dist/pages/recovery.js +++ b/customize.dist/pages/recovery.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config', 'jquery', diff --git a/customize.dist/pages/register.js b/customize.dist/pages/register.js index a34aad460..df9dd4cd1 100644 --- a/customize.dist/pages/register.js +++ b/customize.dist/pages/register.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config', 'jquery', diff --git a/customize.dist/pre-loading.js b/customize.dist/pre-loading.js index 09a508476..a5015bae1 100644 --- a/customize.dist/pre-loading.js +++ b/customize.dist/pre-loading.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var logoPath = '/customize/CryptPad_logo.svg'; if (location.pathname === '/' || location.pathname === '/index.html') { diff --git a/customize.dist/readme.md b/customize.dist/readme.md index 9f7076dd2..ca5ea12a1 100644 --- a/customize.dist/readme.md +++ b/customize.dist/readme.md @@ -1,3 +1,9 @@ + + # Customizing CryptPad In order allow a variety of features to be changed and to allow site-specific changes diff --git a/customize.dist/src/less2/include/alertify.less b/customize.dist/src/less2/include/alertify.less index 8e4999e14..0280d62e2 100644 --- a/customize.dist/src/less2/include/alertify.less +++ b/customize.dist/src/less2/include/alertify.less @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ @import (reference) "./colortheme-all.less"; @import (reference) "./browser.less"; diff --git a/customize.dist/src/less2/include/app-noscroll.less b/customize.dist/src/less2/include/app-noscroll.less index 00388dd05..4c5c6361f 100644 --- a/customize.dist/src/less2/include/app-noscroll.less +++ b/customize.dist/src/less2/include/app-noscroll.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; .app-noscroll_main() { diff --git a/customize.dist/src/less2/include/app-print.less b/customize.dist/src/less2/include/app-print.less index 7f42f100b..f6a4bccc0 100644 --- a/customize.dist/src/less2/include/app-print.less +++ b/customize.dist/src/less2/include/app-print.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .app-print_main() { --LessLoader_require: LessLoader_currentFile(); } diff --git a/customize.dist/src/less2/include/avatar.less b/customize.dist/src/less2/include/avatar.less index bfb920a03..7b7b35986 100644 --- a/customize.dist/src/less2/include/avatar.less +++ b/customize.dist/src/less2/include/avatar.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./tools.less"; @import (reference) "./colortheme-all.less"; @import (reference) "./variables.less"; diff --git a/customize.dist/src/less2/include/browser.less b/customize.dist/src/less2/include/browser.less index 449244387..633417574 100644 --- a/customize.dist/src/less2/include/browser.less +++ b/customize.dist/src/less2/include/browser.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + // These things are not for design but rather for working in different browser // types and window sizes diff --git a/customize.dist/src/less2/include/charts.less b/customize.dist/src/less2/include/charts.less index ea402094f..b87fa1624 100644 --- a/customize.dist/src/less2/include/charts.less +++ b/customize.dist/src/less2/include/charts.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .charts_main() { // basic functional things diff --git a/customize.dist/src/less2/include/checkmark.less b/customize.dist/src/less2/include/checkmark.less index 61a707299..723f4297a 100644 --- a/customize.dist/src/less2/include/checkmark.less +++ b/customize.dist/src/less2/include/checkmark.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./tools.less"; @import (reference) "./variables.less"; diff --git a/customize.dist/src/less2/include/ckeditor-fix.less b/customize.dist/src/less2/include/ckeditor-fix.less index 98672bd86..b52c41987 100644 --- a/customize.dist/src/less2/include/ckeditor-fix.less +++ b/customize.dist/src/less2/include/ckeditor-fix.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .ckeditor_fix () { .cke_reset_all * { diff --git a/customize.dist/src/less2/include/colortheme-all.less b/customize.dist/src/less2/include/colortheme-all.less index c212ac9ff..36bec9285 100644 --- a/customize.dist/src/less2/include/colortheme-all.less +++ b/customize.dist/src/less2/include/colortheme-all.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + // Don't override/edit this file directly, you can create // create a file: customize/src/less2/include/colortheme.less // override whatever colors you want. When you update, the new colors will be diff --git a/customize.dist/src/less2/include/colortheme-dark.less b/customize.dist/src/less2/include/colortheme-dark.less index 331be3962..488bc6444 100644 --- a/customize.dist/src/less2/include/colortheme-dark.less +++ b/customize.dist/src/less2/include/colortheme-dark.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @colortheme_font: 'Open Sans', 'Helvetica Neue', sans-serif; @colortheme_app-font-size: 16px; @colortheme_app-font-size-small: 13px; diff --git a/customize.dist/src/less2/include/colortheme.less b/customize.dist/src/less2/include/colortheme.less index eb7bcfc07..87a8cbb59 100644 --- a/customize.dist/src/less2/include/colortheme.less +++ b/customize.dist/src/less2/include/colortheme.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @colortheme_font: 'Open Sans', 'Helvetica Neue', sans-serif; @colortheme_app-font-size: 16px; @colortheme_app-font-size-small: 13px; diff --git a/customize.dist/src/less2/include/comments.less b/customize.dist/src/less2/include/comments.less index e0c97a1ec..814b75277 100644 --- a/customize.dist/src/less2/include/comments.less +++ b/customize.dist/src/less2/include/comments.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./variables.less"; @import (reference) "./avatar.less"; diff --git a/customize.dist/src/less2/include/contextmenu.less b/customize.dist/src/less2/include/contextmenu.less index 57ca91f30..e8457fb15 100644 --- a/customize.dist/src/less2/include/contextmenu.less +++ b/customize.dist/src/less2/include/contextmenu.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./variables.less"; diff --git a/customize.dist/src/less2/include/corner.less b/customize.dist/src/less2/include/corner.less index 0e9c67535..6970a8843 100644 --- a/customize.dist/src/less2/include/corner.less +++ b/customize.dist/src/less2/include/corner.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./variables.less"; diff --git a/customize.dist/src/less2/include/creation.less b/customize.dist/src/less2/include/creation.less index de28372b8..cd04cf858 100644 --- a/customize.dist/src/less2/include/creation.less +++ b/customize.dist/src/less2/include/creation.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./browser.less"; @import (reference) "./colortheme-all.less"; @import (reference) "./tools.less"; diff --git a/customize.dist/src/less2/include/cursor.less b/customize.dist/src/less2/include/cursor.less index 132922c21..244a70a9d 100644 --- a/customize.dist/src/less2/include/cursor.less +++ b/customize.dist/src/less2/include/cursor.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .cursor_main() { // CodeMirror .cp-codemirror-cursor { diff --git a/customize.dist/src/less2/include/drive.less b/customize.dist/src/less2/include/drive.less index 4fea4e43a..2f6d61618 100644 --- a/customize.dist/src/less2/include/drive.less +++ b/customize.dist/src/less2/include/drive.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./browser.less"; @import (reference) './leftside-menu.less'; @import (reference) "./tools.less"; diff --git a/customize.dist/src/less2/include/dropdown.less b/customize.dist/src/less2/include/dropdown.less index f6304db05..cd697f9d9 100644 --- a/customize.dist/src/less2/include/dropdown.less +++ b/customize.dist/src/less2/include/dropdown.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./tools.less"; @import (reference) "./avatar.less"; diff --git a/customize.dist/src/less2/include/export.less b/customize.dist/src/less2/include/export.less index 10f03b741..d2dee00cf 100644 --- a/customize.dist/src/less2/include/export.less +++ b/customize.dist/src/less2/include/export.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .export_main() { #cp-export-container { font-size: 16px; diff --git a/customize.dist/src/less2/include/fileupload.less b/customize.dist/src/less2/include/fileupload.less index 28e972d44..f3aba69d1 100644 --- a/customize.dist/src/less2/include/fileupload.less +++ b/customize.dist/src/less2/include/fileupload.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./browser.less"; @import (reference) './colortheme-all.less'; @import (reference) './modal.less'; diff --git a/customize.dist/src/less2/include/font.less b/customize.dist/src/less2/include/font.less index 7b3eff709..062e98052 100644 --- a/customize.dist/src/less2/include/font.less +++ b/customize.dist/src/less2/include/font.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .font_main () { --LessLoader_require: LessLoader_currentFile(); } diff --git a/customize.dist/src/less2/include/forms.less b/customize.dist/src/less2/include/forms.less index 1834651d7..cd8b9ee3e 100644 --- a/customize.dist/src/less2/include/forms.less +++ b/customize.dist/src/less2/include/forms.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./variables.less"; @import (reference) "./tools.less"; diff --git a/customize.dist/src/less2/include/framework.less b/customize.dist/src/less2/include/framework.less index 3d5ed36a6..cf0a457e9 100644 --- a/customize.dist/src/less2/include/framework.less +++ b/customize.dist/src/less2/include/framework.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./toolbar.less"; @import (reference) './fileupload.less'; diff --git a/customize.dist/src/less2/include/help.less b/customize.dist/src/less2/include/help.less index b3e5022ad..26d324c20 100644 --- a/customize.dist/src/less2/include/help.less +++ b/customize.dist/src/less2/include/help.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; .help_main () { diff --git a/customize.dist/src/less2/include/icon-colors.less b/customize.dist/src/less2/include/icon-colors.less index 112d2261b..e646bba8f 100644 --- a/customize.dist/src/less2/include/icon-colors.less +++ b/customize.dist/src/less2/include/icon-colors.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; .iconColors_main () { --LessLoader_require: LessLoader_currentFile(); diff --git a/customize.dist/src/less2/include/icons.less b/customize.dist/src/less2/include/icons.less index 3496b2259..e3a273a92 100644 --- a/customize.dist/src/less2/include/icons.less +++ b/customize.dist/src/less2/include/icons.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .icons_main() { li { display: inline-block; diff --git a/customize.dist/src/less2/include/infopages.less b/customize.dist/src/less2/include/infopages.less index 08122281a..7050199bf 100644 --- a/customize.dist/src/less2/include/infopages.less +++ b/customize.dist/src/less2/include/infopages.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./font.less"; diff --git a/customize.dist/src/less2/include/leftside-menu.less b/customize.dist/src/less2/include/leftside-menu.less index bb9c86e56..fb90678f0 100644 --- a/customize.dist/src/less2/include/leftside-menu.less +++ b/customize.dist/src/less2/include/leftside-menu.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./unselectable.less"; @import (reference) "./variables.less"; @import (reference) "./colortheme-all.less"; diff --git a/customize.dist/src/less2/include/limit-bar.less b/customize.dist/src/less2/include/limit-bar.less index a219674ba..32eed0a0c 100644 --- a/customize.dist/src/less2/include/limit-bar.less +++ b/customize.dist/src/less2/include/limit-bar.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./variables.less"; diff --git a/customize.dist/src/less2/include/loading.less b/customize.dist/src/less2/include/loading.less index c139ae667..500627a07 100644 --- a/customize.dist/src/less2/include/loading.less +++ b/customize.dist/src/less2/include/loading.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./password-input.less"; @import (reference) "./forms.less"; diff --git a/customize.dist/src/less2/include/markdown.less b/customize.dist/src/less2/include/markdown.less index 271384a1d..33ea1ee78 100644 --- a/customize.dist/src/less2/include/markdown.less +++ b/customize.dist/src/less2/include/markdown.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./tools.less"; .markdown_main() { diff --git a/customize.dist/src/less2/include/mediatag.less b/customize.dist/src/less2/include/mediatag.less index f8255aab3..5c5b75ec7 100644 --- a/customize.dist/src/less2/include/mediatag.less +++ b/customize.dist/src/less2/include/mediatag.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .mediatag_base() { media-tag { min-height: 0; diff --git a/customize.dist/src/less2/include/mentions.less b/customize.dist/src/less2/include/mentions.less index f15dad068..b13aeb3d7 100644 --- a/customize.dist/src/less2/include/mentions.less +++ b/customize.dist/src/less2/include/mentions.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./tools.less"; @import (reference) "./avatar.less"; diff --git a/customize.dist/src/less2/include/messenger.less b/customize.dist/src/less2/include/messenger.less index 670c6994b..c2f227f9e 100644 --- a/customize.dist/src/less2/include/messenger.less +++ b/customize.dist/src/less2/include/messenger.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) './avatar.less'; @import (reference) "./colortheme-all.less"; diff --git a/customize.dist/src/less2/include/modal.less b/customize.dist/src/less2/include/modal.less index bc9db8051..4ea427903 100644 --- a/customize.dist/src/less2/include/modal.less +++ b/customize.dist/src/less2/include/modal.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./variables.less"; diff --git a/customize.dist/src/less2/include/modals-ui-elements.less b/customize.dist/src/less2/include/modals-ui-elements.less index 6bc1b9245..7713ba183 100644 --- a/customize.dist/src/less2/include/modals-ui-elements.less +++ b/customize.dist/src/less2/include/modals-ui-elements.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./variables.less"; @import (reference) "./browser.less"; diff --git a/customize.dist/src/less2/include/notifications.less b/customize.dist/src/less2/include/notifications.less index 0d58f4dc3..a1877cfb7 100644 --- a/customize.dist/src/less2/include/notifications.less +++ b/customize.dist/src/less2/include/notifications.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./avatar.less"; diff --git a/customize.dist/src/less2/include/password-input.less b/customize.dist/src/less2/include/password-input.less index 0ca6930a6..05a5a035b 100644 --- a/customize.dist/src/less2/include/password-input.less +++ b/customize.dist/src/less2/include/password-input.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; .password_main() { --LessLoader_require: LessLoader_currentFile(); diff --git a/customize.dist/src/less2/include/sidebar-layout.less b/customize.dist/src/less2/include/sidebar-layout.less index f99114717..a99286b62 100644 --- a/customize.dist/src/less2/include/sidebar-layout.less +++ b/customize.dist/src/less2/include/sidebar-layout.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "/customize/src/less2/include/colortheme-all.less"; @import (reference) "/customize/src/less2/include/leftside-menu.less"; @import (reference) "/customize/src/less2/include/browser.less"; diff --git a/customize.dist/src/less2/include/support.less b/customize.dist/src/less2/include/support.less index 3e4b3ac9c..5b92fd33d 100644 --- a/customize.dist/src/less2/include/support.less +++ b/customize.dist/src/less2/include/support.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; .support_main () { @ticket-bg: @cp_support-bg; diff --git a/customize.dist/src/less2/include/tippy.less b/customize.dist/src/less2/include/tippy.less index bce6a2414..04c1aab23 100644 --- a/customize.dist/src/less2/include/tippy.less +++ b/customize.dist/src/less2/include/tippy.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) './colortheme-all.less'; @import (reference) './variables.less'; diff --git a/customize.dist/src/less2/include/tokenfield.less b/customize.dist/src/less2/include/tokenfield.less index cf5eef0e7..13755092a 100644 --- a/customize.dist/src/less2/include/tokenfield.less +++ b/customize.dist/src/less2/include/tokenfield.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./tools.less"; @import (reference) "./variables.less"; diff --git a/customize.dist/src/less2/include/toolbar-history.less b/customize.dist/src/less2/include/toolbar-history.less index 707dd47ea..2acd36731 100644 --- a/customize.dist/src/less2/include/toolbar-history.less +++ b/customize.dist/src/less2/include/toolbar-history.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./variables.less"; diff --git a/customize.dist/src/less2/include/toolbar.less b/customize.dist/src/less2/include/toolbar.less index 8448e88ab..5b0a66433 100644 --- a/customize.dist/src/less2/include/toolbar.less +++ b/customize.dist/src/less2/include/toolbar.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./dropdown.less"; @import (reference) "./colortheme-all.less"; @import (reference) "./browser.less"; diff --git a/customize.dist/src/less2/include/tools.less b/customize.dist/src/less2/include/tools.less index 2b385cf6a..7735dd4b7 100644 --- a/customize.dist/src/less2/include/tools.less +++ b/customize.dist/src/less2/include/tools.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; .tools_placeholder-color () { diff --git a/customize.dist/src/less2/include/unselectable.less b/customize.dist/src/less2/include/unselectable.less index 30223128b..1a9f039d7 100644 --- a/customize.dist/src/less2/include/unselectable.less +++ b/customize.dist/src/less2/include/unselectable.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .unselectable_make() { -webkit-touch-callout: none; -webkit-user-select: none; diff --git a/customize.dist/src/less2/include/usergrid.less b/customize.dist/src/less2/include/usergrid.less index bb5605dc4..475f9cde1 100644 --- a/customize.dist/src/less2/include/usergrid.less +++ b/customize.dist/src/less2/include/usergrid.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; @import (reference) "./avatar.less"; @import (reference) "./tools.less"; diff --git a/customize.dist/src/less2/include/variables.less b/customize.dist/src/less2/include/variables.less index f945538fc..8fa27773d 100644 --- a/customize.dist/src/less2/include/variables.less +++ b/customize.dist/src/less2/include/variables.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "./colortheme-all.less"; // This is a file for generic constants which we didn't want to hardcode everywhere. diff --git a/customize.dist/src/less2/pages/page-404.less b/customize.dist/src/less2/pages/page-404.less index bcacdf1ee..e3330aecb 100644 --- a/customize.dist/src/less2/pages/page-404.less +++ b/customize.dist/src/less2/pages/page-404.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/colortheme-all.less"; @import (reference) "../include/font.less"; diff --git a/customize.dist/src/less2/pages/page-assert.less b/customize.dist/src/less2/pages/page-assert.less index 1d1442ff5..bbbdf31e8 100644 --- a/customize.dist/src/less2/pages/page-assert.less +++ b/customize.dist/src/less2/pages/page-assert.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/colortheme-all.less"; @import (reference) "../include/font.less"; diff --git a/customize.dist/src/less2/pages/page-contact.less b/customize.dist/src/less2/pages/page-contact.less index 803dc1a3c..c24a21e93 100644 --- a/customize.dist/src/less2/pages/page-contact.less +++ b/customize.dist/src/less2/pages/page-contact.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/colortheme-all.less"; diff --git a/customize.dist/src/less2/pages/page-features.less b/customize.dist/src/less2/pages/page-features.less index d1bd49fbb..e13fc7896 100644 --- a/customize.dist/src/less2/pages/page-features.less +++ b/customize.dist/src/less2/pages/page-features.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/colortheme-all.less"; diff --git a/customize.dist/src/less2/pages/page-feedback.less b/customize.dist/src/less2/pages/page-feedback.less index d55eddd7b..075d909d0 100644 --- a/customize.dist/src/less2/pages/page-feedback.less +++ b/customize.dist/src/less2/pages/page-feedback.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/colortheme-all.less"; @import (reference) "../include/font.less"; diff --git a/customize.dist/src/less2/pages/page-index.less b/customize.dist/src/less2/pages/page-index.less index f29b680e4..5c333fcba 100644 --- a/customize.dist/src/less2/pages/page-index.less +++ b/customize.dist/src/less2/pages/page-index.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/browser.less"; @import (reference) "../include/colortheme-all.less"; diff --git a/customize.dist/src/less2/pages/page-install.less b/customize.dist/src/less2/pages/page-install.less index 696c3e4c1..47579bd12 100644 --- a/customize.dist/src/less2/pages/page-install.less +++ b/customize.dist/src/less2/pages/page-install.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/colortheme-all.less"; @import (reference) "../include/alertify.less"; diff --git a/customize.dist/src/less2/pages/page-login.less b/customize.dist/src/less2/pages/page-login.less index 1745fdb7e..6fdfbb201 100644 --- a/customize.dist/src/less2/pages/page-login.less +++ b/customize.dist/src/less2/pages/page-login.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/colortheme-all.less"; @import (reference) "../include/alertify.less"; diff --git a/customize.dist/src/less2/pages/page-privacy.less b/customize.dist/src/less2/pages/page-privacy.less index 30f979859..6d1e28a43 100644 --- a/customize.dist/src/less2/pages/page-privacy.less +++ b/customize.dist/src/less2/pages/page-privacy.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/colortheme-all.less"; diff --git a/customize.dist/src/less2/pages/page-recovery.less b/customize.dist/src/less2/pages/page-recovery.less index 6197e0cc0..74bc9e734 100644 --- a/customize.dist/src/less2/pages/page-recovery.less +++ b/customize.dist/src/less2/pages/page-recovery.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/colortheme-all.less"; @import (reference) "../include/alertify.less"; diff --git a/customize.dist/src/less2/pages/page-register.less b/customize.dist/src/less2/pages/page-register.less index a0e4a0b21..142f870a5 100644 --- a/customize.dist/src/less2/pages/page-register.less +++ b/customize.dist/src/less2/pages/page-register.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/colortheme-all.less"; @import (reference) "../include/alertify.less"; diff --git a/customize.dist/src/less2/pages/page-report.less b/customize.dist/src/less2/pages/page-report.less index 220240237..9d0b7ab37 100644 --- a/customize.dist/src/less2/pages/page-report.less +++ b/customize.dist/src/less2/pages/page-report.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/colortheme-all.less"; @import (reference) "../include/font.less"; //@import (reference) "../include/forms.less"; diff --git a/customize.dist/src/less2/pages/page-terms.less b/customize.dist/src/less2/pages/page-terms.less index 7370f34f3..572347409 100644 --- a/customize.dist/src/less2/pages/page-terms.less +++ b/customize.dist/src/less2/pages/page-terms.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/colortheme-all.less"; diff --git a/customize.dist/src/less2/pages/page-what-is-cryptpad.less b/customize.dist/src/less2/pages/page-what-is-cryptpad.less index e6c1edc92..b4549f9de 100644 --- a/customize.dist/src/less2/pages/page-what-is-cryptpad.less +++ b/customize.dist/src/less2/pages/page-what-is-cryptpad.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../include/infopages.less"; @import (reference) "../include/colortheme-all.less"; diff --git a/customize.dist/src/less2/readme.md b/customize.dist/src/less2/readme.md index 062b5baff..bd8a5d4fc 100644 --- a/customize.dist/src/less2/readme.md +++ b/customize.dist/src/less2/readme.md @@ -1,3 +1,9 @@ + + # CryptPad Styling ## Linking Less/CSS diff --git a/customize.dist/src/outer.css b/customize.dist/src/outer.css index 780b0bb1d..4593d3536 100644 --- a/customize.dist/src/outer.css +++ b/customize.dist/src/outer.css @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + html, body { margin: 0px; padding: 0px; diff --git a/customize.dist/src/pre-loading.css b/customize.dist/src/pre-loading.css index 1315ea07f..e33a6c29a 100644 --- a/customize.dist/src/pre-loading.css +++ b/customize.dist/src/pre-loading.css @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .cp-app-noscroll body { background: transparent; } diff --git a/customize.dist/src/print-landscape.css b/customize.dist/src/print-landscape.css index 26a9d495e..f2546547a 100644 --- a/customize.dist/src/print-landscape.css +++ b/customize.dist/src/print-landscape.css @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @page { margin: 0; size: A4 landscape; diff --git a/customize.dist/src/print.css b/customize.dist/src/print.css index 1baf803d4..076a294a9 100644 --- a/customize.dist/src/print.css +++ b/customize.dist/src/print.css @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @page { margin: 3cm; size: A4 portrait; diff --git a/customize.dist/src/template.html b/customize.dist/src/template.html index 2e5709ee8..07966419b 100644 --- a/customize.dist/src/template.html +++ b/customize.dist/src/template.html @@ -1,3 +1,9 @@ + + diff --git a/customize.dist/template.js b/customize.dist/template.js index 0903483f6..17e8793da 100644 --- a/customize.dist/template.js +++ b/customize.dist/template.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/hyperscript.js', diff --git a/customize.dist/translations/README.md b/customize.dist/translations/README.md index c1f0be26d..e42df15ac 100644 --- a/customize.dist/translations/README.md +++ b/customize.dist/translations/README.md @@ -1,3 +1,9 @@ + + # Translations Translations can now be made using [Weblate](https://weblate.cryptpad.org). We may still accept PRs for the internal translation files, but we won't provide support for this. See the state of the translated languages: diff --git a/customize.dist/translations/messages.ca.js b/customize.dist/translations/messages.ca.js index 5e5b2a39f..cdfb739db 100644 --- a/customize.dist/translations/messages.ca.js +++ b/customize.dist/translations/messages.ca.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.cs.js b/customize.dist/translations/messages.cs.js index 600d629cb..8ce4c69f8 100644 --- a/customize.dist/translations/messages.cs.js +++ b/customize.dist/translations/messages.cs.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.de.js b/customize.dist/translations/messages.de.js index d7bc77bbb..6d2afcae1 100644 --- a/customize.dist/translations/messages.de.js +++ b/customize.dist/translations/messages.de.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.el.js b/customize.dist/translations/messages.el.js index 1d27e935b..dda728bde 100644 --- a/customize.dist/translations/messages.el.js +++ b/customize.dist/translations/messages.el.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.es.js b/customize.dist/translations/messages.es.js index 202037109..589b9a2ae 100644 --- a/customize.dist/translations/messages.es.js +++ b/customize.dist/translations/messages.es.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.eu.js b/customize.dist/translations/messages.eu.js index a049804bc..ad3af9b47 100644 --- a/customize.dist/translations/messages.eu.js +++ b/customize.dist/translations/messages.eu.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.fi.js b/customize.dist/translations/messages.fi.js index f01fa5160..67c690d6b 100644 --- a/customize.dist/translations/messages.fi.js +++ b/customize.dist/translations/messages.fi.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.fr.js b/customize.dist/translations/messages.fr.js index da0e7161a..7dd54bee6 100644 --- a/customize.dist/translations/messages.fr.js +++ b/customize.dist/translations/messages.fr.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.hi.js b/customize.dist/translations/messages.hi.js index e5ad3409a..4ad7f687f 100644 --- a/customize.dist/translations/messages.hi.js +++ b/customize.dist/translations/messages.hi.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.it.js b/customize.dist/translations/messages.it.js index 10b9ee649..e48ab7c79 100644 --- a/customize.dist/translations/messages.it.js +++ b/customize.dist/translations/messages.it.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.ja.js b/customize.dist/translations/messages.ja.js index 7293bfc50..ad1b80f1e 100644 --- a/customize.dist/translations/messages.ja.js +++ b/customize.dist/translations/messages.ja.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.js b/customize.dist/translations/messages.js index 63748f0a4..df4096367 100644 --- a/customize.dist/translations/messages.js +++ b/customize.dist/translations/messages.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.nb.js b/customize.dist/translations/messages.nb.js index 8c2215a1a..dc91b9f0b 100644 --- a/customize.dist/translations/messages.nb.js +++ b/customize.dist/translations/messages.nb.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.nl.js b/customize.dist/translations/messages.nl.js index 238fe0c90..ff5239ee2 100644 --- a/customize.dist/translations/messages.nl.js +++ b/customize.dist/translations/messages.nl.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.pl.js b/customize.dist/translations/messages.pl.js index 69431f23d..090fe81cb 100644 --- a/customize.dist/translations/messages.pl.js +++ b/customize.dist/translations/messages.pl.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.pt-br.js b/customize.dist/translations/messages.pt-br.js index 7c5ce361c..9eb5c6419 100644 --- a/customize.dist/translations/messages.pt-br.js +++ b/customize.dist/translations/messages.pt-br.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.pt-pt.js b/customize.dist/translations/messages.pt-pt.js index 7f9ca5b44..393f518d4 100644 --- a/customize.dist/translations/messages.pt-pt.js +++ b/customize.dist/translations/messages.pt-pt.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.ro.js b/customize.dist/translations/messages.ro.js index ad87a8030..53b675c2a 100644 --- a/customize.dist/translations/messages.ro.js +++ b/customize.dist/translations/messages.ro.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.ru.js b/customize.dist/translations/messages.ru.js index d8caecb62..01e3f511a 100644 --- a/customize.dist/translations/messages.ru.js +++ b/customize.dist/translations/messages.ru.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.sv.js b/customize.dist/translations/messages.sv.js index 60665701d..500710240 100644 --- a/customize.dist/translations/messages.sv.js +++ b/customize.dist/translations/messages.sv.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.te.js b/customize.dist/translations/messages.te.js index 2cabce54b..aa3df09e7 100644 --- a/customize.dist/translations/messages.te.js +++ b/customize.dist/translations/messages.te.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.uk.js b/customize.dist/translations/messages.uk.js index 64d1e800f..e3e4e05da 100644 --- a/customize.dist/translations/messages.uk.js +++ b/customize.dist/translations/messages.uk.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/customize.dist/translations/messages.zh.js b/customize.dist/translations/messages.zh.js index fceb7313e..1fe723a9b 100644 --- a/customize.dist/translations/messages.zh.js +++ b/customize.dist/translations/messages.zh.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * You can override the translation text using this file. * The recommended method is to make a copy of this file (/customize.dist/translations/messages.{LANG}.js) diff --git a/docker-compose.yml b/docker-compose.yml index 98d91a36c..9dfafc6b2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + --- version: '3.8' diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index f123ec316..48e3ed4a6 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + #/bin/bash ## Required vars diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 6b6414d24..32ba43d65 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -1,3 +1,9 @@ + + So you want to write a realtime collaborative application? This guide will focus on applications which require **multiple clients** to **collaboratively construct a single authoratative document**. diff --git a/docs/cryptpad.service b/docs/cryptpad.service index 28de3485d..efd06e488 100644 --- a/docs/cryptpad.service +++ b/docs/cryptpad.service @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + [Unit] Description=CryptPad API server diff --git a/docs/debugging.md b/docs/debugging.md index 5d9cfd580..2899016ca 100644 --- a/docs/debugging.md +++ b/docs/debugging.md @@ -1,2 +1,8 @@ + + * compare your conf against `cryptpad/docs/example.nginx.conf` * diff --git a/docs/example-advanced.nginx.conf b/docs/example-advanced.nginx.conf index 5a0accab1..cb827b4b0 100644 --- a/docs/example-advanced.nginx.conf +++ b/docs/example-advanced.nginx.conf @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + # This file is included strictly as an example of how Nginx can be configured # to work with CryptPad. This example WILL NOT WORK AS IS. For best results, # compare the sections of this configuration file against a working CryptPad diff --git a/docs/example.nginx.conf b/docs/example.nginx.conf index c3eea6066..8bd4fc3a1 100644 --- a/docs/example.nginx.conf +++ b/docs/example.nginx.conf @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + # This file is included strictly as an example of how Nginx can be configured # to work with CryptPad. This example WILL NOT WORK AS IS. For best results, # compare the sections of this configuration file against a working CryptPad diff --git a/docs/rc.d-cryptpad.license b/docs/rc.d-cryptpad.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/docs/rc.d-cryptpad.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/lib/api.js b/lib/api.js index 252edc1a4..3aae81c95 100644 --- a/lib/api.js +++ b/lib/api.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6 */ const WebSocketServer = require('ws').Server; const NetfluxSrv = require('chainpad-server'); diff --git a/lib/archive-account.js b/lib/archive-account.js index b714bffed..2cc5b6ff8 100644 --- a/lib/archive-account.js +++ b/lib/archive-account.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6, node: true */ const nThen = require('nthen'); const Pins = require('./pins'); diff --git a/lib/batch-read.js b/lib/batch-read.js index 2852a0579..3e7a104c4 100644 --- a/lib/batch-read.js +++ b/lib/batch-read.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* ## Purpose diff --git a/lib/challenge-commands/base.js b/lib/challenge-commands/base.js index a1c55ff3f..649a908f9 100644 --- a/lib/challenge-commands/base.js +++ b/lib/challenge-commands/base.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + const Block = require("../commands/block"); const MFA = require("../storage/mfa"); const Util = require("../common-util"); diff --git a/lib/challenge-commands/totp.js b/lib/challenge-commands/totp.js index a61af68ee..0ad8d15ef 100644 --- a/lib/challenge-commands/totp.js +++ b/lib/challenge-commands/totp.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals Buffer */ const B32 = require("thirty-two"); const OTP = require("notp"); diff --git a/lib/client/index.js b/lib/client/index.js index 3e4bc1225..267a3645a 100644 --- a/lib/client/index.js +++ b/lib/client/index.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Netflux = require("netflux-websocket"); var WebSocket = require("ws"); // jshint ignore:line var nThen = require("nthen"); diff --git a/lib/commands/admin-rpc.js b/lib/commands/admin-rpc.js index 512fd001b..237613003 100644 --- a/lib/commands/admin-rpc.js +++ b/lib/commands/admin-rpc.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ /* globals process */ const nThen = require("nthen"); diff --git a/lib/commands/block.js b/lib/commands/block.js index ca4a77e1e..1ed8344fd 100644 --- a/lib/commands/block.js +++ b/lib/commands/block.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ /* globals Buffer*/ const Block = module.exports; diff --git a/lib/commands/channel.js b/lib/commands/channel.js index 72b9d6bcd..275e6bf1f 100644 --- a/lib/commands/channel.js +++ b/lib/commands/channel.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ const Channel = module.exports; diff --git a/lib/commands/core.js b/lib/commands/core.js index a0be7cd67..a0c8f419b 100644 --- a/lib/commands/core.js +++ b/lib/commands/core.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ /* globals process */ const Core = module.exports; diff --git a/lib/commands/metadata.js b/lib/commands/metadata.js index 9b6a23e02..54448f9b2 100644 --- a/lib/commands/metadata.js +++ b/lib/commands/metadata.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ const Data = module.exports; diff --git a/lib/commands/pin-rpc.js b/lib/commands/pin-rpc.js index 6b9ab01a3..1c9052a14 100644 --- a/lib/commands/pin-rpc.js +++ b/lib/commands/pin-rpc.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ const Core = require("./core"); diff --git a/lib/commands/quota.js b/lib/commands/quota.js index 99d559c10..50e57b9bf 100644 --- a/lib/commands/quota.js +++ b/lib/commands/quota.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ /* globals Buffer*/ const Quota = module.exports; diff --git a/lib/commands/upload.js b/lib/commands/upload.js index 5d0c8740b..1b23ab549 100644 --- a/lib/commands/upload.js +++ b/lib/commands/upload.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ const Upload = module.exports; const Util = require("../common-util"); diff --git a/lib/common-util.js b/lib/common-util.js index 60254807c..400d8472d 100644 --- a/lib/common-util.js +++ b/lib/common-util.js @@ -1 +1,5 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + module.exports = require("../www/common/common-util"); diff --git a/lib/decrees.js b/lib/decrees.js index ddeea084d..2e2ffd43a 100644 --- a/lib/decrees.js +++ b/lib/decrees.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Decrees = module.exports; var Core = require("./commands/core"); diff --git a/lib/defaults.js b/lib/defaults.js index 969842189..b34c6e4e1 100644 --- a/lib/defaults.js +++ b/lib/defaults.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Default = module.exports; Default.commonCSP = function (Env) { diff --git a/lib/env.js b/lib/env.js index a0f8fee2b..2af650ce9 100644 --- a/lib/env.js +++ b/lib/env.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6 */ /* globals process */ diff --git a/lib/eviction.js b/lib/eviction.js index 16b456078..8bd530f1e 100644 --- a/lib/eviction.js +++ b/lib/eviction.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var nThen = require("nthen"); var Bloom = require("@mcrowe/minibloom"); var Util = require("../lib/common-util"); diff --git a/lib/historyKeeper.js b/lib/historyKeeper.js index 93ab16e1a..786b1e50b 100644 --- a/lib/historyKeeper.js +++ b/lib/historyKeeper.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6 */ const nThen = require('nthen'); diff --git a/lib/hk-util.js b/lib/hk-util.js index 1060bc9fc..19b207975 100644 --- a/lib/hk-util.js +++ b/lib/hk-util.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6 */ /* global Buffer */ var HK = module.exports; diff --git a/lib/http-commands.js b/lib/http-commands.js index 7d8a65182..26922e2b3 100644 --- a/lib/http-commands.js +++ b/lib/http-commands.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Nacl = require("tweetnacl/nacl-fast"); var Util = require('./common-util.js'); diff --git a/lib/http-worker.js b/lib/http-worker.js index 3ade5af71..be59617e5 100644 --- a/lib/http-worker.js +++ b/lib/http-worker.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + const process = require("node:process"); const Http = require("node:http"); const Default = require("./defaults"); diff --git a/lib/keys.js b/lib/keys.js index 7eb4ce447..7d5a63934 100644 --- a/lib/keys.js +++ b/lib/keys.js @@ -1 +1,5 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + module.exports = require("../www/common/common-signing-keys"); diff --git a/lib/load-config.js b/lib/load-config.js index 49dbbf58a..95d0aceac 100644 --- a/lib/load-config.js +++ b/lib/load-config.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jslint node: true */ "use strict"; var config; diff --git a/lib/log.js b/lib/log.js index c300fabab..59d243027 100644 --- a/lib/log.js +++ b/lib/log.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ var Store = require("./storage/file"); var Util = require("./common-util"); diff --git a/lib/metadata.js b/lib/metadata.js index 495c33ff9..9d4081285 100644 --- a/lib/metadata.js +++ b/lib/metadata.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Meta = module.exports; var Core = require("./commands/core"); diff --git a/lib/pins.js b/lib/pins.js index 03225e840..686b49b3f 100644 --- a/lib/pins.js +++ b/lib/pins.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ var Pins = module.exports; diff --git a/lib/plan.js b/lib/plan.js index a7dbb4ec8..b0aa4955c 100644 --- a/lib/plan.js +++ b/lib/plan.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* There are many situations where we want to do lots of little jobs diff --git a/lib/rpc.js b/lib/rpc.js index 319876448..0dcc6ec1e 100644 --- a/lib/rpc.js +++ b/lib/rpc.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ const Util = require("./common-util"); diff --git a/lib/schedule.js b/lib/schedule.js index 1fdef8cce..1de9bf2f1 100644 --- a/lib/schedule.js +++ b/lib/schedule.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var WriteQueue = require("./write-queue"); var Util = require("./common-util"); diff --git a/lib/stats.js b/lib/stats.js index 2a8e32ca2..16aefc59a 100644 --- a/lib/stats.js +++ b/lib/stats.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ const Stats = module.exports; diff --git a/lib/storage/basic.js b/lib/storage/basic.js index c164cceae..873e90b7a 100644 --- a/lib/storage/basic.js +++ b/lib/storage/basic.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* Mulfi-factor auth requires some rudimentary storage methods for a number of data types: diff --git a/lib/storage/blob.js b/lib/storage/blob.js index 96e8536f9..97fc8b9e3 100644 --- a/lib/storage/blob.js +++ b/lib/storage/blob.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals Buffer */ var Fs = require("fs"); var Fse = require("fs-extra"); diff --git a/lib/storage/block.js b/lib/storage/block.js index a4e9238ef..ab79fe9dc 100644 --- a/lib/storage/block.js +++ b/lib/storage/block.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ const Block = module.exports; const Util = require("../common-util"); diff --git a/lib/storage/challenge.js b/lib/storage/challenge.js index e4d9ca6c8..914284e00 100644 --- a/lib/storage/challenge.js +++ b/lib/storage/challenge.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + const Basic = require("./basic.js"); const Path = require("node:path"); diff --git a/lib/storage/file.js b/lib/storage/file.js index 66cc8ba7e..8a5a8fd62 100644 --- a/lib/storage/file.js +++ b/lib/storage/file.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*@flow*/ /* jshint esversion: 6 */ /* globals Buffer */ diff --git a/lib/storage/mfa.js b/lib/storage/mfa.js index 9cc7e2ba5..d84539f69 100644 --- a/lib/storage/mfa.js +++ b/lib/storage/mfa.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + const Basic = require("./basic"); const Path = require("node:path"); const Util = require("../common-util"); diff --git a/lib/storage/sessions.js b/lib/storage/sessions.js index b5f494447..8e41781cb 100644 --- a/lib/storage/sessions.js +++ b/lib/storage/sessions.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + const Basic = require("./basic"); const Path = require("node:path"); const Nacl = require("tweetnacl/nacl-fast"); diff --git a/lib/storage/tasks.js b/lib/storage/tasks.js index 44b330f37..f00e4e84b 100644 --- a/lib/storage/tasks.js +++ b/lib/storage/tasks.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Fs = require("fs"); var Fse = require("fs-extra"); var Path = require("path"); diff --git a/lib/stream-file.js b/lib/stream-file.js index a164ceffc..10dfa647d 100644 --- a/lib/stream-file.js +++ b/lib/stream-file.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6 */ /* global Buffer */ diff --git a/lib/workers/db-worker.js b/lib/workers/db-worker.js index 76f03421d..a6c077914 100644 --- a/lib/workers/db-worker.js +++ b/lib/workers/db-worker.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6 */ /* globals process, Buffer */ diff --git a/lib/workers/index.js b/lib/workers/index.js index deddd8afb..bb6077397 100644 --- a/lib/workers/index.js +++ b/lib/workers/index.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6 */ /* global process */ const Util = require("../common-util"); diff --git a/lib/write-queue.js b/lib/write-queue.js index 912eceb01..cc8279aa8 100644 --- a/lib/write-queue.js +++ b/lib/write-queue.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* var q = Queue(); q(id, function (next) { diff --git a/package-lock.json.license b/package-lock.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/package-lock.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/package.json.license b/package.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/package.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/readme.md b/readme.md index ea831d887..571fd5948 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,9 @@ + + # CryptPad CryptPad is a collaboration suite that is end-to-end-encrypted and open-source. It is built to enable collaboration, synchronizing changes to documents in real time. Because all data is encrypted, the service and its administrators have no way of seeing the content being edited and stored. diff --git a/screenshot-suite.png.license b/screenshot-suite.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/screenshot-suite.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/screenshot.png.license b/screenshot.png.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/screenshot.png.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/scripts/TestSelenium.js b/scripts/TestSelenium.js index 352b293eb..f5930e69a 100644 --- a/scripts/TestSelenium.js +++ b/scripts/TestSelenium.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* global process */ var WebDriver = require("selenium-webdriver"); var nThen = require('nthen'); diff --git a/scripts/build.js b/scripts/build.js index 82b25f160..b04b830f3 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals process */ var Fs = require("fs"); diff --git a/scripts/check-account-deletion.js b/scripts/check-account-deletion.js index 91020bde9..a262c7046 100644 --- a/scripts/check-account-deletion.js +++ b/scripts/check-account-deletion.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6, node: true */ const Fs = require('fs'); const nThen = require('nthen'); diff --git a/scripts/check-accounts.js b/scripts/check-accounts.js index 4d0067d43..8b15616b9 100644 --- a/scripts/check-accounts.js +++ b/scripts/check-accounts.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals Buffer */ var Https = require('https'); var Config = require("../lib/load-config"); diff --git a/scripts/clear.js b/scripts/clear.js index 8bfadd964..734f0709e 100644 --- a/scripts/clear.js +++ b/scripts/clear.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var prompt = require('prompt-confirm'); const p = new prompt('Are you sure? This will permanently delete all existing data on your instance.'); diff --git a/scripts/compare-pin-methods.js b/scripts/compare-pin-methods.js index de7ef114d..6894aa40b 100644 --- a/scripts/compare-pin-methods.js +++ b/scripts/compare-pin-methods.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6, node: true */ const nThen = require("nthen"); const Pins = require("../lib/pins"); diff --git a/scripts/convert-favicons-to-ico.sh b/scripts/convert-favicons-to-ico.sh index 14873c21e..6f6980876 100755 --- a/scripts/convert-favicons-to-ico.sh +++ b/scripts/convert-favicons-to-ico.sh @@ -1,4 +1,9 @@ #!/bin/sh + +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + for f in ../customize.dist/favicon/*.png; do base="$(basename $f ".png")" magick convert $f -define icon:auto-resize=16,24,32,48,64,72,96,128,256 "$base.ico" diff --git a/scripts/copy-components.js b/scripts/copy-components.js index 2aa66ada8..d3cb06618 100644 --- a/scripts/copy-components.js +++ b/scripts/copy-components.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + const Fs = require("fs"); const Fse = require("fs-extra"); const Path = require("path"); diff --git a/scripts/diagnose-archive-conflicts.js b/scripts/diagnose-archive-conflicts.js index 7e5ee92bc..8becfc086 100644 --- a/scripts/diagnose-archive-conflicts.js +++ b/scripts/diagnose-archive-conflicts.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var nThen = require("nthen"); var Store = require("../lib/storage/file"); diff --git a/scripts/evict-archived.js b/scripts/evict-archived.js index bf6aef04e..124ebc30c 100644 --- a/scripts/evict-archived.js +++ b/scripts/evict-archived.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Eviction = require("../lib/eviction"); var nThen = require("nthen"); var Store = require("../lib/storage/file"); diff --git a/scripts/evict-inactive.js b/scripts/evict-inactive.js index d67c9d25d..f53536ae3 100644 --- a/scripts/evict-inactive.js +++ b/scripts/evict-inactive.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Eviction = require("../lib/eviction"); var nThen = require("nthen"); var Store = require("../lib/storage/file"); diff --git a/scripts/expire-channels.js b/scripts/expire-channels.js index 8f9d9f87e..7f1b177dc 100644 --- a/scripts/expire-channels.js +++ b/scripts/expire-channels.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var nThen = require("nthen"); var Tasks = require("../lib/storage/tasks"); var Logger = require("../lib/log"); diff --git a/scripts/generate-admin-keys.js b/scripts/generate-admin-keys.js index f99c756d7..0fe421c53 100644 --- a/scripts/generate-admin-keys.js +++ b/scripts/generate-admin-keys.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6, node: true */ const Nacl = require('tweetnacl/nacl-fast'); diff --git a/scripts/install.js b/scripts/install.js index c0e57a5eb..86a0d0b75 100644 --- a/scripts/install.js +++ b/scripts/install.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + const nThen = require("nthen"); const Fs = require("fs"); const Path = require("path"); diff --git a/scripts/issue-jwt.js b/scripts/issue-jwt.js index 9b12686a1..da36caa8e 100644 --- a/scripts/issue-jwt.js +++ b/scripts/issue-jwt.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals process */ const jwt = require("jsonwebtoken"); const Sessions = require("../lib/storage/sessions.js"); diff --git a/scripts/migrations/migrate-tasks-v1.js b/scripts/migrations/migrate-tasks-v1.js index 941693c48..edd42d9cd 100644 --- a/scripts/migrations/migrate-tasks-v1.js +++ b/scripts/migrations/migrate-tasks-v1.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var nThen = require("nthen"); var Tasks = require("../../lib/storage/tasks"); var Logger = require("../../lib/log"); diff --git a/scripts/pinned.js b/scripts/pinned.js index f42b4bf8c..e833974e1 100644 --- a/scripts/pinned.js +++ b/scripts/pinned.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 6, node: true */ const Fs = require('fs'); const Path = require("path"); diff --git a/scripts/restore-archived.js b/scripts/restore-archived.js index 4ee01c02f..d47dcb768 100644 --- a/scripts/restore-archived.js +++ b/scripts/restore-archived.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var nThen = require("nthen"); var Store = require("../lib/storage/file"); diff --git a/scripts/runtests.js b/scripts/runtests.js index 1e976d564..def41c3a5 100644 --- a/scripts/runtests.js +++ b/scripts/runtests.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // jshint esversion: 6, browser: false, node: true // This file is for automated testing, it should probably not be invoked for any other purpose. // It will: diff --git a/scripts/test-metadata.js b/scripts/test-metadata.js index 42b93f096..3777aa532 100644 --- a/scripts/test-metadata.js +++ b/scripts/test-metadata.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Meta = require("../lib/metadata"); var lines = [ diff --git a/scripts/tests/index.js b/scripts/tests/index.js index 934246d90..ab32f4990 100644 --- a/scripts/tests/index.js +++ b/scripts/tests/index.js @@ -1 +1,5 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + require("./test-rpc"); diff --git a/scripts/tests/roster.js b/scripts/tests/roster.js index 940745a26..b751d5c5e 100644 --- a/scripts/tests/roster.js +++ b/scripts/tests/roster.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + module.exports = require("../../www/common/outer/roster.js"); diff --git a/scripts/tests/test-lkh.js b/scripts/tests/test-lkh.js index 31a8d44f3..f346ba385 100644 --- a/scripts/tests/test-lkh.js +++ b/scripts/tests/test-lkh.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals process */ var Client = require("../../lib/client"); var Nacl = require("tweetnacl/nacl-fast"); diff --git a/scripts/tests/test-mailbox.js b/scripts/tests/test-mailbox.js index 4115bc5bc..cb86370eb 100644 --- a/scripts/tests/test-mailbox.js +++ b/scripts/tests/test-mailbox.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals process */ var Client = require("../../lib/client/"); diff --git a/scripts/tests/test-pins.js b/scripts/tests/test-pins.js index 712fe621b..d31059748 100644 --- a/scripts/tests/test-pins.js +++ b/scripts/tests/test-pins.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ const Pins = require("../../lib/pins"); diff --git a/scripts/tests/test-plan.js b/scripts/tests/test-plan.js index e8624514a..56fc5e3f5 100644 --- a/scripts/tests/test-plan.js +++ b/scripts/tests/test-plan.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*jshint esversion: 6 */ const Plan = require("../../lib/plan"); diff --git a/scripts/tests/test-rpc.js b/scripts/tests/test-rpc.js index fe6864d96..512e4b22d 100644 --- a/scripts/tests/test-rpc.js +++ b/scripts/tests/test-rpc.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals process */ var Client = require("../../lib/client/"); diff --git a/scripts/tests/test-scheduler.js b/scripts/tests/test-scheduler.js index 6a076d5aa..9b7e166d7 100644 --- a/scripts/tests/test-scheduler.js +++ b/scripts/tests/test-scheduler.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* three types of actions: * read * write diff --git a/scripts/translations/find-duplicate-translations.js b/scripts/translations/find-duplicate-translations.js index 291901d40..beb8a20bd 100644 --- a/scripts/translations/find-duplicate-translations.js +++ b/scripts/translations/find-duplicate-translations.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Assert = require("assert"); var Util = require("../../lib/common-util"); var addIfAbsent = function (A, e) { diff --git a/scripts/translations/lint-translations.js b/scripts/translations/lint-translations.js index b663bd7f0..f57bc14de 100644 --- a/scripts/translations/lint-translations.js +++ b/scripts/translations/lint-translations.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var EN = require("../../www/common/translations/messages.json"); var Util = require("../../www/common/common-util.js"); var Fs = require("fs"); diff --git a/scripts/translations/unused-translations.js b/scripts/translations/unused-translations.js index 3d9c19493..700ce1b60 100644 --- a/scripts/translations/unused-translations.js +++ b/scripts/translations/unused-translations.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var Messages = require("../../www/common/translations/messages.json"); var Exec = require("child_process").exec; diff --git a/server.js b/server.js index b30e77e27..ec0b36827 100644 --- a/server.js +++ b/server.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals process */ diff --git a/www/assert/assertions.js b/www/assert/assertions.js index 6db10fb24..0a99b3377 100644 --- a/www/assert/assertions.js +++ b/www/assert/assertions.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { return function () { var failMessages = []; diff --git a/www/assert/frame/frame.html b/www/assert/frame/frame.html index 8d2d63c0d..430f123a7 100644 --- a/www/assert/frame/frame.html +++ b/www/assert/frame/frame.html @@ -1,3 +1,9 @@ + + diff --git a/www/assert/frame/frame.js b/www/assert/frame/frame.js index 42808f6f9..a7acf79ab 100644 --- a/www/assert/frame/frame.js +++ b/www/assert/frame/frame.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var Frame = {}; diff --git a/www/assert/frame/respond.js b/www/assert/frame/respond.js index 07f8e2994..6a54c27dd 100644 --- a/www/assert/frame/respond.js +++ b/www/assert/frame/respond.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var validDomains = [ /.*/i, ]; var isValidDomain = function (o) { return validDomains.some(function (e) { diff --git a/www/assert/index.html b/www/assert/index.html index a83a56116..b866f5dd9 100644 --- a/www/assert/index.html +++ b/www/assert/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/assert/main.js b/www/assert/main.js index ea11d695a..518c223a6 100644 --- a/www/assert/main.js +++ b/www/assert/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/components/hyper-json/hyperjson.js', diff --git a/www/auth/app-auth.less b/www/auth/app-auth.less index ac3ba08c2..9e3354480 100644 --- a/www/auth/app-auth.less +++ b/www/auth/app-auth.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../../customize/src/less2/include/colortheme-all.less"; @import (reference) "../../customize/src/less2/include/font.less"; @import (reference) "../../customize/src/less2/include/alertify.less"; diff --git a/www/auth/base32.js b/www/auth/base32.js index d9a15f5ea..b31a406c3 100644 --- a/www/auth/base32.js +++ b/www/auth/base32.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint esversion: 7 */ define([], function () { // Based on https://gist.github.com/bellbind/871b145110c458e83077a718aef9fa0e diff --git a/www/auth/index.html b/www/auth/index.html index 6d226784c..1e0c1d641 100644 --- a/www/auth/index.html +++ b/www/auth/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/auth/main.js b/www/auth/main.js index 168718cdb..bcae41bb3 100644 --- a/www/auth/main.js +++ b/www/auth/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/bounce/index.html b/www/bounce/index.html index 40c560e01..58cb3afa9 100644 --- a/www/bounce/index.html +++ b/www/bounce/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/bounce/main.js b/www/bounce/main.js index 0c62672be..697ff5711 100644 --- a/www/bounce/main.js +++ b/www/bounce/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(['/api/config'], function (ApiConfig) { /* The 'bounce app' provides a unified way to do the following things in CryptPad diff --git a/www/bounce/readme.md b/www/bounce/readme.md index f889674e4..76a9e6156 100644 --- a/www/bounce/readme.md +++ b/www/bounce/readme.md @@ -1,3 +1,9 @@ + + # Bounce app This app redirects you to a new URL. diff --git a/www/checkup/app-checkup.less b/www/checkup/app-checkup.less index ae1f805db..5024717dd 100644 --- a/www/checkup/app-checkup.less +++ b/www/checkup/app-checkup.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../../customize/src/less2/include/colortheme-all.less"; @import (reference) "../../customize/src/less2/include/font.less"; @import (reference) "../../customize/src/less2/include/alertify.less"; diff --git a/www/checkup/checkup-tools.js b/www/checkup/checkup-tools.js index 5e0eef42d..2529b8906 100644 --- a/www/checkup/checkup-tools.js +++ b/www/checkup/checkup-tools.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/checkup/dependency-warning.js b/www/checkup/dependency-warning.js index d1bfdf1e2..f15aaba4a 100644 --- a/www/checkup/dependency-warning.js +++ b/www/checkup/dependency-warning.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var h = (tag, children) => { var el = document.createElement(tag); diff --git a/www/checkup/index.html b/www/checkup/index.html index aca269a2b..7f40058cf 100644 --- a/www/checkup/index.html +++ b/www/checkup/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/checkup/inner.html b/www/checkup/inner.html index 5d12f858d..5bf2b4cc8 100644 --- a/www/checkup/inner.html +++ b/www/checkup/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/checkup/inner.js b/www/checkup/inner.js index f752bc2ad..43a65407d 100644 --- a/www/checkup/inner.js +++ b/www/checkup/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ ], function () { console.log('inner loaded'); diff --git a/www/checkup/main.js b/www/checkup/main.js index 45c1356d5..290848946 100644 --- a/www/checkup/main.js +++ b/www/checkup/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/checkup/sandbox/index.html b/www/checkup/sandbox/index.html index 99310136d..c9e8154a7 100644 --- a/www/checkup/sandbox/index.html +++ b/www/checkup/sandbox/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/checkup/sandbox/main.js b/www/checkup/sandbox/main.js index 8bf27c688..dd2af4dbd 100644 --- a/www/checkup/sandbox/main.js +++ b/www/checkup/sandbox/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/code/app-code.less b/www/code/app-code.less index ab9f0129a..740468821 100644 --- a/www/code/app-code.less +++ b/www/code/app-code.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../../customize/src/less2/include/browser.less"; @import (reference) "../../customize/src/less2/include/markdown.less"; @import (reference) "../../customize/src/less2/include/framework.less"; diff --git a/www/code/export.js b/www/code/export.js index 04616a192..a360bdcd7 100644 --- a/www/code/export.js +++ b/www/code/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // This file is used when a user tries to export the entire CryptDrive. // Pads from the code app will be exported using this format instead of plain text. define([ diff --git a/www/code/index.html b/www/code/index.html index 6202e174f..5338bd823 100644 --- a/www/code/index.html +++ b/www/code/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/code/inner.html b/www/code/inner.html index d703e1282..a2ad61f7c 100644 --- a/www/code/inner.html +++ b/www/code/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/code/inner.js b/www/code/inner.js index 7a1daa741..375423e02 100644 --- a/www/code/inner.js +++ b/www/code/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/diffMarked.js', diff --git a/www/code/markers.js b/www/code/markers.js index 1a6ea4bfb..0d53b5dd8 100644 --- a/www/code/markers.js +++ b/www/code/markers.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/common/sframe-common-codemirror.js', diff --git a/www/code/mermaid-new.css b/www/code/mermaid-new.css index a6384cfba..7c7cdad54 100644 --- a/www/code/mermaid-new.css +++ b/www/code/mermaid-new.css @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + .sectionTitle, .titleText { font-weight: bold; } diff --git a/www/code/mermaid.css b/www/code/mermaid.css index 60c366bb6..73312d354 100644 --- a/www/code/mermaid.css +++ b/www/code/mermaid.css @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + /* Flowchart variables */ /* Sequence Diagram variables */ /* Gantt chart variables */ diff --git a/www/code/orgmode.js b/www/code/orgmode.js index 0c46a7a20..dcd922710 100644 --- a/www/code/orgmode.js +++ b/www/code/orgmode.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'cm/lib/codemirror', 'cm/addon/mode/simple' diff --git a/www/common/LessLoader.js b/www/common/LessLoader.js index 61e0c97e6..bf22d6126 100644 --- a/www/common/LessLoader.js +++ b/www/common/LessLoader.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /*@flow*/ /*:: const define = (x:any, y:any) => {}; diff --git a/www/common/RequireLess.js b/www/common/RequireLess.js index f681e9b1c..f3a32ae10 100644 --- a/www/common/RequireLess.js +++ b/www/common/RequireLess.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/LessLoader.js' ], function (LessLoader) { diff --git a/www/common/TypingTests.js b/www/common/TypingTests.js index cf97b6974..54ab6b683 100644 --- a/www/common/TypingTests.js +++ b/www/common/TypingTests.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(function () { var setRandomizedInterval = function (func, target, range) { var timeout; diff --git a/www/common/application_config_internal.js b/www/common/application_config_internal.js index cdcf6014c..6892f781c 100644 --- a/www/common/application_config_internal.js +++ b/www/common/application_config_internal.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* * This is an internal configuration file. * If you want to change some configurable values, use the '/customize/application_config.js' diff --git a/www/common/boot.js b/www/common/boot.js index 406521778..bcaa3c72e 100644 --- a/www/common/boot.js +++ b/www/common/boot.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Stage 0, this gets cached which means we can't change it. boot2.js is changable. define(['/api/config?cb=' + (+new Date()).toString(16)], function (Config) { if (Config.requireConf) { require.config(Config.requireConf); } diff --git a/www/common/boot2.js b/www/common/boot2.js index 02f35d8bf..662df28c1 100644 --- a/www/common/boot2.js +++ b/www/common/boot2.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/requireconfig.js', '/customize/application_config.js' diff --git a/www/common/clipboard.js b/www/common/clipboard.js index 7d93e15f3..61a7d63df 100644 --- a/www/common/clipboard.js +++ b/www/common/clipboard.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(['jquery'], function ($) { var Clipboard = {}; diff --git a/www/common/common-constants.js b/www/common/common-constants.js index 888edeafd..90b501500 100644 --- a/www/common/common-constants.js +++ b/www/common/common-constants.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(['/customize/application_config.js'], function (AppConfig) { return { // localStorage diff --git a/www/common/common-credential.js b/www/common/common-credential.js index cf851f020..78686c001 100644 --- a/www/common/common-credential.js +++ b/www/common/common-credential.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var factory = function (AppConfig, Scrypt) { var Cred = {}; diff --git a/www/common/common-feedback.js b/www/common/common-feedback.js index d377bae5c..2c5baea5d 100644 --- a/www/common/common-feedback.js +++ b/www/common/common-feedback.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/customize/messages.js', '/customize/application_config.js' diff --git a/www/common/common-hash.js b/www/common/common-hash.js index bbd3aaba5..f36faec82 100644 --- a/www/common/common-hash.js +++ b/www/common/common-hash.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function (window) { var factory = function (Util, Crypto, Keys, Nacl) { var Hash = window.CryptPad_Hash = {}; diff --git a/www/common/common-interface.js b/www/common/common-interface.js index 84b5bb2c3..aa1e4d39d 100644 --- a/www/common/common-interface.js +++ b/www/common/common-interface.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + if (!document.querySelector("#alertifyCSS")) { // Prevent alertify from injecting CSS, we create our own in alertify.less. // see: https://github.com/alertifyjs/alertify.js/blob/v1.0.11/src/js/alertify.js#L414 diff --git a/www/common/common-language.js b/www/common/common-language.js index 02e0e68c2..2e136502a 100644 --- a/www/common/common-language.js +++ b/www/common/common-language.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/customize/messages.js' diff --git a/www/common/common-messaging.js b/www/common/common-messaging.js index f3dcc1a29..9a4b33531 100644 --- a/www/common/common-messaging.js +++ b/www/common/common-messaging.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/components/chainpad-crypto/crypto.js', '/common/common-hash.js', diff --git a/www/common/common-notifier.js b/www/common/common-notifier.js index 688c677a6..b595f7272 100644 --- a/www/common/common-notifier.js +++ b/www/common/common-notifier.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/visible.js', '/common/notify.js' diff --git a/www/common/common-realtime.js b/www/common/common-realtime.js index 21c0728e2..cad41ea2f 100644 --- a/www/common/common-realtime.js +++ b/www/common/common-realtime.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { var common = {}; diff --git a/www/common/common-signing-keys.js b/www/common/common-signing-keys.js index 7419f32be..1d1132c34 100644 --- a/www/common/common-signing-keys.js +++ b/www/common/common-signing-keys.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var factory = function () { var Keys = {}; diff --git a/www/common/common-thumbnail.js b/www/common/common-thumbnail.js index 038326f9e..2298a904a 100644 --- a/www/common/common-thumbnail.js +++ b/www/common/common-thumbnail.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index 3a03807f2..840637d17 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/common/common-util.js b/www/common/common-util.js index 5ae15a9fa..e5471c1ff 100644 --- a/www/common/common-util.js +++ b/www/common/common-util.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function (window) { var Util = {}; diff --git a/www/common/cryptget.js b/www/common/cryptget.js index 233fa9cd4..ad86831b2 100644 --- a/www/common/cryptget.js +++ b/www/common/cryptget.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/components/chainpad-crypto/crypto.js', 'chainpad-netflux', diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index 3ab33e5b8..b6c3d1393 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config', '/customize/messages.js', diff --git a/www/common/cursor-treesome.js b/www/common/cursor-treesome.js index 29cb25646..3b39bbce3 100644 --- a/www/common/cursor-treesome.js +++ b/www/common/cursor-treesome.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { var tree = {}; diff --git a/www/common/cursor.js b/www/common/cursor.js index 639db80c5..1ff3f6aa5 100644 --- a/www/common/cursor.js +++ b/www/common/cursor.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/cursor-treesome.js', '/lib/rangy/rangy-core.min.js' diff --git a/www/common/diffMarked.js b/www/common/diffMarked.js index 1bf68c990..6750f46c9 100644 --- a/www/common/diffMarked.js +++ b/www/common/diffMarked.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/common/dom-ready.js b/www/common/dom-ready.js index 69a484493..5265c3e5e 100644 --- a/www/common/dom-ready.js +++ b/www/common/dom-ready.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(function () { return { onReady: function (cb) { diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index 88627ebfa..89537d420 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/common/encode.js b/www/common/encode.js index df99bbf02..6cde8cc70 100644 --- a/www/common/encode.js +++ b/www/common/encode.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { var exports = {}; diff --git a/www/common/feedback-main.js b/www/common/feedback-main.js index d31fd6876..54e7ba9d9 100644 --- a/www/common/feedback-main.js +++ b/www/common/feedback-main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-language.js', 'less!/customize/src/less2/pages/page-feedback.less', diff --git a/www/common/feedback.html b/www/common/feedback.html index 10aa8d71a..41ef756d2 100644 --- a/www/common/feedback.html +++ b/www/common/feedback.html @@ -1,3 +1,9 @@ + + About our feedback api diff --git a/www/common/flat-dom.js b/www/common/flat-dom.js index d54e9db55..77faca3f5 100644 --- a/www/common/flat-dom.js +++ b/www/common/flat-dom.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { var Flat = {}; diff --git a/www/common/hyperscript.js b/www/common/hyperscript.js index 0dbb0f80b..3dd2d3b61 100644 --- a/www/common/hyperscript.js +++ b/www/common/hyperscript.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { var Hyperscript; @@ -152,12 +156,11 @@ function isArray (arr) { } },{"browser-split":2,"class-list":3,"html-element":6}],2:[function(require,module,exports){ -/*! - * Cross-Browser Split 1.1.1 - * Copyright 2007-2012 Steven Levithan - * Available under the MIT License - * ECMAScript compliant, uniform cross-browser split method - */ + +// Copyright 2007-2012 Steven Levithan +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later /** * Splits a string into an array of strings using a regex or string separator. Matches of the diff --git a/www/common/inner/access.js b/www/common/inner/access.js index 17a69e810..d1cfda31f 100644 --- a/www/common/inner/access.js +++ b/www/common/inner/access.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/common/inner/cache.js b/www/common/inner/cache.js index be5b781c2..ceaf27a6d 100644 --- a/www/common/inner/cache.js +++ b/www/common/inner/cache.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ ], function () { var S = {}; diff --git a/www/common/inner/common-mediatag.js b/www/common/inner/common-mediatag.js index e501f61da..0fc3f3b31 100644 --- a/www/common/inner/common-mediatag.js +++ b/www/common/inner/common-mediatag.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/common/inner/common-modal.js b/www/common/inner/common-modal.js index bfb26ddde..12f6b39d1 100644 --- a/www/common/inner/common-modal.js +++ b/www/common/inner/common-modal.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/common/inner/invitation.js b/www/common/inner/invitation.js index 32008e1c7..a3c8b1a79 100644 --- a/www/common/inner/invitation.js +++ b/www/common/inner/invitation.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var factory = function (Util, Nacl, Scrypt) { var Invite = {}; diff --git a/www/common/inner/properties.js b/www/common/inner/properties.js index 696ce038a..b933ec1d2 100644 --- a/www/common/inner/properties.js +++ b/www/common/inner/properties.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/common/inner/share.js b/www/common/inner/share.js index db25738a6..02a95535b 100644 --- a/www/common/inner/share.js +++ b/www/common/inner/share.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/common/inner/snapshots.js b/www/common/inner/snapshots.js index bfa5c5c7a..a1e5451e9 100644 --- a/www/common/inner/snapshots.js +++ b/www/common/inner/snapshots.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-interface.js', diff --git a/www/common/jscolor.js b/www/common/jscolor.js index c9bfa795b..b1ac6ed8e 100644 --- a/www/common/jscolor.js +++ b/www/common/jscolor.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /** * jscolor - JavaScript Color Picker * diff --git a/www/common/loading.js b/www/common/loading.js index 7d0ca4c07..87b961aa6 100644 --- a/www/common/loading.js +++ b/www/common/loading.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { try { var req = JSON.parse(decodeURIComponent(window.location.hash.substring(1))); diff --git a/www/common/make-backup.js b/www/common/make-backup.js index cf1852cc6..4e1d2b205 100644 --- a/www/common/make-backup.js +++ b/www/common/make-backup.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/file/file-crypto.js', diff --git a/www/common/media-tag-nacl.min.js b/www/common/media-tag-nacl.min.js index 8210974fb..2a7acd8c6 100644 --- a/www/common/media-tag-nacl.min.js +++ b/www/common/media-tag-nacl.min.js @@ -1 +1,5 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.MediaTag=e():t.MediaTag=e()}(this,function(){return function(t){function e(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var r={};return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=87)}([function(t,e,r){"use strict";var n={IMAGE:"image",AUDIO:"audio",VIDEO:"video",PDF:"pdf",DASH:"dash",DOWNLOAD:"download",CRYPTO:"crypto",CLEAR_KEY:"clear-key",MEDIA_OBJECT:"media-object"};t.exports=n},function(t,e,r){"use strict";var n={MATCHER:"matcher",RENDERER:"renderer",FILTER:"filter",SANITIZER:"sanitizer"};t.exports=n},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=function(){function t(t,e){for(var r=0;r0}}]),t}();t.exports=i},function(t,e,r){"use strict";var n=r(16),o=r(15);t.exports=function(t,e){e.mediaObjects.forEach(function(t){n(t)}),e.activeMediaObject=t,o(t)}},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=r(1),a=r(5),s=r(3),c=function(t){function e(t){return n(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,u.FILTER,a.ANY))}return i(e,t),e}(s);t.exports=c},,,function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=function(){function t(t,e){for(var r=0;r=0&&f.mediaTypes.splice(e,1)},f.removeAllAllowedMediaTypes=function(t){t.forEach(function(t){f.removeAllowedMediaType(t)})},f.isAllowedMediaType=function(t){return f.mediaTypes.some(function(e){return e===t})},t.exports=f},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var r=0;r1)throw new Error("More than one plugin matched to update for this pass");1===e.length?e.forEach(function(e){Object.keys(t).forEach(function(r){e[r]=t[r]})}):n.pluginStore.store(t)})},n.configure=function(t){(n.loadingEngine||n.processingEngine).configure(t)},n.loadConfigurations=function(t){var e=t.filter(function(t){return t.hasAttribute("configuration")}).map(function(t){return t.getAttribute("configuration")}).reduce(function(t,e){return t.includes(e)||t.push(e),t},[]).map(function(t){return n.loader.configuration(t)});return Promise.all(e).then(function(t){var e=[];return t.forEach(function(t){n.update(t),n.configure(t),t.dependencies&&t.dependencies.forEach(function(t){e.includes(t)||e.push(t)})}),Promise.all(e.map(function(t){return n.loader.script(t)}))})},n.pluginStore=n.pluginStore||new i,n.processingEngine=n.processingEngine||new o(n.pluginStore),n.loader=new a,t.exports=n},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=r(1),a=r(5),s=r(3),c=function(t){function e(t){return n(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,u.SANITIZER,a.EVERY))}return i(e,t),e}(s);t.exports=c},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=function(){function t(t,e){for(var r=0;r MediaTag cannot find a plugin able to render your content

"),this.STACK_SIZE=50,this.SNAPSHOTS_LIMIT=50}return o(t,[{key:"key",value:function(t){return t.getId()}},{key:"configure",value:function(t){var e=this;this.configuration=t,t.processingEngine&&Object.keys(t.processingEngine).forEach(function(r){e[r]="defaultPlugin"===r?t.getDefaultPlugin():r})}},{key:"isConfigured",value:function(){return Boolean(this.configuration)}},{key:"prepare",value:function(t){var e=this;!function(){t.return=function(){return e.return(t)},t.state="processing"}();var r=t.getId();this.stacks.store(r,new h),this.snapshots.store(r,new p),this.stats.store(r,{})}},{key:"start",value:function(t){this.prepare(t),this.routine(t),this.run(t)}},{key:"run",value:function(t){var e=this.key(t),r=this.stacks.top(e);if(!r)return this.end(t);this.configuration?this.configuration.isAllowed(r.identifier)?(r.process||console.warn("FALSY PLUGIN",r),r.process(t)):(this.skip(t,r),this.return(t)):r.process(t)}},{key:"routine",value:function(t){this.fill(t),this.snapshot(t),this.check(t)}},{key:"snapshot",value:function(t){var e=this.key(t),r=this.stacks.get(e).clone();this.snapshots.stack(e,r)}},{key:"fill",value:function(t){var e=this,r=this.key(t),n=this.pluginStore.values(),o=n.filter(function(t){return t.getType()===a.MATCHER}).filter(function(e){return e.process(t)}).map(function(t){return t.getIdentifier()}),i=n.filter(function(t){return t.getType()!==a.MATCHER}).filter(function(t){return o.includes(t.getIdentifier())}),u=s.filterByOccurrencies(i);Object.keys(u).forEach(function(n){u[n].forEach(function(n){e.configuration.isAllowed(n.getIdentifier())?e.stacks.get(r).isStackable(n)&&e.stacks.stack(r,n):e.skip(t,n)})})}},{key:"skip",value:function(t,e){var r=t.getId(),n=this.stats.get(r);n?n.skipped||(n.skipped=[]):n={skipped:[]},n.skipped.push(e.identifier)}},{key:"unstack",value:function(t){var e=t.getId();return this.stacks[e]?this.stacks[e].pop():null}},{key:"check",value:function(t){var e=t.getId();if(this.stacks.length(e)>=this.STACK_SIZE)throw console.error("SNAPSHOTS",this.snapshots.get(e)),new Error("Plugin stack size exceed");if(this.snapshots.length(e)>=this.SNAPSHOT_LIMIT)throw console.error("SNAPSHOTS",this.snapshots.get(e)),new Error("Plugin snapshots count exceed");var r=0;if(this.stacks.plugins(e).forEach(function(t){t.type===a.RENDERER&&r++}),r>1)throw console.error("SNAPSHOTS",this.snapshots.get(e)),new Error("More of one renderer in the stack");if(0===this.stacks.length(e)&&!this.stats.get(e)[a.RENDERER]){if(!this.defaultPlugin)throw new Error("No default plugin assignated");this.stacks.stack(e,this.defaultPlugin)}}},{key:"return",value:function(t){var e=t.getId(),r=this.stacks.unstack(e);if(!r)return this.end(t);try{this.stats.get(e)||this.stats.store(e,{}),this.stats.get(e)[r.type]?this.stats.get(e)[r.type]+=1:this.stats.get(e)[r.type]=1}catch(t){console.error(t,this.snapshots.get(e))}r.type!==a.SANITIZER&&r.type!==a.RENDERER&&this.fill(t),this.snapshot(t),this.check(t),this.run(t)}},{key:"end",value:function(t){return t.status="processed",t}},{key:"setDefaultPlugin",value:function(t){this.defaultPlugin=t}}]),t}();t.exports=y},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var r=0;r0&&n(t.mediaObjects[e-1],t)}},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var r=0;r1?e[0]:window.location.protocol}},{key:"hostname",value:function(t){var e=t.getAttribute("src").split("://");return e.length>1?e[1].split("/")[0]:window.location.hostname}},{key:"source",value:function(t){return t.getAttribute("src")}},{key:"schemes",value:function(t){return/\w+:/.exec(t.getAttribute("src"))}},{key:"sources",value:function(t){var e=t.getAttribute("sources")||t.getAttribute("srcs");return e?JSON.parse(e):null}},{key:"actions",value:function(t){var e=t.getAttribute("actions");return e?JSON.parse(e):null}},{key:"parse",value:function(e){return{protocol:t.protocol(e),hostname:t.hostname(e),src:t.source(e),type:t.type(e),extension:t.extension(e),mime:t.mime(e),sources:t.sources(e),actions:t.actions(e)}}}]),t}();t.exports=i},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var r=0;r1;){if("number"!=typeof t[e])throw new Error("E_UNSAFE_TYPE");if(t[e]>255)throw new Error("E_OUT_OF_BOUNDS");if(255!==t[e])return void t[e]++;if(t[e]=0,0===e)throw new Error("E_NONCE_TOO_LARGE")}}},{key:"encodePrefix",value:function(t){return[65280,255].map(function(e,r){return(t&e)>>8*(1-r)})}},{key:"decodePrefix",value:function(t){return t[0]<<8|t[1]}},{key:"joinChunks",value:function(t){return new Blob(t)}},{key:"slice",value:function(t){return Array.prototype.slice.call(t)}},{key:"getRandomKeyStr",value:function(){var t=window.nacl,e=t.randomBytes(18);return t.util.encodeBase64(e)}},{key:"getKeyFromStr",value:function(t){return window.nacl.util.decodeBase64(t)}},{key:"encrypt",value:function(e,r){var n=e,o=window.nacl.randomBytes(24),i=window.nacl.secretbox(n,o,r);if(i)return new Uint8Array(t.slice(o).concat(t.slice(i)));throw new Error}},{key:"decrypt",value:function(e,r,n){var o=window.nacl,i=function(t){var r=new Event("decryptionProgress");r.percent=t/e.length*100,window.document.dispatchEvent(r)},u=t.createNonce(),a=0,s=e.subarray(0,2),c=t.decodePrefix(s),f={metadata:void 0},l=new Uint8Array(e.subarray(2,2+c)),h=o.secretbox.open(l,u,r);t.increment(u);try{f.metadata=JSON.parse(o.util.encodeUTF8(h))}catch(t){return n("E_METADATA_DECRYPTION")}if(!f.metadata)return n("NO_METADATA");var p=function(n){setTimeout(function(){var s=131088*a+2+c,f=s+131088;a++;var l=new Uint8Array(e.subarray(s,f)),h=o.secretbox.open(l,u,r);if(t.increment(u),!h)return void n("DECRYPTION_FAILURE");i(Math.min(f,e.length)),n(void 0,h)})},y=[];!function r(){p(function(o,i){return o?setTimeout(function(){n(o)}):i?131088*a0&&o(t),e()}catch(t){r(t)}})}function u(e){i(t(e)).catch(function(t){console.error(t)})}var a=new MutationObserver(u),s=document.body,c={characterData:!0,childList:!0,attributes:!0,subtree:!0};a.observe(s,c),i(Array.from(document.getElementsByTagName("media-tag")))}),t.exports=o},function(t,e,r){"use strict";var n=r(42),o=r(43),i=r(64),u=r(65),a=r(66),s=r(67),c=r(68),f=r(19),l=r(12),h=r(44),p=r(45),y=r(46);y.PdfPlugin=s,y.PdfPlugin.viewer="/pdfjs/web/viewer.html",l.functionStore.store("salsa20poly1305",n),l.functionStore.store("cryptpad",o),y.processingEngine.setDefaultPlugin(new f("

Media-Tag can't process your content

","Download")),y.CryptoFilter=l,y.CryptoFilter.setAllowedMediaTypes(["image/png","image/jpeg","image/jpg","image/gif","audio/mp3","audio/ogg","audio/wav","audio/webm","video/mp4","video/ogg","video/webm","application/pdf","application/dash+xml","download"]),y.pluginStore.store(new i),y.pluginStore.store(new u),y.pluginStore.store(new a),y.pluginStore.store(new s),y.pluginStore.store(new c),y.pluginStore.store(new f),y.pluginStore.store(new l),y.pluginStore.store(new h),y.pluginStore.store(new p),t.exports=y},function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=function(){function t(t,e){for(var r=0;r>24&255,t[e+1]=r>>16&255,t[e+2]=r>>8&255,t[e+3]=255&r,t[e+4]=n>>24&255,t[e+5]=n>>16&255,t[e+6]=n>>8&255,t[e+7]=255&n}function n(t,e,r,n,o){var i,u=0;for(i=0;i>>8)-1}function o(t,e,r,o){return n(t,e,r,o,16)}function i(t,e,r,o){return n(t,e,r,o,32)}function u(t,e,r,n){for(var o,i=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,u=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,s=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,c=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,f=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,l=255&e[0]|(255&e[1])<<8|(255&e[2])<<16|(255&e[3])<<24,h=255&e[4]|(255&e[5])<<8|(255&e[6])<<16|(255&e[7])<<24,p=255&e[8]|(255&e[9])<<8|(255&e[10])<<16|(255&e[11])<<24,y=255&e[12]|(255&e[13])<<8|(255&e[14])<<16|(255&e[15])<<24,b=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,g=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,d=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,v=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,w=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,m=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,E=i,_=u,O=a,A=s,k=c,P=f,T=l,j=h,x=p,R=y,S=b,U=g,C=d,M=v,B=w,I=m,D=0;D<20;D+=2)o=E+C|0,k^=o<<7|o>>>25,o=k+E|0,x^=o<<9|o>>>23,o=x+k|0,C^=o<<13|o>>>19,o=C+x|0,E^=o<<18|o>>>14,o=P+_|0,R^=o<<7|o>>>25,o=R+P|0,M^=o<<9|o>>>23,o=M+R|0,_^=o<<13|o>>>19,o=_+M|0,P^=o<<18|o>>>14,o=S+T|0,B^=o<<7|o>>>25,o=B+S|0,O^=o<<9|o>>>23,o=O+B|0,T^=o<<13|o>>>19,o=T+O|0,S^=o<<18|o>>>14,o=I+U|0,A^=o<<7|o>>>25,o=A+I|0,j^=o<<9|o>>>23,o=j+A|0,U^=o<<13|o>>>19,o=U+j|0,I^=o<<18|o>>>14,o=E+A|0,_^=o<<7|o>>>25,o=_+E|0,O^=o<<9|o>>>23,o=O+_|0,A^=o<<13|o>>>19,o=A+O|0,E^=o<<18|o>>>14,o=P+k|0,T^=o<<7|o>>>25,o=T+P|0,j^=o<<9|o>>>23,o=j+T|0,k^=o<<13|o>>>19,o=k+j|0,P^=o<<18|o>>>14,o=S+R|0,U^=o<<7|o>>>25,o=U+S|0,x^=o<<9|o>>>23,o=x+U|0,R^=o<<13|o>>>19,o=R+x|0,S^=o<<18|o>>>14,o=I+B|0,C^=o<<7|o>>>25,o=C+I|0,M^=o<<9|o>>>23,o=M+C|0,B^=o<<13|o>>>19,o=B+M|0,I^=o<<18|o>>>14;E=E+i|0,_=_+u|0,O=O+a|0,A=A+s|0,k=k+c|0,P=P+f|0,T=T+l|0,j=j+h|0,x=x+p|0,R=R+y|0,S=S+b|0,U=U+g|0,C=C+d|0,M=M+v|0,B=B+w|0,I=I+m|0,t[0]=E>>>0&255,t[1]=E>>>8&255,t[2]=E>>>16&255,t[3]=E>>>24&255,t[4]=_>>>0&255,t[5]=_>>>8&255,t[6]=_>>>16&255,t[7]=_>>>24&255,t[8]=O>>>0&255,t[9]=O>>>8&255,t[10]=O>>>16&255,t[11]=O>>>24&255,t[12]=A>>>0&255,t[13]=A>>>8&255,t[14]=A>>>16&255,t[15]=A>>>24&255,t[16]=k>>>0&255,t[17]=k>>>8&255,t[18]=k>>>16&255,t[19]=k>>>24&255,t[20]=P>>>0&255,t[21]=P>>>8&255,t[22]=P>>>16&255,t[23]=P>>>24&255,t[24]=T>>>0&255,t[25]=T>>>8&255,t[26]=T>>>16&255,t[27]=T>>>24&255,t[28]=j>>>0&255,t[29]=j>>>8&255,t[30]=j>>>16&255,t[31]=j>>>24&255,t[32]=x>>>0&255,t[33]=x>>>8&255,t[34]=x>>>16&255,t[35]=x>>>24&255,t[36]=R>>>0&255,t[37]=R>>>8&255,t[38]=R>>>16&255,t[39]=R>>>24&255,t[40]=S>>>0&255,t[41]=S>>>8&255,t[42]=S>>>16&255,t[43]=S>>>24&255,t[44]=U>>>0&255,t[45]=U>>>8&255,t[46]=U>>>16&255,t[47]=U>>>24&255,t[48]=C>>>0&255,t[49]=C>>>8&255,t[50]=C>>>16&255,t[51]=C>>>24&255,t[52]=M>>>0&255,t[53]=M>>>8&255,t[54]=M>>>16&255,t[55]=M>>>24&255,t[56]=B>>>0&255,t[57]=B>>>8&255,t[58]=B>>>16&255,t[59]=B>>>24&255,t[60]=I>>>0&255,t[61]=I>>>8&255,t[62]=I>>>16&255,t[63]=I>>>24&255}function a(t,e,r,n){for(var o,i=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,u=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,s=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,c=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,f=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,l=255&e[0]|(255&e[1])<<8|(255&e[2])<<16|(255&e[3])<<24,h=255&e[4]|(255&e[5])<<8|(255&e[6])<<16|(255&e[7])<<24,p=255&e[8]|(255&e[9])<<8|(255&e[10])<<16|(255&e[11])<<24,y=255&e[12]|(255&e[13])<<8|(255&e[14])<<16|(255&e[15])<<24,b=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,g=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,d=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,v=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,w=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,m=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,E=i,_=u,O=a,A=s,k=c,P=f,T=l,j=h,x=p,R=y,S=b,U=g,C=d,M=v,B=w,I=m,D=0;D<20;D+=2)o=E+C|0,k^=o<<7|o>>>25,o=k+E|0,x^=o<<9|o>>>23,o=x+k|0,C^=o<<13|o>>>19,o=C+x|0,E^=o<<18|o>>>14,o=P+_|0,R^=o<<7|o>>>25,o=R+P|0,M^=o<<9|o>>>23,o=M+R|0,_^=o<<13|o>>>19,o=_+M|0,P^=o<<18|o>>>14,o=S+T|0,B^=o<<7|o>>>25,o=B+S|0,O^=o<<9|o>>>23,o=O+B|0,T^=o<<13|o>>>19,o=T+O|0,S^=o<<18|o>>>14,o=I+U|0,A^=o<<7|o>>>25,o=A+I|0,j^=o<<9|o>>>23,o=j+A|0,U^=o<<13|o>>>19,o=U+j|0,I^=o<<18|o>>>14,o=E+A|0,_^=o<<7|o>>>25,o=_+E|0,O^=o<<9|o>>>23,o=O+_|0,A^=o<<13|o>>>19,o=A+O|0,E^=o<<18|o>>>14,o=P+k|0,T^=o<<7|o>>>25,o=T+P|0,j^=o<<9|o>>>23,o=j+T|0,k^=o<<13|o>>>19,o=k+j|0,P^=o<<18|o>>>14,o=S+R|0,U^=o<<7|o>>>25,o=U+S|0,x^=o<<9|o>>>23,o=x+U|0,R^=o<<13|o>>>19,o=R+x|0,S^=o<<18|o>>>14,o=I+B|0,C^=o<<7|o>>>25,o=C+I|0,M^=o<<9|o>>>23,o=M+C|0,B^=o<<13|o>>>19,o=B+M|0,I^=o<<18|o>>>14;t[0]=E>>>0&255,t[1]=E>>>8&255,t[2]=E>>>16&255,t[3]=E>>>24&255,t[4]=P>>>0&255,t[5]=P>>>8&255,t[6]=P>>>16&255,t[7]=P>>>24&255,t[8]=S>>>0&255,t[9]=S>>>8&255,t[10]=S>>>16&255,t[11]=S>>>24&255,t[12]=I>>>0&255,t[13]=I>>>8&255,t[14]=I>>>16&255,t[15]=I>>>24&255,t[16]=T>>>0&255,t[17]=T>>>8&255,t[18]=T>>>16&255,t[19]=T>>>24&255,t[20]=j>>>0&255,t[21]=j>>>8&255,t[22]=j>>>16&255,t[23]=j>>>24&255,t[24]=x>>>0&255,t[25]=x>>>8&255,t[26]=x>>>16&255,t[27]=x>>>24&255,t[28]=R>>>0&255,t[29]=R>>>8&255,t[30]=R>>>16&255,t[31]=R>>>24&255}function s(t,e,r,n){u(t,e,r,n)}function c(t,e,r,n){a(t,e,r,n)}function f(t,e,r,n,o,i,u){var a,c,f=new Uint8Array(16),l=new Uint8Array(64);for(c=0;c<16;c++)f[c]=0;for(c=0;c<8;c++)f[c]=i[c];for(;o>=64;){for(s(l,f,u,ht),c=0;c<64;c++)t[e+c]=r[n+c]^l[c];for(a=1,c=8;c<16;c++)a=a+(255&f[c])|0,f[c]=255&a,a>>>=8;o-=64,e+=64,n+=64}if(o>0)for(s(l,f,u,ht),c=0;c=64;){for(s(c,a,o,ht),u=0;u<64;u++)t[e+u]=c[u];for(i=1,u=8;u<16;u++)i=i+(255&a[u])|0,a[u]=255&i,i>>>=8;r-=64,e+=64}if(r>0)for(s(c,a,o,ht),u=0;u>16&1),i[r-1]&=65535;i[15]=u[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,m(u,i,1-o)}for(r=0;r<16;r++)t[2*r]=255&u[r],t[2*r+1]=u[r]>>8}function _(t,e){var r=new Uint8Array(32),n=new Uint8Array(32);return E(r,t),E(n,e),i(r,0,n,0)}function O(t){var e=new Uint8Array(32);return E(e,t),1&e[0]}function A(t,e){var r;for(r=0;r<16;r++)t[r]=e[2*r]+(e[2*r+1]<<8);t[15]&=32767}function k(t,e,r){for(var n=0;n<16;n++)t[n]=e[n]+r[n]}function P(t,e,r){for(var n=0;n<16;n++)t[n]=e[n]-r[n]}function T(t,e,r){var n,o,i=0,u=0,a=0,s=0,c=0,f=0,l=0,h=0,p=0,y=0,b=0,g=0,d=0,v=0,w=0,m=0,E=0,_=0,O=0,A=0,k=0,P=0,T=0,j=0,x=0,R=0,S=0,U=0,C=0,M=0,B=0,I=r[0],D=r[1],L=r[2],N=r[3],Y=r[4],F=r[5],K=r[6],z=r[7],H=r[8],G=r[9],Z=r[10],J=r[11],$=r[12],X=r[13],V=r[14],q=r[15];n=e[0],i+=n*I,u+=n*D,a+=n*L,s+=n*N,c+=n*Y,f+=n*F,l+=n*K,h+=n*z,p+=n*H,y+=n*G,b+=n*Z,g+=n*J,d+=n*$,v+=n*X,w+=n*V,m+=n*q,n=e[1],u+=n*I,a+=n*D,s+=n*L,c+=n*N,f+=n*Y,l+=n*F,h+=n*K,p+=n*z,y+=n*H,b+=n*G,g+=n*Z,d+=n*J,v+=n*$,w+=n*X,m+=n*V,E+=n*q,n=e[2],a+=n*I,s+=n*D,c+=n*L,f+=n*N,l+=n*Y,h+=n*F,p+=n*K,y+=n*z,b+=n*H,g+=n*G,d+=n*Z,v+=n*J,w+=n*$,m+=n*X,E+=n*V,_+=n*q,n=e[3],s+=n*I,c+=n*D,f+=n*L,l+=n*N,h+=n*Y,p+=n*F,y+=n*K,b+=n*z,g+=n*H,d+=n*G,v+=n*Z,w+=n*J,m+=n*$,E+=n*X,_+=n*V,O+=n*q,n=e[4],c+=n*I,f+=n*D,l+=n*L,h+=n*N,p+=n*Y,y+=n*F,b+=n*K,g+=n*z,d+=n*H,v+=n*G,w+=n*Z,m+=n*J,E+=n*$,_+=n*X,O+=n*V,A+=n*q,n=e[5],f+=n*I,l+=n*D,h+=n*L,p+=n*N,y+=n*Y,b+=n*F,g+=n*K,d+=n*z,v+=n*H,w+=n*G,m+=n*Z,E+=n*J,_+=n*$,O+=n*X,A+=n*V,k+=n*q,n=e[6],l+=n*I,h+=n*D,p+=n*L,y+=n*N,b+=n*Y,g+=n*F,d+=n*K,v+=n*z,w+=n*H,m+=n*G,E+=n*Z,_+=n*J,O+=n*$,A+=n*X,k+=n*V,P+=n*q,n=e[7],h+=n*I,p+=n*D,y+=n*L,b+=n*N,g+=n*Y,d+=n*F,v+=n*K,w+=n*z,m+=n*H,E+=n*G,_+=n*Z,O+=n*J,A+=n*$,k+=n*X,P+=n*V,T+=n*q,n=e[8],p+=n*I,y+=n*D,b+=n*L,g+=n*N,d+=n*Y,v+=n*F,w+=n*K,m+=n*z,E+=n*H,_+=n*G,O+=n*Z,A+=n*J,k+=n*$,P+=n*X,T+=n*V,j+=n*q,n=e[9],y+=n*I,b+=n*D,g+=n*L,d+=n*N,v+=n*Y,w+=n*F,m+=n*K,E+=n*z,_+=n*H,O+=n*G,A+=n*Z,k+=n*J,P+=n*$,T+=n*X,j+=n*V,x+=n*q,n=e[10],b+=n*I,g+=n*D,d+=n*L,v+=n*N,w+=n*Y,m+=n*F,E+=n*K,_+=n*z,O+=n*H,A+=n*G,k+=n*Z,P+=n*J,T+=n*$,j+=n*X,x+=n*V,R+=n*q,n=e[11],g+=n*I,d+=n*D,v+=n*L,w+=n*N,m+=n*Y,E+=n*F,_+=n*K,O+=n*z,A+=n*H,k+=n*G,P+=n*Z,T+=n*J;j+=n*$,x+=n*X,R+=n*V,S+=n*q,n=e[12],d+=n*I,v+=n*D,w+=n*L,m+=n*N,E+=n*Y,_+=n*F,O+=n*K,A+=n*z,k+=n*H,P+=n*G,T+=n*Z,j+=n*J,x+=n*$,R+=n*X,S+=n*V,U+=n*q,n=e[13],v+=n*I,w+=n*D,m+=n*L,E+=n*N,_+=n*Y,O+=n*F,A+=n*K,k+=n*z,P+=n*H,T+=n*G,j+=n*Z,x+=n*J,R+=n*$,S+=n*X,U+=n*V,C+=n*q,n=e[14],w+=n*I,m+=n*D,E+=n*L,_+=n*N,O+=n*Y,A+=n*F,k+=n*K,P+=n*z,T+=n*H,j+=n*G,x+=n*Z,R+=n*J,S+=n*$,U+=n*X,C+=n*V,M+=n*q,n=e[15],m+=n*I,E+=n*D,_+=n*L,O+=n*N,A+=n*Y,k+=n*F,P+=n*K,T+=n*z,j+=n*H,x+=n*G,R+=n*Z,S+=n*J,U+=n*$,C+=n*X,M+=n*V,B+=n*q,i+=38*E,u+=38*_,a+=38*O,s+=38*A,c+=38*k,f+=38*P,l+=38*T,h+=38*j,p+=38*x,y+=38*R,b+=38*S,g+=38*U,d+=38*C,v+=38*M,w+=38*B,o=1,n=i+o+65535,o=Math.floor(n/65536),i=n-65536*o,n=u+o+65535,o=Math.floor(n/65536),u=n-65536*o,n=a+o+65535,o=Math.floor(n/65536),a=n-65536*o,n=s+o+65535,o=Math.floor(n/65536),s=n-65536*o,n=c+o+65535,o=Math.floor(n/65536),c=n-65536*o,n=f+o+65535,o=Math.floor(n/65536),f=n-65536*o,n=l+o+65535,o=Math.floor(n/65536),l=n-65536*o,n=h+o+65535,o=Math.floor(n/65536),h=n-65536*o,n=p+o+65535,o=Math.floor(n/65536),p=n-65536*o,n=y+o+65535,o=Math.floor(n/65536),y=n-65536*o,n=b+o+65535,o=Math.floor(n/65536),b=n-65536*o,n=g+o+65535,o=Math.floor(n/65536),g=n-65536*o,n=d+o+65535,o=Math.floor(n/65536),d=n-65536*o,n=v+o+65535,o=Math.floor(n/65536),v=n-65536*o,n=w+o+65535,o=Math.floor(n/65536),w=n-65536*o,n=m+o+65535,o=Math.floor(n/65536),m=n-65536*o,i+=o-1+37*(o-1),o=1,n=i+o+65535,o=Math.floor(n/65536),i=n-65536*o,n=u+o+65535,o=Math.floor(n/65536),u=n-65536*o,n=a+o+65535,o=Math.floor(n/65536),a=n-65536*o,n=s+o+65535,o=Math.floor(n/65536),s=n-65536*o,n=c+o+65535,o=Math.floor(n/65536),c=n-65536*o,n=f+o+65535,o=Math.floor(n/65536),f=n-65536*o,n=l+o+65535,o=Math.floor(n/65536),l=n-65536*o,n=h+o+65535,o=Math.floor(n/65536),h=n-65536*o,n=p+o+65535,o=Math.floor(n/65536),p=n-65536*o,n=y+o+65535,o=Math.floor(n/65536),y=n-65536*o,n=b+o+65535,o=Math.floor(n/65536),b=n-65536*o,n=g+o+65535,o=Math.floor(n/65536),g=n-65536*o,n=d+o+65535,o=Math.floor(n/65536),d=n-65536*o,n=v+o+65535,o=Math.floor(n/65536),v=n-65536*o,n=w+o+65535,o=Math.floor(n/65536),w=n-65536*o,n=m+o+65535,o=Math.floor(n/65536),m=n-65536*o,i+=o-1+37*(o-1),t[0]=i,t[1]=u,t[2]=a,t[3]=s,t[4]=c,t[5]=f,t[6]=l,t[7]=h,t[8]=p,t[9]=y,t[10]=b,t[11]=g,t[12]=d;t[13]=v,t[14]=w,t[15]=m}function j(t,e){T(t,e,e)}function x(t,e){var r,n=tt();for(r=0;r<16;r++)n[r]=e[r];for(r=253;r>=0;r--)j(n,n),2!==r&&4!==r&&T(n,n,e);for(r=0;r<16;r++)t[r]=n[r]}function R(t,e){var r,n=tt();for(r=0;r<16;r++)n[r]=e[r];for(r=250;r>=0;r--)j(n,n),1!==r&&T(n,n,e);for(r=0;r<16;r++)t[r]=n[r]}function S(t,e,r){var n,o,i=new Uint8Array(32),u=new Float64Array(80),a=tt(),s=tt(),c=tt(),f=tt(),l=tt(),h=tt();for(o=0;o<31;o++)i[o]=e[o];for(i[31]=127&e[31]|64,i[0]&=248,A(u,r),o=0;o<16;o++)s[o]=u[o],f[o]=a[o]=c[o]=0;for(a[0]=f[0]=1,o=254;o>=0;--o)n=i[o>>>3]>>>(7&o)&1,m(a,s,n),m(c,f,n),k(l,a,c),P(a,a,c),k(c,s,f),P(s,s,f),j(f,l),j(h,a),T(a,c,a),T(c,s,l),k(l,a,c),P(a,a,c),j(s,a),P(c,f,h),T(a,c,ut),k(a,a,f),T(c,c,a),T(a,f,h),T(f,s,u),j(s,l),m(a,s,n),m(c,f,n);for(o=0;o<16;o++)u[o+16]=a[o],u[o+32]=c[o],u[o+48]=s[o],u[o+64]=f[o];var p=u.subarray(32),y=u.subarray(16);return x(p,p),T(y,y,p),E(t,y),0}function U(t,e){return S(t,e,nt)}function C(t,e){return et(e,32),U(t,e)}function M(t,e,r){var n=new Uint8Array(32);return S(n,r,e),c(t,rt,n,ht)}function B(t,e,r,n,o,i){var u=new Uint8Array(32);return M(u,o,i),yt(t,e,r,n,u)}function I(t,e,r,n,o,i){var u=new Uint8Array(32);return M(u,o,i),bt(t,e,r,n,u)}function D(t,e,r,n){for(var o,i,u,a,s,c,f,l,h,p,y,b,g,d,v,w,m,E,_,O,A,k,P,T,j,x,R=new Int32Array(16),S=new Int32Array(16),U=t[0],C=t[1],M=t[2],B=t[3],I=t[4],D=t[5],L=t[6],N=t[7],Y=e[0],F=e[1],K=e[2],z=e[3],H=e[4],G=e[5],Z=e[6],J=e[7],$=0;n>=128;){for(_=0;_<16;_++)O=8*_+$,R[_]=r[O+0]<<24|r[O+1]<<16|r[O+2]<<8|r[O+3],S[_]=r[O+4]<<24|r[O+5]<<16|r[O+6]<<8|r[O+7];for(_=0;_<80;_++)if(o=U,i=C,u=M,a=B,s=I,c=D,f=L,l=N,h=Y,p=F,y=K,b=z,g=H,d=G,v=Z,w=J,A=N,k=J,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=(I>>>14|H<<18)^(I>>>18|H<<14)^(H>>>9|I<<23),k=(H>>>14|I<<18)^(H>>>18|I<<14)^(I>>>9|H<<23),P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,A=I&D^~I&L,k=H&G^~H&Z,P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,A=gt[2*_],k=gt[2*_+1],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,A=R[_%16],k=S[_%16],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,m=65535&j|x<<16,E=65535&P|T<<16,A=m,k=E,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=(U>>>28|Y<<4)^(Y>>>2|U<<30)^(Y>>>7|U<<25),k=(Y>>>28|U<<4)^(U>>>2|Y<<30)^(U>>>7|Y<<25),P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,A=U&C^U&M^C&M,k=Y&F^Y&K^F&K,P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,l=65535&j|x<<16,w=65535&P|T<<16,A=a,k=b,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=m,k=E,P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,a=65535&j|x<<16,b=65535&P|T<<16,C=o,M=i,B=u,I=a,D=s,L=c,N=f,U=l,F=h,K=p,z=y,H=b,G=g,Z=d,J=v,Y=w,_%16==15)for(O=0;O<16;O++)A=R[O],k=S[O],P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=R[(O+9)%16],k=S[(O+9)%16],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,m=R[(O+1)%16],E=S[(O+1)%16],A=(m>>>1|E<<31)^(m>>>8|E<<24)^m>>>7,k=(E>>>1|m<<31)^(E>>>8|m<<24)^(E>>>7|m<<25),P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,m=R[(O+14)%16],E=S[(O+14)%16],A=(m>>>19|E<<13)^(E>>>29|m<<3)^m>>>6,k=(E>>>19|m<<13)^(m>>>29|E<<3)^(E>>>6|m<<26),P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,R[O]=65535&j|x<<16,S[O]=65535&P|T<<16;A=U,k=Y,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=t[0],k=e[0],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,t[0]=U=65535&j|x<<16,e[0]=Y=65535&P|T<<16,A=C,k=F,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=t[1],k=e[1],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,t[1]=C=65535&j|x<<16,e[1]=F=65535&P|T<<16,A=M,k=K,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=t[2],k=e[2],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,t[2]=M=65535&j|x<<16,e[2]=K=65535&P|T<<16,A=B,k=z,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=t[3],k=e[3],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,t[3]=B=65535&j|x<<16,e[3]=z=65535&P|T<<16,A=I,k=H,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=t[4],k=e[4],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,t[4]=I=65535&j|x<<16,e[4]=H=65535&P|T<<16,A=D,k=G,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=t[5],k=e[5],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,t[5]=D=65535&j|x<<16,e[5]=G=65535&P|T<<16,A=L,k=Z,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=t[6],k=e[6],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,t[6]=L=65535&j|x<<16,e[6]=Z=65535&P|T<<16,A=N,k=J,P=65535&k,T=k>>>16,j=65535&A,x=A>>>16,A=t[7],k=e[7],P+=65535&k,T+=k>>>16,j+=65535&A,x+=A>>>16,T+=P>>>16,j+=T>>>16,x+=j>>>16,t[7]=N=65535&j|x<<16,e[7]=J=65535&P|T<<16,$+=128,n-=128}return n}function L(t,r,n){var o,i=new Int32Array(8),u=new Int32Array(8),a=new Uint8Array(256),s=n;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,u[0]=4089235720,u[1]=2227873595,u[2]=4271175723,u[3]=1595750129,u[4]=2917565137,u[5]=725511199,u[6]=4215389547,u[7]=327033209,D(i,u,r,n),n%=128,o=0;o=0;--o)n=r[o/8|0]>>(7&o)&1,Y(t,e,n),N(e,t),N(t,t),Y(t,e,n)}function z(t,e){var r=[tt(),tt(),tt(),tt()];v(r[0],ct),v(r[1],ft),v(r[2],it),T(r[3],ct,ft),K(t,r,e)}function H(t,e,r){var n,o=new Uint8Array(64),i=[tt(),tt(),tt(),tt()];for(r||et(e,32),L(o,e,32),o[0]&=248,o[31]&=127,o[31]|=64,z(i,o),F(t,i),n=0;n<32;n++)e[n+32]=t[n];return 0}function G(t,e){var r,n,o,i;for(n=63;n>=32;--n){for(r=0,o=n-32,i=n-12;o>8,e[o]-=256*r;e[o]+=r,e[n]=0}for(r=0,o=0;o<32;o++)e[o]+=r-(e[31]>>4)*dt[o],r=e[o]>>8,e[o]&=255;for(o=0;o<32;o++)e[o]-=r*dt[o];for(n=0;n<32;n++)e[n+1]+=e[n]>>8,t[n]=255&e[n]}function Z(t){var e,r=new Float64Array(64);for(e=0;e<64;e++)r[e]=t[e];for(e=0;e<64;e++)t[e]=0;G(t,r)}function J(t,e,r,n){var o,i,u=new Uint8Array(64),a=new Uint8Array(64),s=new Uint8Array(64),c=new Float64Array(64),f=[tt(),tt(),tt(),tt()];L(u,n,32),u[0]&=248,u[31]&=127,u[31]|=64;var l=r+64;for(o=0;o>7&&P(t[0],ot,t[0]),T(t[3],t[0],t[1]),0)}function X(t,e,r,n){var o,u=new Uint8Array(32),a=new Uint8Array(64),s=[tt(),tt(),tt(),tt()],c=[tt(),tt(),tt(),tt()];if(r<64)return-1;if($(c,n))return-1;for(o=0;o>>13|r<<3),n=255&t[4]|(255&t[5])<<8,this.r[2]=7939&(r>>>10|n<<6),o=255&t[6]|(255&t[7])<<8,this.r[3]=8191&(n>>>7|o<<9),i=255&t[8]|(255&t[9])<<8,this.r[4]=255&(o>>>4|i<<12),this.r[5]=i>>>1&8190,u=255&t[10]|(255&t[11])<<8,this.r[6]=8191&(i>>>14|u<<2),a=255&t[12]|(255&t[13])<<8,this.r[7]=8065&(u>>>11|a<<5),s=255&t[14]|(255&t[15])<<8,this.r[8]=8191&(a>>>8|s<<8),this.r[9]=s>>>5&127,this.pad[0]=255&t[16]|(255&t[17])<<8,this.pad[1]=255&t[18]|(255&t[19])<<8,this.pad[2]=255&t[20]|(255&t[21])<<8,this.pad[3]=255&t[22]|(255&t[23])<<8,this.pad[4]=255&t[24]|(255&t[25])<<8,this.pad[5]=255&t[26]|(255&t[27])<<8,this.pad[6]=255&t[28]|(255&t[29])<<8,this.pad[7]=255&t[30]|(255&t[31])<<8};pt.prototype.blocks=function(t,e,r){for(var n,o,i,u,a,s,c,f,l,h,p,y,b,g,d,v,w,m,E,_=this.fin?0:2048,O=this.h[0],A=this.h[1],k=this.h[2],P=this.h[3],T=this.h[4],j=this.h[5],x=this.h[6],R=this.h[7],S=this.h[8],U=this.h[9],C=this.r[0],M=this.r[1],B=this.r[2],I=this.r[3],D=this.r[4],L=this.r[5],N=this.r[6],Y=this.r[7],F=this.r[8],K=this.r[9];r>=16;)n=255&t[e+0]|(255&t[e+1])<<8,O+=8191&n,o=255&t[e+2]|(255&t[e+3])<<8,A+=8191&(n>>>13|o<<3),i=255&t[e+4]|(255&t[e+5])<<8,k+=8191&(o>>>10|i<<6),u=255&t[e+6]|(255&t[e+7])<<8,P+=8191&(i>>>7|u<<9),a=255&t[e+8]|(255&t[e+9])<<8,T+=8191&(u>>>4|a<<12),j+=a>>>1&8191,s=255&t[e+10]|(255&t[e+11])<<8,x+=8191&(a>>>14|s<<2),c=255&t[e+12]|(255&t[e+13])<<8,R+=8191&(s>>>11|c<<5),f=255&t[e+14]|(255&t[e+15])<<8,S+=8191&(c>>>8|f<<8),U+=f>>>5|_,l=0,h=l,h+=O*C,h+=A*(5*K),h+=k*(5*F),h+=P*(5*Y),h+=T*(5*N),l=h>>>13,h&=8191,h+=j*(5*L),h+=x*(5*D),h+=R*(5*I),h+=S*(5*B),h+=U*(5*M),l+=h>>>13,h&=8191,p=l,p+=O*M,p+=A*C,p+=k*(5*K),p+=P*(5*F),p+=T*(5*Y),l=p>>>13,p&=8191,p+=j*(5*N),p+=x*(5*L),p+=R*(5*D),p+=S*(5*I),p+=U*(5*B),l+=p>>>13,p&=8191,y=l,y+=O*B,y+=A*M,y+=k*C,y+=P*(5*K),y+=T*(5*F),l=y>>>13,y&=8191,y+=j*(5*Y),y+=x*(5*N),y+=R*(5*L),y+=S*(5*D),y+=U*(5*I),l+=y>>>13,y&=8191,b=l,b+=O*I,b+=A*B,b+=k*M,b+=P*C,b+=T*(5*K),l=b>>>13,b&=8191,b+=j*(5*F),b+=x*(5*Y),b+=R*(5*N),b+=S*(5*L),b+=U*(5*D),l+=b>>>13,b&=8191,g=l,g+=O*D,g+=A*I,g+=k*B,g+=P*M,g+=T*C,l=g>>>13,g&=8191,g+=j*(5*K),g+=x*(5*F),g+=R*(5*Y),g+=S*(5*N),g+=U*(5*L),l+=g>>>13,g&=8191,d=l,d+=O*L,d+=A*D,d+=k*I,d+=P*B,d+=T*M,l=d>>>13,d&=8191,d+=j*C,d+=x*(5*K),d+=R*(5*F),d+=S*(5*Y),d+=U*(5*N),l+=d>>>13,d&=8191,v=l,v+=O*N,v+=A*L,v+=k*D,v+=P*I,v+=T*B,l=v>>>13,v&=8191,v+=j*M,v+=x*C,v+=R*(5*K),v+=S*(5*F),v+=U*(5*Y),l+=v>>>13,v&=8191,w=l,w+=O*Y,w+=A*N,w+=k*L,w+=P*D,w+=T*I,l=w>>>13,w&=8191,w+=j*B,w+=x*M,w+=R*C,w+=S*(5*K),w+=U*(5*F),l+=w>>>13,w&=8191,m=l,m+=O*F,m+=A*Y,m+=k*N,m+=P*L,m+=T*D,l=m>>>13,m&=8191,m+=j*I,m+=x*B,m+=R*M,m+=S*C,m+=U*(5*K),l+=m>>>13,m&=8191,E=l,E+=O*K,E+=A*F,E+=k*Y,E+=P*N,E+=T*L,l=E>>>13,E&=8191,E+=j*D,E+=x*I,E+=R*B,E+=S*M,E+=U*C,l+=E>>>13,E&=8191,l=(l<<2)+l|0,l=l+h|0,h=8191&l,l>>>=13,p+=l,O=h,A=p,k=y,P=b,T=g,j=d,x=v,R=w,S=m,U=E,e+=16,r-=16;this.h[0]=O,this.h[1]=A,this.h[2]=k,this.h[3]=P,this.h[4]=T,this.h[5]=j,this.h[6]=x,this.h[7]=R,this.h[8]=S,this.h[9]=U},pt.prototype.finish=function(t,e){var r,n,o,i,u=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;i<16;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(r=this.h[1]>>>13,this.h[1]&=8191,i=2;i<10;i++)this.h[i]+=r,r=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*r,r=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=r,r=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=r,u[0]=this.h[0]+5,r=u[0]>>>13,u[0]&=8191,i=1;i<10;i++)u[i]=this.h[i]+r,r=u[i]>>>13,u[i]&=8191;for(u[9]-=8192,n=(1^r)-1,i=0;i<10;i++)u[i]&=n;for(n=~n,i=0;i<10;i++)this.h[i]=this.h[i]&n|u[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,i=1;i<8;i++)o=(this.h[i]+this.pad[i]|0)+(o>>>16)|0,this.h[i]=65535&o;t[e+0]=this.h[0]>>>0&255,t[e+1]=this.h[0]>>>8&255,t[e+2]=this.h[1]>>>0&255,t[e+3]=this.h[1]>>>8&255,t[e+4]=this.h[2]>>>0&255,t[e+5]=this.h[2]>>>8&255,t[e+6]=this.h[3]>>>0&255,t[e+7]=this.h[3]>>>8&255,t[e+8]=this.h[4]>>>0&255,t[e+9]=this.h[4]>>>8&255,t[e+10]=this.h[5]>>>0&255,t[e+11]=this.h[5]>>>8&255,t[e+12]=this.h[6]>>>0&255,t[e+13]=this.h[6]>>>8&255,t[e+14]=this.h[7]>>>0&255,t[e+15]=this.h[7]>>>8&255},pt.prototype.update=function(t,e,r){var n,o;if(this.leftover){for(o=16-this.leftover,o>r&&(o=r),n=0;n=16&&(o=r-r%16,this.blocks(t,e,o),e+=o,r-=o),r){for(n=0;n=0},t.sign.keyPair=function(){var t=new Uint8Array(32),e=new Uint8Array(64);return H(t,e),{publicKey:t,secretKey:e}},t.sign.keyPair.fromSecretKey=function(t){if(W(t),64!==t.length)throw new Error("bad secret key size");for(var e=new Uint8Array(32),r=0;r=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|t}function b(t){return+t!=t&&(t=0),i.alloc(+t)}function g(t,e){if(i.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return H(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return J(t).length;default:if(n)return H(t).length;e=(""+e).toLowerCase(),n=!0}}function d(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return U(this,e,r);case"utf8":case"utf-8":return j(this,e,r);case"ascii":return R(this,e,r);case"latin1":case"binary":return S(this,e,r);case"base64":return T(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function w(t,e,r,n,o){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(o)return-1;r=t.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof e&&(e=i.from(e,n)),i.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,o);if("number"==typeof e)return e&=255,i.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,o);throw new TypeError("val must be string, number or Buffer")}function m(t,e,r,n,o){function i(t,e){return 1===u?t[e]:t.readUInt16BE(e*u)}var u=1,a=t.length,s=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;u=2,a/=2,s/=2,r/=2}var c;if(o){var f=-1;for(c=r;ca&&(r=a-s),c=r;c>=0;c--){for(var l=!0,h=0;ho&&(n=o):n=o;var i=e.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var u=0;u239?4:i>223?3:i>191?2:1;if(o+a<=r){var s,c,f,l;switch(a){case 1:i<128&&(u=i);break;case 2:128==(192&(s=t[o+1]))&&(l=(31&i)<<6|63&s)>127&&(u=l);break;case 3:s=t[o+1],c=t[o+2],128==(192&s)&&128==(192&c)&&(l=(15&i)<<12|(63&s)<<6|63&c)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:s=t[o+1],c=t[o+2],f=t[o+3],128==(192&s)&&128==(192&c)&&128==(192&f)&&(l=(15&i)<<18|(63&s)<<12|(63&c)<<6|63&f)>65535&&l<1114112&&(u=l)}}null===u?(u=65533,a=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),o+=a}return x(n)}function x(t){var e=t.length;if(e<=Q)return String.fromCharCode.apply(String,t);for(var r="",n=0;nn)&&(r=n);for(var o="",i=e;ir)throw new RangeError("Trying to access beyond buffer length")}function B(t,e,r,n,o,u){if(!i.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>o||et.length)throw new RangeError("Index out of range")}function I(t,e,r,n){e<0&&(e=65535+e+1);for(var o=0,i=Math.min(t.length-r,2);o>>8*(n?o:1-o)}function D(t,e,r,n){e<0&&(e=4294967295+e+1);for(var o=0,i=Math.min(t.length-r,4);o>>8*(n?o:3-o)&255}function L(t,e,r,n,o,i){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function N(t,e,r,n,o){return o||L(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),q.write(t,e,r,n,23,4),r+4}function Y(t,e,r,n,o){return o||L(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),q.write(t,e,r,n,52,8),r+8}function F(t){if(t=K(t).replace(tt,""),t.length<2)return"";for(;t.length%4!=0;)t+="=";return t}function K(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function z(t){return t<16?"0"+t.toString(16):t.toString(16)}function H(t,e){e=e||1/0;for(var r,n=t.length,o=null,i=[],u=0;u55295&&r<57344){if(!o){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(u+1===n){(e-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function G(t){for(var e=[],r=0;r>8,o=r%256,i.push(o),i.push(n);return i}function J(t){return V.toByteArray(F(t))}function $(t,e,r,n){for(var o=0;o=e.length||o>=t.length);++o)e[o+r]=t[o];return o}function X(t){return t!==t}var V=r(93),q=r(94),W=r(95);e.Buffer=i,e.SlowBuffer=b,e.INSPECT_MAX_BYTES=50,i.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}(),e.kMaxLength=n(),i.poolSize=8192,i._augment=function(t){return t.__proto__=i.prototype,t},i.from=function(t,e,r){return u(null,t,e,r)},i.TYPED_ARRAY_SUPPORT&&(i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0})),i.alloc=function(t,e,r){return s(null,t,e,r)},i.allocUnsafe=function(t){return c(null,t)},i.allocUnsafeSlow=function(t){return c(null,t)},i.isBuffer=function(t){return!(null==t||!t._isBuffer)},i.compare=function(t,e){if(!i.isBuffer(t)||!i.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,n=e.length,o=0,u=Math.min(r,n);o0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},i.prototype.compare=function(t,e,r,n,o){if(!i.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),e<0||r>t.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&e>=r)return 0;if(n>=o)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,o>>>=0,this===t)return 0;for(var u=o-n,a=r-e,s=Math.min(u,a),c=this.slice(n,o),f=t.slice(e,r),l=0;lo)&&(r=o),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return E(this,t,e,r);case"utf8":case"utf-8":return _(this,t,e,r);case"ascii":return O(this,t,e,r);case"latin1":case"binary":return A(this,t,e,r);case"base64":return k(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,e,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Q=4096;i.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r)<0&&(t=0):t>r&&(t=r),e<0?(e+=r)<0&&(e=0):e>r&&(e=r),e0&&(o*=256);)n+=this[t+--e]*o;return n},i.prototype.readUInt8=function(t,e){return e||M(t,1,this.length),this[t]},i.prototype.readUInt16LE=function(t,e){return e||M(t,2,this.length),this[t]|this[t+1]<<8},i.prototype.readUInt16BE=function(t,e){return e||M(t,2,this.length),this[t]<<8|this[t+1]},i.prototype.readUInt32LE=function(t,e){return e||M(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},i.prototype.readUInt32BE=function(t,e){return e||M(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},i.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||M(t,e,this.length);for(var n=this[t],o=1,i=0;++i=o&&(n-=Math.pow(2,8*e)),n},i.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||M(t,e,this.length);for(var n=e,o=1,i=this[t+--n];n>0&&(o*=256);)i+=this[t+--n]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*e)),i},i.prototype.readInt8=function(t,e){return e||M(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},i.prototype.readInt16LE=function(t,e){e||M(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt16BE=function(t,e){e||M(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt32LE=function(t,e){return e||M(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},i.prototype.readInt32BE=function(t,e){return e||M(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},i.prototype.readFloatLE=function(t,e){return e||M(t,4,this.length),q.read(this,t,!0,23,4)},i.prototype.readFloatBE=function(t,e){return e||M(t,4,this.length),q.read(this,t,!1,23,4)},i.prototype.readDoubleLE=function(t,e){return e||M(t,8,this.length),q.read(this,t,!0,52,8)},i.prototype.readDoubleBE=function(t,e){return e||M(t,8,this.length),q.read(this,t,!1,52,8)},i.prototype.writeUIntLE=function(t,e,r,n){t=+t,e|=0,r|=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[e]=255&t;++i=0&&(i*=256);)this[e+o]=t/i&255;return e+r},i.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,1,255,0),i.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},i.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):I(this,t,e,!0),e+2},i.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):I(this,t,e,!1),e+2},i.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):D(this,t,e,!0),e+4},i.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):D(this,t,e,!1),e+4},i.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var o=Math.pow(2,8*r-1);B(this,t,e,r,o-1,-o)}var i=0,u=1,a=0;for(this[e]=255&t;++i>0)-a&255;return e+r},i.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var o=Math.pow(2,8*r-1);B(this,t,e,r,o-1,-o)}var i=r-1,u=1,a=0;for(this[e+i]=255&t;--i>=0&&(u*=256);)t<0&&0===a&&0!==this[e+i+1]&&(a=1),this[e+i]=(t/u>>0)-a&255;return e+r},i.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,1,127,-128),i.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},i.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):I(this,t,e,!0),e+2},i.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):I(this,t,e,!1),e+2},i.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,4,2147483647,-2147483648),i.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):D(this,t,e,!0),e+4},i.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),i.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):D(this,t,e,!1),e+4},i.prototype.writeFloatLE=function(t,e,r){return N(this,t,e,!0,r)},i.prototype.writeFloatBE=function(t,e,r){return N(this,t,e,!1,r)},i.prototype.writeDoubleLE=function(t,e,r){return Y(this,t,e,!0,r)},i.prototype.writeDoubleBE=function(t,e,r){return Y(this,t,e,!1,r)},i.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--o)t[o+e]=this[o+r];else if(u<1e3||!i.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var u;if("number"==typeof t)for(u=e;u0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function o(t){return 3*t.length/4-n(t)}function i(t){var e,r,o,i,u,a=t.length;i=n(t),u=new l(3*a/4-i),r=i>0?a-4:a;var s=0;for(e=0;e>16&255,u[s++]=o>>8&255,u[s++]=255&o;return 2===i?(o=f[t.charCodeAt(e)]<<2|f[t.charCodeAt(e+1)]>>4,u[s++]=255&o):1===i&&(o=f[t.charCodeAt(e)]<<10|f[t.charCodeAt(e+1)]<<4|f[t.charCodeAt(e+2)]>>2,u[s++]=o>>8&255,u[s++]=255&o),u}function u(t){return c[t>>18&63]+c[t>>12&63]+c[t>>6&63]+c[63&t]}function a(t,e,r){for(var n,o=[],i=e;is?s:u+16383));return 1===n?(e=t[r-1],o+=c[e>>2],o+=c[e<<4&63],o+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],o+=c[e>>10],o+=c[e>>4&63],o+=c[e<<2&63],o+="="),i.push(o),i.join("")}e.byteLength=o,e.toByteArray=i,e.fromByteArray=s;for(var c=[],f=[],l="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,y=h.length;p>1,f=-7,l=r?o-1:0,h=r?-1:1,p=t[e+l];for(l+=h,i=p&(1<<-f)-1,p>>=-f,f+=a;f>0;i=256*i+t[e+l],l+=h,f-=8);for(u=i&(1<<-f)-1,i>>=-f,f+=n;f>0;u=256*u+t[e+l],l+=h,f-=8);if(0===i)i=1-c;else{if(i===s)return u?NaN:1/0*(p?-1:1);u+=Math.pow(2,n),i-=c}return(p?-1:1)*u*Math.pow(2,i-n)},e.write=function(t,e,r,n,o,i){var u,a,s,c=8*i-o-1,f=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,y=n?1:-1,b=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,u=f):(u=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-u))<1&&(u--,s*=2),e+=u+l>=1?h/s:h*Math.pow(2,1-l),e*s>=2&&(u++,s/=2),u+l>=f?(a=0,u=f):u+l>=1?(a=(e*s-1)*Math.pow(2,o),u+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,o),u=0));o>=8;t[r+p]=255&a,p+=y,a/=256,o-=8);for(u=u<0;t[r+p]=255&u,p+=y,u/=256,c-=8);t[r+p-y]|=128*b}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}}])}); \ No newline at end of file diff --git a/www/common/media-tag.js b/www/common/media-tag.js index cb931111f..cf14ee700 100644 --- a/www/common/media-tag.js +++ b/www/common/media-tag.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function (window) { var factory = function () { var Promise = window.Promise; diff --git a/www/common/mergeDrive.js b/www/common/mergeDrive.js index b8b87d0f0..2001aa118 100644 --- a/www/common/mergeDrive.js +++ b/www/common/mergeDrive.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/cryptget.js', '/common/userObject.js', diff --git a/www/common/messenger-ui.js b/www/common/messenger-ui.js index ddc812c60..61c1a8153 100644 --- a/www/common/messenger-ui.js +++ b/www/common/messenger-ui.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/customize/messages.js', diff --git a/www/common/metadata-manager.js b/www/common/metadata-manager.js index 10dd120c0..aa925101f 100644 --- a/www/common/metadata-manager.js +++ b/www/common/metadata-manager.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(['json.sortify'], function (Sortify) { var UNINIT = 'uninitialized'; var create = function (sframeChan) { diff --git a/www/common/migrate-user-object.js b/www/common/migrate-user-object.js index 9bbbf766b..2c99c1ba4 100644 --- a/www/common/migrate-user-object.js +++ b/www/common/migrate-user-object.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/customize/application_config.js', '/common/common-feedback.js', diff --git a/www/common/modes.js b/www/common/modes.js index 38065b9af..dca0e62e8 100644 --- a/www/common/modes.js +++ b/www/common/modes.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/code/orgmode.js' ], function () { diff --git a/www/common/notifications.js b/www/common/notifications.js index a9c3ee06f..61d014c0f 100644 --- a/www/common/notifications.js +++ b/www/common/notifications.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/hyperscript.js', diff --git a/www/common/notify.js b/www/common/notify.js index 33d7f701e..d30eaedf3 100644 --- a/www/common/notify.js +++ b/www/common/notify.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(['/api/config'], function (ApiConfig) { var Module = {}; diff --git a/www/common/outer/async-store.js b/www/common/outer/async-store.js index 954ca4ba7..9bc299e7a 100644 --- a/www/common/outer/async-store.js +++ b/www/common/outer/async-store.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config', 'json.sortify', diff --git a/www/common/outer/cache-store.js b/www/common/outer/cache-store.js index a2af0a515..15b8e2d06 100644 --- a/www/common/outer/cache-store.js +++ b/www/common/outer/cache-store.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/components/localforage/dist/localforage.min.js', diff --git a/www/common/outer/calendar.js b/www/common/outer/calendar.js index e10db796f..5288bf222 100644 --- a/www/common/outer/calendar.js +++ b/www/common/outer/calendar.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/common/common-hash.js', diff --git a/www/common/outer/cursor.js b/www/common/outer/cursor.js index 9dcd3d9ab..b7ebc2d23 100644 --- a/www/common/outer/cursor.js +++ b/www/common/outer/cursor.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/common/common-constants.js', diff --git a/www/common/outer/history.js b/www/common/outer/history.js index 50d0caef2..10078f116 100644 --- a/www/common/outer/history.js +++ b/www/common/outer/history.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/common/common-hash.js', diff --git a/www/common/outer/http-command.js b/www/common/outer/http-command.js index 2f74460a7..d95fec94f 100644 --- a/www/common/outer/http-command.js +++ b/www/common/outer/http-command.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/components/nthen/index.js', '/common/common-util.js', diff --git a/www/common/outer/integration.js b/www/common/outer/integration.js index 559a5fb1a..813e77f5f 100644 --- a/www/common/outer/integration.js +++ b/www/common/outer/integration.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/common/common-constants.js', diff --git a/www/common/outer/invitation.js b/www/common/outer/invitation.js index e35149267..2d7afed22 100644 --- a/www/common/outer/invitation.js +++ b/www/common/outer/invitation.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var factory = function (Util, Cred, Nacl, Crypto) { var Invite = {}; diff --git a/www/common/outer/local-store.js b/www/common/outer/local-store.js index 845a6393a..6a2d07c40 100644 --- a/www/common/outer/local-store.js +++ b/www/common/outer/local-store.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-constants.js', '/common/common-hash.js', diff --git a/www/common/outer/login-block.js b/www/common/outer/login-block.js index 39dea3884..782753123 100644 --- a/www/common/outer/login-block.js +++ b/www/common/outer/login-block.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/api/config', diff --git a/www/common/outer/mailbox-handlers.js b/www/common/outer/mailbox-handlers.js index 7ae77ce34..50d319741 100644 --- a/www/common/outer/mailbox-handlers.js +++ b/www/common/outer/mailbox-handlers.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-messaging.js', '/common/common-hash.js', diff --git a/www/common/outer/mailbox.js b/www/common/outer/mailbox.js index 141943d9a..a336bd0ba 100644 --- a/www/common/outer/mailbox.js +++ b/www/common/outer/mailbox.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config', '/api/broadcast', diff --git a/www/common/outer/messenger.js b/www/common/outer/messenger.js index 4fb1cc146..c5bbdcbcf 100644 --- a/www/common/outer/messenger.js +++ b/www/common/outer/messenger.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/components/chainpad-crypto/crypto.js', '/common/common-hash.js', diff --git a/www/common/outer/network-config.js b/www/common/outer/network-config.js index 3d3465ffe..0371577ca 100644 --- a/www/common/outer/network-config.js +++ b/www/common/outer/network-config.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config' ], function (ApiConfig) { diff --git a/www/common/outer/noworker.js b/www/common/outer/noworker.js index 0b5372750..82e8f96ff 100644 --- a/www/common/outer/noworker.js +++ b/www/common/outer/noworker.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/common/outer/worker-channel.js', diff --git a/www/common/outer/onlyoffice.js b/www/common/outer/onlyoffice.js index 60a3e412a..f0a000597 100644 --- a/www/common/outer/onlyoffice.js +++ b/www/common/outer/onlyoffice.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ ], function () { var OO = {}; diff --git a/www/common/outer/profile.js b/www/common/outer/profile.js index b03a0a4dc..83c8c2f4d 100644 --- a/www/common/outer/profile.js +++ b/www/common/outer/profile.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/common/common-hash.js', diff --git a/www/common/outer/roster.js b/www/common/outer/roster.js index 5d043d83f..38bd09b11 100644 --- a/www/common/outer/roster.js +++ b/www/common/outer/roster.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var factory = function (Util, Hash, CPNetflux, Sortify, nThen, Crypto, Feedback) { var Roster = {}; diff --git a/www/common/outer/serviceworker.js b/www/common/outer/serviceworker.js index 0db1a7929..7b2a23139 100644 --- a/www/common/outer/serviceworker.js +++ b/www/common/outer/serviceworker.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint ignore:start */ importScripts('/components/requirejs/require.js'); diff --git a/www/common/outer/sharedfolder.js b/www/common/outer/sharedfolder.js index c121b5c24..b307a2b31 100644 --- a/www/common/outer/sharedfolder.js +++ b/www/common/outer/sharedfolder.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-hash.js', '/common/common-util.js', diff --git a/www/common/outer/sharedworker.js b/www/common/outer/sharedworker.js index b155dce80..408b88fdd 100644 --- a/www/common/outer/sharedworker.js +++ b/www/common/outer/sharedworker.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint ignore:start */ importScripts('/components/requirejs/require.js'); diff --git a/www/common/outer/store-rpc.js b/www/common/outer/store-rpc.js index 62b281f64..f7df6d9e8 100644 --- a/www/common/outer/store-rpc.js +++ b/www/common/outer/store-rpc.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/outer/async-store.js' ], function (AStore) { diff --git a/www/common/outer/team.js b/www/common/outer/team.js index 935d6eb6a..79d58f0c9 100644 --- a/www/common/outer/team.js +++ b/www/common/outer/team.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/common/common-hash.js', diff --git a/www/common/outer/testworker.js b/www/common/outer/testworker.js index 383aa0c62..436a3cf5d 100644 --- a/www/common/outer/testworker.js +++ b/www/common/outer/testworker.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + if (!self.crypto && !self.msCrypto) { throw new Error("E_NOCRYPTO"); } diff --git a/www/common/outer/upload.js b/www/common/outer/upload.js index 86a4789af..07d5e9f50 100644 --- a/www/common/outer/upload.js +++ b/www/common/outer/upload.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/file/file-crypto.js', '/common/common-hash.js', diff --git a/www/common/outer/userObject.js b/www/common/outer/userObject.js index 66163d06d..72ae77681 100644 --- a/www/common/outer/userObject.js +++ b/www/common/outer/userObject.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/customize/application_config.js', '/common/common-util.js', diff --git a/www/common/outer/webworker.js b/www/common/outer/webworker.js index b7d6dcc78..114c9f59e 100644 --- a/www/common/outer/webworker.js +++ b/www/common/outer/webworker.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint ignore:start */ importScripts('/components/requirejs/require.js'); diff --git a/www/common/outer/worker-channel.js b/www/common/outer/worker-channel.js index 528488f68..584708924 100644 --- a/www/common/outer/worker-channel.js +++ b/www/common/outer/worker-channel.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // This file provides the API for the channel for talking to and from the sandbox iframe. define([ //'/common/sframe-protocol.js', diff --git a/www/common/outer/x2t.js b/www/common/outer/x2t.js index 2f60230d9..326c1a026 100644 --- a/www/common/outer/x2t.js +++ b/www/common/outer/x2t.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config', '/components/nthen/index.js', diff --git a/www/common/pinpad.js b/www/common/pinpad.js index 084b2d482..c7b6f74e2 100644 --- a/www/common/pinpad.js +++ b/www/common/pinpad.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var factory = function (Util, Rpc) { var create = function (network, proxy, _cb, Cache) { diff --git a/www/common/proxy-manager.js b/www/common/proxy-manager.js index 0aa58c5f8..7ef7332d5 100644 --- a/www/common/proxy-manager.js +++ b/www/common/proxy-manager.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/userObject.js', '/common/common-util.js', diff --git a/www/common/requireconfig.js b/www/common/requireconfig.js index 1bed6320f..48e060d41 100644 --- a/www/common/requireconfig.js +++ b/www/common/requireconfig.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/api/config' ], function (ApiConfig) { diff --git a/www/common/rpc.js b/www/common/rpc.js index 9f682ea0b..9c3ccc7cb 100644 --- a/www/common/rpc.js +++ b/www/common/rpc.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { var factory = function (Util, Nacl) { // we will send messages with a unique id for each RPC diff --git a/www/common/sframe-app-framework.js b/www/common/sframe-app-framework.js index c0c4e9106..6bf58a0aa 100644 --- a/www/common/sframe-app-framework.js +++ b/www/common/sframe-app-framework.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/components/hyper-json/hyperjson.js', diff --git a/www/common/sframe-app-outer.js b/www/common/sframe-app-outer.js index e136f5232..b1210796f 100644 --- a/www/common/sframe-app-outer.js +++ b/www/common/sframe-app-outer.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/common/sframe-boot.js b/www/common/sframe-boot.js index 1f85a290b..be5cb1b6e 100644 --- a/www/common/sframe-boot.js +++ b/www/common/sframe-boot.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Stage 0, this gets cached which means we can't change it. boot2-sframe.js is changable. // Note that this file is meant to be executed only inside of a sandbox iframe. // diff --git a/www/common/sframe-boot2.js b/www/common/sframe-boot2.js index 1b2fb7471..4df642678 100644 --- a/www/common/sframe-boot2.js +++ b/www/common/sframe-boot2.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // This is stage 1, it can be changed but you must bump the version of the project. // Note: This must only be loaded from inside of a sandbox-iframe. define([ diff --git a/www/common/sframe-chainpad-netflux-inner.js b/www/common/sframe-chainpad-netflux-inner.js index 4f3b0d602..29c82e4dd 100644 --- a/www/common/sframe-chainpad-netflux-inner.js +++ b/www/common/sframe-chainpad-netflux-inner.js @@ -1,19 +1,8 @@ -/* - * Copyright 2014 XWiki SAS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ +// Copyright 2014 XWiki SAS +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/customize/application_config.js', diff --git a/www/common/sframe-chainpad-netflux-outer.js b/www/common/sframe-chainpad-netflux-outer.js index 630815e07..7ff0287a1 100644 --- a/www/common/sframe-chainpad-netflux-outer.js +++ b/www/common/sframe-chainpad-netflux-outer.js @@ -1,19 +1,8 @@ -/* - * Copyright 2014 XWiki SAS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ +// Copyright 2014 XWiki SAS +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { var verbose = function (x) { console.log(x); }; verbose = function () {}; // comment out to enable verbose logging diff --git a/www/common/sframe-common-codemirror.js b/www/common/sframe-common-codemirror.js index 9749bc2d3..fe1be046e 100644 --- a/www/common/sframe-common-codemirror.js +++ b/www/common/sframe-common-codemirror.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/modes.js', diff --git a/www/common/sframe-common-cursor.js b/www/common/sframe-common-cursor.js index c71bc40e7..942d681d2 100644 --- a/www/common/sframe-common-cursor.js +++ b/www/common/sframe-common-cursor.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', ], function (Util) { diff --git a/www/common/sframe-common-file.js b/www/common/sframe-common-file.js index 813678c0e..48a94f007 100644 --- a/www/common/sframe-common-file.js +++ b/www/common/sframe-common-file.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/common/sframe-common-history.js b/www/common/sframe-common-history.js index 8b4a63296..1993a5a44 100644 --- a/www/common/sframe-common-history.js +++ b/www/common/sframe-common-history.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-interface.js', diff --git a/www/common/sframe-common-integration.js b/www/common/sframe-common-integration.js index d4de95527..46af8fa2c 100644 --- a/www/common/sframe-common-integration.js +++ b/www/common/sframe-common-integration.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', ], function (Util) { diff --git a/www/common/sframe-common-mailbox.js b/www/common/sframe-common-mailbox.js index 4b9fd9e85..e660b7b92 100644 --- a/www/common/sframe-common-mailbox.js +++ b/www/common/sframe-common-mailbox.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index a24cbe290..f04095693 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/common/sframe-common-title.js b/www/common/sframe-common-title.js index d1b06df73..62ceb4d1c 100644 --- a/www/common/sframe-common-title.js +++ b/www/common/sframe-common-title.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/common/sframe-common.js b/www/common/sframe-common.js index 8f56cb242..565950770 100644 --- a/www/common/sframe-common.js +++ b/www/common/sframe-common.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/common/test.js b/www/common/test.js index eb83ff09c..a418a2e1f 100644 --- a/www/common/test.js +++ b/www/common/test.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { if (window.__CRYPTPAD_TEST_OBJ_) { return window.__CRYPTPAD_TEST_OBJ_; } /* diff --git a/www/common/test.md b/www/common/test.md index 6cef29830..4d1518738 100644 --- a/www/common/test.md +++ b/www/common/test.md @@ -1 +1,7 @@ + + This is to test if we have a flakey test. diff --git a/www/common/text-cursor.js b/www/common/text-cursor.js index cd8f52213..fb0104986 100644 --- a/www/common/text-cursor.js +++ b/www/common/text-cursor.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ ], function () { var module = { exports: {} }; diff --git a/www/common/themes.js b/www/common/themes.js index 33b76b9fe..c6107af9e 100644 --- a/www/common/themes.js +++ b/www/common/themes.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(function () { return [ "3024-day 3024-day.css", diff --git a/www/common/toolbar.js b/www/common/toolbar.js index d5bffa268..b7d1118bd 100644 --- a/www/common/toolbar.js +++ b/www/common/toolbar.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/customize/application_config.js', diff --git a/www/common/translations/README.md b/www/common/translations/README.md index 58067189b..3b61e46be 100644 --- a/www/common/translations/README.md +++ b/www/common/translations/README.md @@ -1,3 +1,9 @@ + + # Adding Translations To illustrate the process of translating, this guide will make an english-pirate translation of Cryptpad. diff --git a/www/common/translations/README.md.license b/www/common/translations/README.md.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/README.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/archive/messages.bn_BD.json.license b/www/common/translations/archive/messages.bn_BD.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/archive/messages.bn_BD.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/archive/messages.te.json.license b/www/common/translations/archive/messages.te.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/archive/messages.te.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/archive/messages.uk.json.license b/www/common/translations/archive/messages.uk.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/archive/messages.uk.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.ar.json.license b/www/common/translations/messages.ar.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.ar.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.bg.json.license b/www/common/translations/messages.bg.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.bg.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.ca.json.license b/www/common/translations/messages.ca.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.ca.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.cs.json.license b/www/common/translations/messages.cs.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.cs.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.da.json.license b/www/common/translations/messages.da.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.da.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.de.json.license b/www/common/translations/messages.de.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.de.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.el.json.license b/www/common/translations/messages.el.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.el.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.es.json.license b/www/common/translations/messages.es.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.es.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.es_CU.json.license b/www/common/translations/messages.es_CU.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.es_CU.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.eu.json.license b/www/common/translations/messages.eu.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.eu.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.fa.json.license b/www/common/translations/messages.fa.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.fa.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.fi.json.license b/www/common/translations/messages.fi.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.fi.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.fr.json.license b/www/common/translations/messages.fr.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.fr.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.hi.json.license b/www/common/translations/messages.hi.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.hi.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.hu.json.license b/www/common/translations/messages.hu.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.hu.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.id.json.license b/www/common/translations/messages.id.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.id.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.it.json.license b/www/common/translations/messages.it.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.it.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.ja.json.license b/www/common/translations/messages.ja.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.ja.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.json.license b/www/common/translations/messages.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.ko.json.license b/www/common/translations/messages.ko.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.ko.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.lt.json.license b/www/common/translations/messages.lt.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.lt.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.nb.json.license b/www/common/translations/messages.nb.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.nb.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.nl.json.license b/www/common/translations/messages.nl.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.nl.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.pl.json.license b/www/common/translations/messages.pl.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.pl.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.pt-br.json.license b/www/common/translations/messages.pt-br.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.pt-br.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.pt-pt.json.license b/www/common/translations/messages.pt-pt.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.pt-pt.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.ro.json.license b/www/common/translations/messages.ro.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.ro.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.ru.json.license b/www/common/translations/messages.ru.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.ru.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.sk.json.license b/www/common/translations/messages.sk.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.sk.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.sv.json.license b/www/common/translations/messages.sv.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.sv.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.th.json.license b/www/common/translations/messages.th.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.th.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.tr.json.license b/www/common/translations/messages.tr.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.tr.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.uk.json.license b/www/common/translations/messages.uk.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.uk.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/messages.zh.json.license b/www/common/translations/messages.zh.json.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/messages.zh.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/translations/update.js b/www/common/translations/update.js index fe856922a..0c2182f6c 100644 --- a/www/common/translations/update.js +++ b/www/common/translations/update.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var fs = require("fs"); //var en = require("./messages.json"); diff --git a/www/common/translations/update.js.license b/www/common/translations/update.js.license new file mode 100644 index 000000000..ff0da3695 --- /dev/null +++ b/www/common/translations/update.js.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/www/common/userObject.js b/www/common/userObject.js index 827f5e2f3..aeb446487 100644 --- a/www/common/userObject.js +++ b/www/common/userObject.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/customize/application_config.js', '/common/common-util.js', diff --git a/www/common/visible.js b/www/common/visible.js index 61512ff59..bbb80f61b 100644 --- a/www/common/visible.js +++ b/www/common/visible.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { // Set the name of the hidden property and the change event for visibility var hidden, visibilityChange; diff --git a/www/common/wire.js b/www/common/wire.js index c30e5defb..a20e11e4f 100644 --- a/www/common/wire.js +++ b/www/common/wire.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ ], function () { diff --git a/www/contacts/app-contacts.less b/www/contacts/app-contacts.less index 4cf263f60..ea55e7126 100644 --- a/www/contacts/app-contacts.less +++ b/www/contacts/app-contacts.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/messenger.less'; @import (reference) '../../customize/src/less2/include/avatar.less'; diff --git a/www/contacts/index.html b/www/contacts/index.html index e5cef404e..c8c6384bb 100644 --- a/www/contacts/index.html +++ b/www/contacts/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/contacts/inner.html b/www/contacts/inner.html index 9a3d42352..9fb91b415 100644 --- a/www/contacts/inner.html +++ b/www/contacts/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/contacts/inner.js b/www/contacts/inner.js index 7abb480cd..5c56a1639 100644 --- a/www/contacts/inner.js +++ b/www/contacts/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/components/chainpad-crypto/crypto.js', diff --git a/www/contacts/main.js b/www/contacts/main.js index c72e51880..440227f65 100644 --- a/www/contacts/main.js +++ b/www/contacts/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/convert/app-convert.less b/www/convert/app-convert.less index 18132bc0c..0bc8bd61c 100644 --- a/www/convert/app-convert.less +++ b/www/convert/app-convert.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/sidebar-layout.less'; diff --git a/www/convert/index.html b/www/convert/index.html index bd4595c54..afde85cbd 100644 --- a/www/convert/index.html +++ b/www/convert/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/convert/inner.html b/www/convert/inner.html index a61cb6ae6..f71f49fcd 100644 --- a/www/convert/inner.html +++ b/www/convert/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/convert/inner.js b/www/convert/inner.js index d74bf0ca0..c7e01ce6c 100644 --- a/www/convert/inner.js +++ b/www/convert/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/convert/main.js b/www/convert/main.js index 8dd24ed12..70ac5665b 100644 --- a/www/convert/main.js +++ b/www/convert/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/cryptpad-api.js b/www/cryptpad-api.js index 556bd5fd6..ac07b610c 100644 --- a/www/cryptpad-api.js +++ b/www/cryptpad-api.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function () { 'use strict'; var factory = function (/*Hash*/) { diff --git a/www/debug/app-debug.less b/www/debug/app-debug.less index 9a85832f9..6d9843594 100644 --- a/www/debug/app-debug.less +++ b/www/debug/app-debug.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/tokenfield.less'; @import (reference) '../../customize/src/less2/include/framework.less'; diff --git a/www/debug/chainpad.dist.js b/www/debug/chainpad.dist.js index 3567daf61..10b343264 100644 --- a/www/debug/chainpad.dist.js +++ b/www/debug/chainpad.dist.js @@ -4,22 +4,12 @@ r.m[0] = { "json.sortify": {"c":1,"m":"dist/JSON.sortify.js"}, "Diff.js": function(module, exports, require){ /*@flow*/ -/* - * Copyright 2014 XWiki SAS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ + +// Copyright 2014 XWiki SAS +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + "use strict"; var Operation = require('./Operation'); diff --git a/www/debug/colors.js b/www/debug/colors.js index d812f4d34..b7027ef3e 100644 --- a/www/debug/colors.js +++ b/www/debug/colors.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(function () { var padZero = function (str, len) { len = len || 2; diff --git a/www/debug/index.html b/www/debug/index.html index 0468e889d..5f3b380a9 100644 --- a/www/debug/index.html +++ b/www/debug/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/debug/inner.html b/www/debug/inner.html index e0e594b6e..2169d937b 100644 --- a/www/debug/inner.html +++ b/www/debug/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/debug/inner.js b/www/debug/inner.js index d46ea0a56..ab8fdaf8e 100644 --- a/www/debug/inner.js +++ b/www/debug/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/components/chainpad-crypto/crypto.js', diff --git a/www/debug/main.js b/www/debug/main.js index f2800aa5c..7becc123c 100644 --- a/www/debug/main.js +++ b/www/debug/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/diagram/app-diagram.less b/www/diagram/app-diagram.less index b9fe4f7f0..cc4c3683d 100644 --- a/www/diagram/app-diagram.less +++ b/www/diagram/app-diagram.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + body.cp-app-diagram { @import (once) "../../customize.dist/src/less2/include/browser.less"; diff --git a/www/diagram/drawio.css b/www/diagram/drawio.css index f9ed9bcd2..e3c8e85e4 100644 --- a/www/diagram/drawio.css +++ b/www/diagram/drawio.css @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + /* The diagram editor styles should be loaded after the skin and before our overwrites. */ /* @import url("mxgraph-editor/3.7.2/styles/grapheditor.css"); diff --git a/www/diagram/export.js b/www/diagram/export.js index 0fc63bdec..1b7089559 100644 --- a/www/diagram/export.js +++ b/www/diagram/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/components/x2js/x2js.js', ], function ( diff --git a/www/diagram/index.html b/www/diagram/index.html index c2b805a9c..28856ae11 100644 --- a/www/diagram/index.html +++ b/www/diagram/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/diagram/inner.html b/www/diagram/inner.html index 088e4eadc..daacdb9eb 100644 --- a/www/diagram/inner.html +++ b/www/diagram/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/diagram/inner.js b/www/diagram/inner.js index 3b05c261e..13548e19d 100644 --- a/www/diagram/inner.js +++ b/www/diagram/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // This is the initialization loading the CryptPad libraries define([ '/common/sframe-app-framework.js', diff --git a/www/doc/export.js b/www/doc/export.js index 736778dbe..ea8d44162 100644 --- a/www/doc/export.js +++ b/www/doc/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { var module = { ext: '.docx', // default diff --git a/www/doc/index.html b/www/doc/index.html index 138a3a7e8..f023c3b7f 100644 --- a/www/doc/index.html +++ b/www/doc/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/doc/inner.html b/www/doc/inner.html index 09f4e75d8..31503a2a7 100644 --- a/www/doc/inner.html +++ b/www/doc/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/drive/app-drive.less b/www/drive/app-drive.less index 21ecb6b89..6b73a9f69 100644 --- a/www/drive/app-drive.less +++ b/www/drive/app-drive.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/drive.less'; diff --git a/www/drive/index.html b/www/drive/index.html index e5cef404e..c8c6384bb 100644 --- a/www/drive/index.html +++ b/www/drive/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/drive/inner.html b/www/drive/inner.html index 359a329ae..60fca9a4d 100644 --- a/www/drive/inner.html +++ b/www/drive/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/drive/inner.js b/www/drive/inner.js index 28dc8ef38..cbdc45851 100644 --- a/www/drive/inner.js +++ b/www/drive/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/toolbar.js', diff --git a/www/drive/main.js b/www/drive/main.js index 5200a554f..e58a52c2c 100644 --- a/www/drive/main.js +++ b/www/drive/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/drive/tests.js b/www/drive/tests.js index 1633740bc..98a920976 100644 --- a/www/drive/tests.js +++ b/www/drive/tests.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/cryptpad-common.js', '/common/userObject.js', diff --git a/www/file/app-file.less b/www/file/app-file.less index cfbf0afa3..fa20c3b14 100644 --- a/www/file/app-file.less +++ b/www/file/app-file.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/tokenfield.less'; @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/markdown.less'; diff --git a/www/file/file-crypto.js b/www/file/file-crypto.js index d60e6312e..246bf756d 100644 --- a/www/file/file-crypto.js +++ b/www/file/file-crypto.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/components/tweetnacl/nacl-fast.min.js', ], function () { diff --git a/www/file/index.html b/www/file/index.html index e5cef404e..c8c6384bb 100644 --- a/www/file/index.html +++ b/www/file/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/file/inner.html b/www/file/inner.html index 926152897..d90f034a2 100644 --- a/www/file/inner.html +++ b/www/file/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/file/inner.js b/www/file/inner.js index 00e0a2fa9..739c89e76 100644 --- a/www/file/inner.js +++ b/www/file/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/toolbar.js', diff --git a/www/file/main.js b/www/file/main.js index 0329b65a6..711f6d8c1 100644 --- a/www/file/main.js +++ b/www/file/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/form/app-form.less b/www/form/app-form.less index e4a75a2aa..38b38dfff 100644 --- a/www/form/app-form.less +++ b/www/form/app-form.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/tools.less'; @import (reference) '../../customize/src/less2/include/avatar.less'; diff --git a/www/form/condorcet.js b/www/form/condorcet.js index 71656dd47..c5e5faa1f 100644 --- a/www/form/condorcet.js +++ b/www/form/condorcet.js @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later define([], function () { var Condorcet = {}; diff --git a/www/form/export.js b/www/form/export.js index d0142704d..21a18e09b 100644 --- a/www/form/export.js +++ b/www/form/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/common-util.js', '/customize/messages.js' diff --git a/www/form/index.html b/www/form/index.html index 576a5d22b..149fe59dc 100644 --- a/www/form/index.html +++ b/www/form/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/form/inner.html b/www/form/inner.html index bc20da237..344191ee6 100644 --- a/www/form/inner.html +++ b/www/form/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/form/inner.js b/www/form/inner.js index 624ce7d50..58f90bee1 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', 'json.sortify', diff --git a/www/form/main.js b/www/form/main.js index 656de8f95..05a4536dd 100644 --- a/www/form/main.js +++ b/www/form/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/form/templates.js b/www/form/templates.js index 2aef99c24..0bc17d352 100644 --- a/www/form/templates.js +++ b/www/form/templates.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/customize/messages.js' ], function (Messages) { diff --git a/www/install/index.html b/www/install/index.html index 5e255e444..8c44e11a8 100644 --- a/www/install/index.html +++ b/www/install/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/install/main.js b/www/install/main.js index 88635588a..5304b0b20 100644 --- a/www/install/main.js +++ b/www/install/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/customize/login.js', diff --git a/www/integration/app-nextcloud.less b/www/integration/app-nextcloud.less index 6ecaf206c..2947d5887 100644 --- a/www/integration/app-nextcloud.less +++ b/www/integration/app-nextcloud.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; &.cp-app-openin { diff --git a/www/integration/index.html b/www/integration/index.html index bdb9a5588..e140b83d8 100644 --- a/www/integration/index.html +++ b/www/integration/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/integration/main.js b/www/integration/main.js index c36c6869f..126ff9727 100644 --- a/www/integration/main.js +++ b/www/integration/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/common/sframe-common-outer.js', '/common/common-hash.js', diff --git a/www/kanban/app-kanban.less b/www/kanban/app-kanban.less index 9e1a80ac5..285cb5ffa 100644 --- a/www/kanban/app-kanban.less +++ b/www/kanban/app-kanban.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../../customize/src/less2/include/browser.less"; @import (reference) "../../customize/src/less2/include/framework.less"; @import (reference) "../../customize/src/less2/include/tools.less"; diff --git a/www/kanban/export.js b/www/kanban/export.js index 694724cf4..00c1c0c3e 100644 --- a/www/kanban/export.js +++ b/www/kanban/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // This file is used when a user tries to export the entire CryptDrive. // Pads from the code app will be exported using this format instead of plain text. define([ diff --git a/www/kanban/index.html b/www/kanban/index.html index 5d99b18e3..a3a74aee0 100644 --- a/www/kanban/index.html +++ b/www/kanban/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/kanban/inner.html b/www/kanban/inner.html index f9f224530..57d9923e1 100644 --- a/www/kanban/inner.html +++ b/www/kanban/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/kanban/inner.js b/www/kanban/inner.js index ed056f371..22db72ca4 100644 --- a/www/kanban/inner.js +++ b/www/kanban/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', 'json.sortify', diff --git a/www/kanban/jkanban.js b/www/kanban/jkanban.js index 87125cd04..79747a607 100644 --- a/www/kanban/jkanban.js +++ b/www/kanban/jkanban.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function e(t, n, r) { function s(o, u) { if (!n[o]) { diff --git a/www/kanban/jkanban_cp.js b/www/kanban/jkanban_cp.js index ae2183f34..2edd1bc54 100644 --- a/www/kanban/jkanban_cp.js +++ b/www/kanban/jkanban_cp.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/customize/messages.js', diff --git a/www/login/index.html b/www/login/index.html index b46311e67..faf1f717e 100644 --- a/www/login/index.html +++ b/www/login/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/login/main.js b/www/login/main.js index fe3f9fbf4..aaf652cae 100644 --- a/www/login/main.js +++ b/www/login/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/cryptpad-common.js', diff --git a/www/logout/index.html b/www/logout/index.html index 7a5dcdc44..1f48373ec 100644 --- a/www/logout/index.html +++ b/www/logout/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/logout/main.js b/www/logout/main.js index e239451a3..f427fe589 100644 --- a/www/logout/main.js +++ b/www/logout/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ '/components/localforage/dist/localforage.min.js', '/common/outer/cache-store.js', diff --git a/www/main.js b/www/main.js index 1c015622d..47707b7c9 100644 --- a/www/main.js +++ b/www/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', ], function ($) { diff --git a/www/mediatag/index.html b/www/mediatag/index.html index 6ce167e32..bdae6a817 100644 --- a/www/mediatag/index.html +++ b/www/mediatag/index.html @@ -1,3 +1,9 @@ + + Test media-tag diff --git a/www/mediatag/main.js b/www/mediatag/main.js index 5c5b43c99..f8f0512dd 100644 --- a/www/mediatag/main.js +++ b/www/mediatag/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + require([ 'jquery', '/mediatag/media-tag.js', diff --git a/www/mediatag/media-tag.js b/www/mediatag/media-tag.js index 9ae19d3a8..0292fffde 100644 --- a/www/mediatag/media-tag.js +++ b/www/mediatag/media-tag.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function(name, definition) { if (typeof module !== 'undefined') { module.exports = definition(); } else if (typeof define === 'function' && typeof define.amd === 'object') { define(definition); } diff --git a/www/nextcloud/app-nextcloud.less b/www/nextcloud/app-nextcloud.less index 6ecaf206c..2947d5887 100644 --- a/www/nextcloud/app-nextcloud.less +++ b/www/nextcloud/app-nextcloud.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; &.cp-app-openin { diff --git a/www/nextcloud/index.html b/www/nextcloud/index.html index 5fa1ecd41..de740deab 100644 --- a/www/nextcloud/index.html +++ b/www/nextcloud/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/nextcloud/main.js b/www/nextcloud/main.js index 96042e5bf..d7c369354 100644 --- a/www/nextcloud/main.js +++ b/www/nextcloud/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + var url = 'http://localhost:3000'; define([ 'jquery', diff --git a/www/notifications/app-notifications.less b/www/notifications/app-notifications.less index 26fbf48d7..8bf0eccbe 100644 --- a/www/notifications/app-notifications.less +++ b/www/notifications/app-notifications.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/sidebar-layout.less'; @import (reference) '../../customize/src/less2/include/avatar.less'; diff --git a/www/notifications/index.html b/www/notifications/index.html index e5cef404e..c8c6384bb 100644 --- a/www/notifications/index.html +++ b/www/notifications/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/notifications/inner.html b/www/notifications/inner.html index 4c538a152..8ea42cd7d 100644 --- a/www/notifications/inner.html +++ b/www/notifications/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/notifications/inner.js b/www/notifications/inner.js index 965f706a5..929de3781 100644 --- a/www/notifications/inner.js +++ b/www/notifications/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/notifications/main.js b/www/notifications/main.js index 0b9936a8d..0405e0792 100644 --- a/www/notifications/main.js +++ b/www/notifications/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/pad/app-pad.less b/www/pad/app-pad.less index ffa417143..9059a1c31 100644 --- a/www/pad/app-pad.less +++ b/www/pad/app-pad.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../../customize/src/less2/include/framework.less"; @import (reference) "../../customize/src/less2/include/comments.less"; @import (reference) "../../customize/src/less2/include/tools.less"; diff --git a/www/pad/ckeditor-inner.html b/www/pad/ckeditor-inner.html index d052e99e0..28953e65b 100644 --- a/www/pad/ckeditor-inner.html +++ b/www/pad/ckeditor-inner.html @@ -1,3 +1,9 @@ + + Rich Text Editor, editor1


diff --git a/www/pad/comment.js b/www/pad/comment.js index 5e875c569..490729e9a 100644 --- a/www/pad/comment.js +++ b/www/pad/comment.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + (function() { var CKEDITOR = window.CKEDITOR; diff --git a/www/pad/comments.js b/www/pad/comments.js index edfb40957..4e1eaf4bc 100644 --- a/www/pad/comments.js +++ b/www/pad/comments.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', 'json.sortify', diff --git a/www/pad/csp.js b/www/pad/csp.js index 39cf032f0..31eaa861f 100644 --- a/www/pad/csp.js +++ b/www/pad/csp.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(['jquery'], function ($) { var CKEDITOR = window.CKEDITOR; diff --git a/www/pad/cursor.js b/www/pad/cursor.js index 6d8b5b7ac..53717b4f5 100644 --- a/www/pad/cursor.js +++ b/www/pad/cursor.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-ui-elements.js', diff --git a/www/pad/disable-base64.js b/www/pad/disable-base64.js index c917a1c57..15b957068 100644 --- a/www/pad/disable-base64.js +++ b/www/pad/disable-base64.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + ( function() { CKEDITOR.plugins.add('blockbase64', { init: function (editor) { diff --git a/www/pad/export.js b/www/pad/export.js index f627c752b..6e9de71c1 100644 --- a/www/pad/export.js +++ b/www/pad/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-util.js', diff --git a/www/pad/index.html b/www/pad/index.html index 5a77160c4..32b38b781 100644 --- a/www/pad/index.html +++ b/www/pad/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/pad/inner.html b/www/pad/inner.html index 7cf5e083f..f110003a1 100644 --- a/www/pad/inner.html +++ b/www/pad/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/pad/inner.js b/www/pad/inner.js index 39216c281..4e3cdd97b 100644 --- a/www/pad/inner.js +++ b/www/pad/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + require(['/api/config'], function(ApiConfig) { // see ckeditor_base.js getUrl() window.CKEDITOR_GETURL = function(resource) { diff --git a/www/pad/links.js b/www/pad/links.js index 93ca05c4b..9aa5dea8b 100644 --- a/www/pad/links.js +++ b/www/pad/links.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/hyperscript.js', diff --git a/www/pad/mediatag-plugin-dialog.js b/www/pad/mediatag-plugin-dialog.js index 44503af9b..b4b82bbf8 100644 --- a/www/pad/mediatag-plugin-dialog.js +++ b/www/pad/mediatag-plugin-dialog.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + CKEDITOR.dialog.add('mediatag', function (editor) { var Messages = CKEDITOR._mediatagTranslations; var isReadOnly = function (el) { diff --git a/www/pad/mediatag-plugin.js b/www/pad/mediatag-plugin.js index 22a732748..b83c55a2a 100644 --- a/www/pad/mediatag-plugin.js +++ b/www/pad/mediatag-plugin.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + ( function() { CKEDITOR.plugins.add( 'mediatag', { diff --git a/www/poll/app-poll.less b/www/poll/app-poll.less index 6a48362f3..b1e054409 100644 --- a/www/poll/app-poll.less +++ b/www/poll/app-poll.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/tools.less'; @import (reference) '../../customize/src/less2/include/avatar.less'; @import (reference) "../../customize/src/less2/include/framework.less"; diff --git a/www/poll/export.js b/www/poll/export.js index e080ec9b4..5e3c87f36 100644 --- a/www/poll/export.js +++ b/www/poll/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // This file is used when a user tries to export the entire CryptDrive. // Pads from the code app will be exported using this format instead of plain text. define([ diff --git a/www/poll/index.html b/www/poll/index.html index fccac63d2..b46dd681e 100644 --- a/www/poll/index.html +++ b/www/poll/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/poll/inner.html b/www/poll/inner.html index e31713e7d..1cf8dbfc3 100644 --- a/www/poll/inner.html +++ b/www/poll/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/poll/inner.js b/www/poll/inner.js index 2f1835925..ab900f716 100644 --- a/www/poll/inner.js +++ b/www/poll/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/toolbar.js', diff --git a/www/poll/main.js b/www/poll/main.js index d3ca86ed9..682a04249 100644 --- a/www/poll/main.js +++ b/www/poll/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/poll/render.js b/www/poll/render.js index 679c9df26..9850f4bf6 100644 --- a/www/poll/render.js +++ b/www/poll/render.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/components/hyper-json/hyperjson.js', diff --git a/www/presentation/export.js b/www/presentation/export.js index b0bfbaacc..f6d9ff778 100644 --- a/www/presentation/export.js +++ b/www/presentation/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { var module = { ext: '.pptx', // default diff --git a/www/presentation/index.html b/www/presentation/index.html index 907b072c0..b2c18e625 100644 --- a/www/presentation/index.html +++ b/www/presentation/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/presentation/inner.html b/www/presentation/inner.html index 81a787e39..5ae197903 100644 --- a/www/presentation/inner.html +++ b/www/presentation/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/profile/app-profile.less b/www/profile/app-profile.less index 128510de6..924102787 100644 --- a/www/profile/app-profile.less +++ b/www/profile/app-profile.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/sidebar-layout.less'; diff --git a/www/profile/index.html b/www/profile/index.html index e5cef404e..c8c6384bb 100644 --- a/www/profile/index.html +++ b/www/profile/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/profile/inner.html b/www/profile/inner.html index a8f1196ec..0d65dfa6a 100644 --- a/www/profile/inner.html +++ b/www/profile/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/profile/inner.js b/www/profile/inner.js index 3336f6eb2..6f1d8d8e4 100644 --- a/www/profile/inner.js +++ b/www/profile/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/components/chainpad-crypto/crypto.js', diff --git a/www/profile/main.js b/www/profile/main.js index 3b011874b..ca36121c5 100644 --- a/www/profile/main.js +++ b/www/profile/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/recovery/index.html b/www/recovery/index.html index 5e255e444..8c44e11a8 100644 --- a/www/recovery/index.html +++ b/www/recovery/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/recovery/main.js b/www/recovery/main.js index 89ee3733f..af4b7aa49 100644 --- a/www/recovery/main.js +++ b/www/recovery/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', 'json.sortify', diff --git a/www/register/index.html b/www/register/index.html index b46311e67..faf1f717e 100644 --- a/www/register/index.html +++ b/www/register/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/register/main.js b/www/register/main.js index 9420ff8ad..7751b4f70 100644 --- a/www/register/main.js +++ b/www/register/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/customize/login.js', diff --git a/www/report/index.html b/www/report/index.html index dae6bd3c6..eb0831a7a 100644 --- a/www/report/index.html +++ b/www/report/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/report/main.js b/www/report/main.js index b9baa5e9a..792909d14 100644 --- a/www/report/main.js +++ b/www/report/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/secureiframe/app-secure.less b/www/secureiframe/app-secure.less index 3b7a76a1a..917466543 100644 --- a/www/secureiframe/app-secure.less +++ b/www/secureiframe/app-secure.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/colortheme-all.less'; @import (reference) '../../customize/src/less2/include/modal.less'; @import (reference) '../../customize/src/less2/include/icon-colors.less'; diff --git a/www/secureiframe/inner.html b/www/secureiframe/inner.html index b971f519b..c7852afcc 100644 --- a/www/secureiframe/inner.html +++ b/www/secureiframe/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/secureiframe/inner.js b/www/secureiframe/inner.js index a93fc5e26..14c393b4b 100644 --- a/www/secureiframe/inner.js +++ b/www/secureiframe/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/components/chainpad-crypto/crypto.js', diff --git a/www/secureiframe/main.js b/www/secureiframe/main.js index 63197653c..bbada15f8 100644 --- a/www/secureiframe/main.js +++ b/www/secureiframe/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/settings/app-settings.less b/www/settings/app-settings.less index 70e2e909b..4b89b1c74 100644 --- a/www/settings/app-settings.less +++ b/www/settings/app-settings.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/sidebar-layout.less'; @import (reference) "../../customize/src/less2/include/limit-bar.less"; @import (reference) "../../customize/src/less2/include/creation.less"; diff --git a/www/settings/index.html b/www/settings/index.html index e5cef404e..c8c6384bb 100644 --- a/www/settings/index.html +++ b/www/settings/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/settings/inner.html b/www/settings/inner.html index a8c1929ad..08b194450 100644 --- a/www/settings/inner.html +++ b/www/settings/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/settings/inner.js b/www/settings/inner.js index 9b304a2dd..40f14d281 100644 --- a/www/settings/inner.js +++ b/www/settings/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/toolbar.js', diff --git a/www/settings/main.js b/www/settings/main.js index 371c4f899..a689cedf9 100644 --- a/www/settings/main.js +++ b/www/settings/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/sheet/export.js b/www/sheet/export.js index 3d23be19c..66a882c57 100644 --- a/www/sheet/export.js +++ b/www/sheet/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { var module = { ext: '.xlsx', // default diff --git a/www/sheet/index.html b/www/sheet/index.html index c77cb7e25..0ca298c1a 100644 --- a/www/sheet/index.html +++ b/www/sheet/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/sheet/inner.html b/www/sheet/inner.html index 7649d7fb2..4234cd8a9 100644 --- a/www/sheet/inner.html +++ b/www/sheet/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/slide/app-slide.less b/www/slide/app-slide.less index 1c246f8b3..6e37fa810 100644 --- a/www/slide/app-slide.less +++ b/www/slide/app-slide.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../../customize/src/less2/include/markdown.less"; @import (reference) "../../customize/src/less2/include/mediatag.less"; @import (reference) "../../customize/src/less2/include/framework.less"; diff --git a/www/slide/export.js b/www/slide/export.js index 4e76f041d..27919fa5d 100644 --- a/www/slide/export.js +++ b/www/slide/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // This file is used when a user tries to export the entire CryptDrive. // Pads from the slide app will be exported using this format instead of plain text. define([ diff --git a/www/slide/index.html b/www/slide/index.html index c57d58856..9a852b417 100644 --- a/www/slide/index.html +++ b/www/slide/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/slide/inner.html b/www/slide/inner.html index 48bd35999..ea63f5129 100644 --- a/www/slide/inner.html +++ b/www/slide/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/slide/inner.js b/www/slide/inner.js index 0b8476651..fb1b51866 100644 --- a/www/slide/inner.js +++ b/www/slide/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', 'json.sortify', diff --git a/www/slide/slide.js b/www/slide/slide.js index 66182049c..5937dd687 100644 --- a/www/slide/slide.js +++ b/www/slide/slide.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/diffMarked.js', diff --git a/www/support/app-support.less b/www/support/app-support.less index 67c76aa8d..8e7157769 100644 --- a/www/support/app-support.less +++ b/www/support/app-support.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/sidebar-layout.less'; @import (reference) '../../customize/src/less2/include/support.less'; diff --git a/www/support/index.html b/www/support/index.html index e5cef404e..c8c6384bb 100644 --- a/www/support/index.html +++ b/www/support/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/support/inner.html b/www/support/inner.html index ddb727e93..f58d85b6b 100644 --- a/www/support/inner.html +++ b/www/support/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/support/inner.js b/www/support/inner.js index c7a70000e..366881f78 100644 --- a/www/support/inner.js +++ b/www/support/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/toolbar.js', diff --git a/www/support/main.js b/www/support/main.js index 79c876020..b8cb8c942 100644 --- a/www/support/main.js +++ b/www/support/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/support/ui.js b/www/support/ui.js index 200369a95..35cc0068f 100644 --- a/www/support/ui.js +++ b/www/support/ui.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/api/config', diff --git a/www/teams/app-team.less b/www/teams/app-team.less index 015dde63f..bdfaf50b1 100644 --- a/www/teams/app-team.less +++ b/www/teams/app-team.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; @import (reference) '../../customize/src/less2/include/drive.less'; @import (reference) '../../customize/src/less2/include/messenger.less'; diff --git a/www/teams/index.html b/www/teams/index.html index 23dd10546..37bc98587 100644 --- a/www/teams/index.html +++ b/www/teams/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/teams/inner.html b/www/teams/inner.html index 9c0a5e151..847be2948 100644 --- a/www/teams/inner.html +++ b/www/teams/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/teams/inner.js b/www/teams/inner.js index 80cad3bd6..e01454f09 100644 --- a/www/teams/inner.js +++ b/www/teams/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/toolbar.js', diff --git a/www/teams/main.js b/www/teams/main.js index 6eca979a7..a7775262e 100644 --- a/www/teams/main.js +++ b/www/teams/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/todo/app-todo.less b/www/todo/app-todo.less index bd43e5e67..db82a0a82 100644 --- a/www/todo/app-todo.less +++ b/www/todo/app-todo.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/framework.less'; &.cp-app-todo { diff --git a/www/todo/index.html b/www/todo/index.html index bd4595c54..afde85cbd 100644 --- a/www/todo/index.html +++ b/www/todo/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/todo/inner.html b/www/todo/inner.html index 208a46e3a..e732a8453 100644 --- a/www/todo/inner.html +++ b/www/todo/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/todo/inner.js b/www/todo/inner.js index 40e0c4f40..239d5607b 100644 --- a/www/todo/inner.js +++ b/www/todo/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/components/chainpad-crypto/crypto.js', diff --git a/www/todo/main.js b/www/todo/main.js index e607cb633..e39c70cb0 100644 --- a/www/todo/main.js +++ b/www/todo/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([], function () { window.location.href = '/drive/'; }); diff --git a/www/todo/todo.js b/www/todo/todo.js index 8727180c8..a579d0b21 100644 --- a/www/todo/todo.js +++ b/www/todo/todo.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ ], function () { diff --git a/www/unsafeiframe/inner.html b/www/unsafeiframe/inner.html index e65edfc99..0de831285 100644 --- a/www/unsafeiframe/inner.html +++ b/www/unsafeiframe/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/unsafeiframe/inner.js b/www/unsafeiframe/inner.js index 9c4ccfb6f..d8c841bdf 100644 --- a/www/unsafeiframe/inner.js +++ b/www/unsafeiframe/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/components/chainpad-crypto/crypto.js', diff --git a/www/unsafeiframe/main.js b/www/unsafeiframe/main.js index e796be029..0965b9c85 100644 --- a/www/unsafeiframe/main.js +++ b/www/unsafeiframe/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/whiteboard/app-whiteboard.less b/www/whiteboard/app-whiteboard.less index cdb7f618d..45bfe1e85 100644 --- a/www/whiteboard/app-whiteboard.less +++ b/www/whiteboard/app-whiteboard.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) '../../customize/src/less2/include/tools.less'; @import (reference) "../../customize/src/less2/include/framework.less"; diff --git a/www/whiteboard/colors.js b/www/whiteboard/colors.js index d812f4d34..b7027ef3e 100644 --- a/www/whiteboard/colors.js +++ b/www/whiteboard/colors.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(function () { var padZero = function (str, len) { len = len || 2; diff --git a/www/whiteboard/export.js b/www/whiteboard/export.js index 1a96cf799..5ba3b9baf 100644 --- a/www/whiteboard/export.js +++ b/www/whiteboard/export.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // This file is used when a user tries to export the entire CryptDrive. // Pads from the code app will be exported using this format instead of plain text. define([ diff --git a/www/whiteboard/index.html b/www/whiteboard/index.html index 3a4ea4b9c..1515dab8a 100644 --- a/www/whiteboard/index.html +++ b/www/whiteboard/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/whiteboard/inner.html b/www/whiteboard/inner.html index f20ebfa8a..d42be707b 100644 --- a/www/whiteboard/inner.html +++ b/www/whiteboard/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/whiteboard/inner.js b/www/whiteboard/inner.js index e3ba36ed9..f8b19efa2 100644 --- a/www/whiteboard/inner.js +++ b/www/whiteboard/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', 'json.sortify', diff --git a/www/worker/app-worker.less b/www/worker/app-worker.less index f9cc81b4f..3e957ed6e 100644 --- a/www/worker/app-worker.less +++ b/www/worker/app-worker.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../../customize/src/less2/include/colortheme-all.less"; @import (reference) '../../customize/src/less2/include/framework.less'; diff --git a/www/worker/index.html b/www/worker/index.html index b92268b9d..35a66eb52 100644 --- a/www/worker/index.html +++ b/www/worker/index.html @@ -1,3 +1,9 @@ + + diff --git a/www/worker/inner.html b/www/worker/inner.html index ea843a8b9..a1cd297cc 100644 --- a/www/worker/inner.html +++ b/www/worker/inner.html @@ -1,3 +1,9 @@ + + diff --git a/www/worker/inner.js b/www/worker/inner.js index 89bf1a4ce..253986511 100644 --- a/www/worker/inner.js +++ b/www/worker/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/toolbar.js', diff --git a/www/worker/main.js b/www/worker/main.js index 97fb5e657..13f52ec6a 100644 --- a/www/worker/main.js +++ b/www/worker/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/worker/messages.js b/www/worker/messages.js index 244d2597e..680ab16cb 100644 --- a/www/worker/messages.js +++ b/www/worker/messages.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(function () { var out = {}; diff --git a/www/worker/sw.js b/www/worker/sw.js index 4daebc47f..996acc75c 100644 --- a/www/worker/sw.js +++ b/www/worker/sw.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint ignore:start */ var id; //= Math.floor(Math.random()*100000); diff --git a/www/worker/todo.js b/www/worker/todo.js index 07b9962cc..2bf2fddf3 100644 --- a/www/worker/todo.js +++ b/www/worker/todo.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ ], function () { diff --git a/www/worker/worker.js b/www/worker/worker.js index cee294772..47df49317 100644 --- a/www/worker/worker.js +++ b/www/worker/worker.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* jshint ignore:start */ var window = self; From eacdd7991ac9b4749863b57ba1b66590adde29aa Mon Sep 17 00:00:00 2001 From: David Benque Date: Fri, 20 Oct 2023 15:35:47 +0100 Subject: [PATCH 08/73] Remove rogue file --- www/common/translations/' | 1499 ------------------------------------- 1 file changed, 1499 deletions(-) delete mode 100644 www/common/translations/' diff --git a/www/common/translations/' b/www/common/translations/' deleted file mode 100644 index 2da454071..000000000 --- a/www/common/translations/' +++ /dev/null @@ -1,1499 +0,0 @@ -{ - "common_connectionLost": "サーバーとの接続が切断しました
再接続するまで閲覧モードになります。", - "type": { - "teams": "チーム", - "contacts": "連絡先", - "todo": "タスクリスト", - "media": "メディア", - "file": "ファイル", - "whiteboard": "ホワイトボード", - "drive": "CryptDrive", - "slide": "マークダウンスライド", - "kanban": "カンバン", - "poll": "投票", - "code": "コード", - "pad": "リッチテキスト", - "sheet": "スプレッドシート", - "form": "フォーム", - "presentation": "プレゼンテーション", - "doc": "ドキュメント" - }, - "main_title": "CryptPad - 安全にリアルタイムで編集可能なコラボレーションツール", - "support_formButton": "送信", - "support_formMessage": "メッセージを入力…", - "support_formContentError": "エラー:内容が空です", - "support_formTitleError": "エラー:件名が空です", - "support_formTitle": "新しいチケット", - "support_cat_new": "新しいチケット", - "support_answer": "返信", - "support_remove": "チケットを削除", - "support_close": "チケットを閉じる", - "notifications_cat_all": "全て", - "openNotificationsApp": "通知パネルを開く", - "notificationsPage": "通知", - "notifications_empty": "通知がありません", - "copy_title": "{0} (コピー)", - "access_main": "アクセス", - "allow_disabled": "無効", - "allow_enabled": "有効", - "logoutEverywhere": "全ての場所でログアウト", - "settings_logoutEverywhereButton": "ログアウト", - "cancelButton": "キャンセル (Esc)", - "fm_recentPadsName": "最近使用したドキュメント", - "drive_active28Days": "最近4週間", - "drive_active7Days": "最近7日間", - "drive_active1Day": "最近24時間", - "fm_viewGridButton": "グリッド表示", - "fm_viewListButton": "一覧表示", - "fc_open": "開く", - "fc_newsharedfolder": "新しい共有フォルダ", - "fc_newfolder": "新しいフォルダ", - "fm_tags_name": "タグ名", - "fm_prop_tagsList": "タグ", - "fm_numberOfFiles": "ファイル数", - "fm_numberOfFolders": "フォルダ数", - "fm_folder": "フォルダ", - "fm_folderName": "フォルダ名", - "fm_fileName": "ファイル名", - "crowdfunding_button2": "寄付", - "fm_padIsOwned": "あなたはこのドキュメントの所有者です", - "creation_expiration": "有効期限を設定", - "owner_removeText": "オーナー", - "creation_owners": "オーナー", - "download_mt_button": "ダウンロード", - "fc_rename": "名前を変更", - "forgotten": "ごみ箱へ移動しました", - "filePicker_close": "閉じる", - "upload_size": "容量", - "propertiesButton": "プロパティ", - "fm_creation": "作成日時", - "fm_lastAccess": "最終アクセス日時", - "fm_type": "種類", - "team_inviteLinkLoading": "リンクを生成しています", - "download_step1": "ダウンロード中", - "loading": "読み込み中...", - "fm_searchPlaceholder": "検索...", - "fm_searchName": "検索", - "fm_templateName": "テンプレート", - "fc_empty": "ごみ箱を空にする", - "fm_emptyTrashDialog": "ごみ箱を空にしてよろしいですか?", - "fm_trashName": "ごみ箱", - "settings_trimHistoryTitle": "履歴の削除", - "trimHistory_success": "履歴を削除しました", - "trimHistory_button": "履歴を削除", - "storageStatus": "ストレージ使用量:
{1} の内 {0}", - "formattedKB": "{0} KB", - "formattedGB": "{0} GB", - "formattedMB": "{0} MB", - "KB": "KB", - "GB": "GB", - "MB": "MB", - "upgradeAccount": "アカウントをアップグレード", - "upgrade": "アップグレード", - "settings_deleteButton": "アカウントを削除", - "settings_deleteTitle": "アカウントの削除", - "settings_changePasswordNewConfirm": "新しいパスワードの確認", - "settings_changePasswordNew": "新しいパスワード", - "settings_changePasswordCurrent": "現在のパスワード", - "settings_changePasswordButton": "パスワードを変更", - "settings_changePasswordHint": "アカウントのパスワードを変更します。「現在のパスワード」と、「新しいパスワード」および「新しいパスワードの確認」を入力してください。
パスワードを忘れた場合、再設定する方法はありません。細心の注意を払って、パスワードを安全に管理してください。", - "settings_changePasswordTitle": "パスワードの変更", - "languageButton": "言語", - "language": "言語", - "settings_publicSigningKey": "公開署名鍵", - "user_accountName": "アカウント名", - "settings_restore": "復元", - "settings_backupCategory": "バックアップ", - "settings_backup": "バックアップ", - "settings_title": "設定", - "settings_cat_subscription": "定額利用", - "settings_cat_drive": "CryptDrive", - "settings_cat_account": "アカウント", - "settings_save": "保存", - "profile_viewMyProfile": "自分のプロフィールを表示", - "clickToEdit": "クリックして編集", - "profile_addLink": "あなたのウェブサイトへのリンクを追加", - "shareSuccess": "リンクをクリップボードにコピーしました", - "shareButton": "共有", - "login_hashing": "パスワードをハッシュ化しています。この処理には時間がかかる場合があります。", - "login_invalPass": "パスワードを入力してください", - "login_invalUser": "ユーザー名を入力してください", - "register_importRecent": "ゲストセッションのドキュメントをインポート", - "importButton": "インポート", - "main_catch_phrase": "コラボレーションスイート
端末間暗号化とオープンソース", - "footer_donate": "寄付", - "pricing": "料金", - "contact": "連絡先", - "privacy": "プライバシーポリシー", - "register_header": "登録", - "login_confirm": "パスワードの確認", - "login_register": "新規登録", - "login_username": "ユーザー名", - "login_password": "パスワード", - "settingsButton": "設定", - "logoutButton": "ログアウト", - "login_login": "ログイン", - "autostore_hide": "保存しない", - "autostore_store": "保存", - "autostore_notstored": "この{0}はあなたのCryptDriveに保存されていません。今すぐ保存しますか?", - "user_displayName": "表示名", - "exportButton": "エクスポート", - "user_rename": "表示名を変更", - "users": "ユーザー", - "saved": "保存済", - "error": "エラー", - "deleted": "削除しました", - "profile_editDescription": "説明文を編集", - "profile_addDescription": "説明文を追加", - "profileButton": "プロフィール", - "profile_upload": " 新しいアバターをアップロード", - "teams_table_generic_edit": "編集: フォルダとドキュメントの作成、変更、削除が可能。", - "teams_table_generic_view": "表示: フォルダとドキュメントへのアクセス(閲覧のみ)。", - "teams_table_generic_own": "チームの管理: チーム名とチームのアバターの変更、オーナーの追加または削除、チームの定額利用に関する変更、チームの削除が可能。", - "teams_table_owners": "チームの管理", - "teams_table_generic_admin": "メンバーの管理: メンバーの招待および取り消し、メンバーに管理者までの権限の付与が可能。", - "teams_table_admins": "メンバーの管理", - "teams_table_generic": "権限一覧", - "teams_table": "権限", - "contacts_fetchHistory": "古い履歴を取得", - "contacts_warning": "ここに入力した全てのメッセージは永続的であり、このドキュメントの現在および将来の全てのユーザーが確認できます。機密情報の入力には注意してください!", - "contacts_typeHere": "ここにメッセージを入力...", - "team_cat_drive": "ドライブ", - "team_cat_chat": "チャット", - "team_cat_members": "メンバー", - "team_cat_admin": "管理", - "adminPage": "管理", - "team_deleteButton": "削除", - "team_deleteHint": "チームと、チームが所有している全てのドキュメントを削除します。", - "team_deleteTitle": "チームの削除", - "team_avatarHint": "容量 500KB 以下 (png 、jpg 、jpeg 、gif)", - "team_avatarTitle": "チームのアバター", - "team_nameHint": "チームの名前を設定します", - "team_nameTitle": "チーム名", - "team_members": "メンバー", - "team_owner": "オーナー", - "team_admins": "管理者", - "viewers": "閲覧者", - "contacts_padTitle": "チャット", - "chatButton": "チャット", - "contacts_unmute": "ミュート解除", - "contacts_mute": "ミュート", - "contacts": "連絡先", - "share_linkOpen": "リンクを開く", - "share_linkView": "表示", - "view": "表示", - "settings_exportError": "エラーを表示", - "pad_mediatagPreview": "プレビュー", - "share_linkAccess": "アクセス権限", - "viewer": "閲覧者", - "reconnecting": "再接続中", - "synchronizing": "同期中", - "initializing": "初期化中...", - "anonymous": "ゲスト", - "editor": "編集者", - "typing": "編集中", - "team_infoLabel": "チームについて", - "support_cat_all": "全て", - "support_addAttachment": "添付ファイルを追加", - "support_attachments": "添付ファイル", - "support_cat_bug": "バグの報告", - "support_cat_data": "コンテンツの損失", - "support_cat_account": "ユーザーアカウント", - "support_formCategoryError": "エラー: カテゴリーが選択されていません", - "support_category": "カテゴリーを選択", - "support_languagesPreamble": "サポートチームは次の言語に対応可能です:", - "support_listHint": "管理者に送信されたチケットとその回答のリストは以下の通りです。閉じたチケットを再開することはできませんが、新しいチケットを作成することはできます。閉じたチケットは非表示にできます。", - "support_listTitle": "サポートチケット", - "settings_padNotifCheckbox": "コメント通知を無効にする", - "settings_padNotifTitle": "コメント通知", - "notifications_dismissAll": "全て確認済みにする", - "notifications_cat_archived": "履歴", - "notifications_cat_friends": "連絡先リクエスト", - "notifications_dismiss": "確認済みにする", - "settings_autostoreMaybe": "手動 (確認しない)", - "settings_autostoreNo": "手動(常に確認)", - "settings_autostoreHint": "自動 アクセスした全てのドキュメントをCryptDriveに保存します。
手動(常に確認) 保存していないドキュメントにアクセスした際、CryptDriveに保存するかどうかを確認します。
手動(確認しない) アクセス先のドキュメントはCryptDriveに自動で保存されません。保存オプションは表示されません。", - "settings_userFeedback": "ユーザーフィードバックを有効にする", - "settings_userFeedbackHint2": "あなたのドキュメントのコンテンツがサーバーと共有されることはありません。", - "settings_userFeedbackHint1": "CryptPadは、ユーザーエクスペリエンスの向上のため、いくつかの非常に基本的なフィードバックを、サーバーに提供します。 ", - "settings_userFeedbackTitle": "フィードバック", - "settings_autostoreYes": "自動", - "settings_importConfirm": "このブラウザで最近利用したドキュメントを、あなたのユーザーアカウントのCryptDriveにインポートしますか?", - "settings_importDone": "インポートが完了しました", - "settings_import": "インポート", - "settings_importTitle": "このブラウザでの最近のドキュメントをあなたのCryptDriveにインポートします", - "settings_trimHistoryHint": "ドライブと通知の履歴を削除して、ストレージ容量を節約します。これはドキュメントの履歴には影響しません。ドキュメントの履歴は、プロパティダイアログから削除できます。", - "trimHistory_currentSize": "現在の履歴容量: {0}", - "support_cat_other": "その他", - "user_about": "CryptPadについて", - "fc_delete": "ごみ箱へ移動", - "fc_remove": "削除", - "fc_restore": "復元", - "fc_delete_owned": "破棄", - "creation_create": "作成", - "creation_password": "パスワード\n", - "creation_expireMonths": "か月", - "creation_expireDays": "日", - "creation_expireHours": "時間", - "creation_expireFalse": "無制限", - "pad_wordCount": "単語数: {0}", - "teams_table_role": "権限", - "templateSaved": "テンプレートを保存しました!", - "saveTemplateButton": "テンプレートとして保存", - "fm_rootName": "ドライブ", - "team_listTitle": "あなたのチーム", - "team_createName": "チーム名", - "features_f_devices_note": "ユーザーアカウントでどこからでもCryptDriveにアクセスできます", - "features_f_devices": "全てのデバイスであなたのドキュメントを利用", - "features_f_cryptdrive1_note": "フォルダ、共有フォルダ、テンプレート、タグ", - "features_f_cryptdrive1": "CryptDriveの全機能", - "features_f_anon_note": "追加機能あり", - "features_f_anon": "ゲストユーザーの全機能", - "features_f_storage0_note": "ドキュメントは{0}日以上利用されないと削除されます", - "features_f_storage0": "一時的な保存", - "features_f_cryptdrive0_note": "アクセスしたドキュメントをブラウザに保存して、後で開くことができます", - "features_f_cryptdrive0": "CryptDriveへの限定的なアクセス", - "features_f_file0_note": "他のユーザーが共有したドキュメントを表示およびダウンロードできます", - "features_f_file0": "ドキュメントを開く", - "features_f_core_note": "編集、インポートとエクスポート、履歴、ユーザーリスト、チャット", - "features_f_core": "一般的な機能", - "features_f_apps": "全アプリケーションへのアクセス", - "features_premium": "プレミアム", - "features_registered": "登録済", - "features_title": "機能", - "features_anon": "ゲスト", - "register_whyRegister": "登録するメリットをご紹介します", - "historyText": "履歴", - "help_button": "ヘルプ", - "show_help_button": "ヘルプを表示", - "cancel": "キャンセル", - "ok": "OK", - "okButton": "OK (enter)", - "mustLogin": "このページにアクセスするにはログインする必要があります", - "fm_noResult": "見つかりませんでした", - "fm_info_trash": "ごみ箱を空にするとCryptDriveの使用可能容量を増やせます。", - "features_f_file1": "ファイルのアップロードと共有", - "features_f_social_note": "追加した連絡先との安全なコラボレーション、プロフィールの作成、きめ細かいアクセス権のコントロール", - "features_f_social": "ソーシャル機能", - "contact_chat": "チャット", - "contact_bug": "バグの報告", - "features_f_subscribe": "定額利用を申し込む", - "features_pricing": "月額 {0}€ ~ {2}€", - "features_emailRequired": "メールアドレスが必要です", - "features_f_subscribe_note": "定額利用の登録には、アカウントの登録が必要です", - "features_f_supporter": "プライバシーを支援", - "features_f_supporter_note": "CryptPadが財政的に持続可能になること、また、ユーザーが積極的に資金を提供するプライバシー強化ソフトウェアが標準でなければならないことを示す手助けをする", - "features_f_support_note": "電子メールとチケットシステムで、管理チームが優先対応", - "features_f_support": "優先的なサポート", - "features_f_storage2_note": "プランに応じて 5GB から 50GB までの追加ストレージ容量が利用でき、ファイルのアップロードの最大容量({0}MB)を増加", - "features_f_storage2": "追加のストレージ容量", - "features_f_reg_note": "追加のメリット付き", - "features_f_reg": "登録ユーザーの全機能", - "homePage": "ホームページ", - "features_noData": "登録に個人情報は必要ありません", - "features_f_register": "無料登録", - "features_f_storage1_note": "CryptDriveに保存したドキュメントは、有効期限切れで削除されることはありません", - "features_f_storage1": "個人用ストレージ({0})", - "oo_sheetMigration_complete": "新しいバージョンが利用可能です。OKを押して再読み込みしてください。", - "oo_sheetMigration_loading": "あなたのドキュメントを最新バージョンにアップグレードしています。1分程度お待ちください。", - "settings_ownDriveButton": "アカウントをアップグレード", - "features_f_file1_note": "CryptDriveに画像ファイル、PDF、動画などを保存できます。保存したファイルは、連絡先と共有したり、ドキュメントに埋め込んだりできます。(最大容量は{0}MB)", - "crowdfunding_button": "CryptPadを支援", - "contacts_removeHistoryTitle": "チャット履歴を削除", - "properties_passwordSuccessFile": "パスワードは正常に変更されました。", - "drive_sfPasswordError": "誤ったパスワードです", - "team_title": "チーム: {0}", - "password_error": "ドキュメントが存在しません!
このエラーは、誤ったパスワードが入力された場合、またはドキュメントがサーバーから破棄された場合に発生します。", - "password_error_seed": "ドキュメントが存在しません!
このエラーは「パスワードが追加・変更された」場合、または「ドキュメントがサーバーから削除された」場合に発生します。", - "password_submit": "送信", - "password_placeholder": "パスワードを入力...", - "password_info": "開こうとしているドキュメントが存在しないか、新しいパスワードで保護されています。コンテンツにアクセスするには、正しいパスワードを入力してください。", - "properties_confirmNew": "パスワードを追加すると、このドキュメントの URL が変更され、履歴が削除されます。パスワードを知らないユーザーは、このドキュメントへアクセスできなくなります。続行してよろしいですか?", - "properties_changePassword": "パスワードの変更", - "properties_addPassword": "パスワードを設定", - "history_close": "閉じる", - "history_restore": "復元", - "fm_emptyTrashOwned": "ごみ箱に、あなたの所有するドキュメントが入っています。あなたのドライブからのみ削除するか、全てのユーザーから破棄するかを選択できます。", - "access_destroyPad": "このドキュメントまたはフォルダを完全に削除する", - "accessButton": "アクセス", - "access_allow": "リスト", - "makeACopy": "コピーを作成", - "trimHistory_noHistory": "削除可能な履歴がありません", - "areYouSure": "よろしいですか?", - "settings_safeLinksCheckbox": "セーフリンクを有効にする", - "settings_safeLinksTitle": "セーフリンク", - "settings_safeLinksHint": "CryptPadでは、リンクの中にドキュメントを解読するための鍵が含まれています。ブラウザの閲覧履歴にアクセスできる人は、誰でもCryptPadのデータを閲覧することができます。ここにはデバイス間で履歴を同期するブラウザやその拡張機能も含まれます。「セーフリンク」を有効にすると、鍵がブラウザの閲覧履歴に残ったり、アドレスバーに表示されたりするのを可能な限り防ぐことができます。この機能を有効にして{0}の共有メニューから共有用リンクを使用することを強く推奨します。", - "settings_autostoreTitle": "CryptDriveへのパッドの保存", - "settings_logoutEverywhereConfirm": "全てのデバイスで改めてログインしなければならなくなります。よろしいですか?", - "settings_logoutEverywhere": "他の全てのウェブセッションからログアウト", - "settings_logoutEverywhereTitle": "リモートセッションを閉じる", - "loading_state_5": "ドキュメントを再構築", - "loading_state_4": "チームを読み込み", - "loading_state_3": "共有フォルダを読み込み", - "loading_state_2": "コンテンツを更新", - "loading_state_1": "ドライブを読み込み", - "loading_state_0": "インターフェースを構築", - "error_unhelpfulScriptError": "スクリプトエラー: ブラウザコンソールで詳細をご確認ください", - "tag_edit": "編集", - "tag_add": "追加", - "team_exportButton": "ダウンロード", - "admin_cat_quota": "ユーザーストレージ", - "admin_invalKey": "無効な公開鍵です", - "admin_limitPlan": "プラン: {0}", - "oo_version": "バージョン: ", - "snapshots_delete": "削除", - "snapshots_close": "閉じる", - "snapshots_restore": "復元", - "snapshots_open": "開く", - "snapshots_placeholder": "スナップショット名", - "snapshots_new": "新規スナップショット", - "snaphot_title": "スナップショット", - "snapshots_button": "スナップショット", - "filePicker_description": "埋め込むファイルをCryptDriveから選択するか、新規にアップロードしてください", - "uploadButtonTitle": "CryptDriveに新規ファイルをアップロード", - "uploadFolderButton": "フォルダをアップロード", - "uploadButton": "ファイルをアップロード", - "filePicker_filter": "ファイル名で検索", - "toolbar_theme": "テーマ", - "themeButton": "テーマ", - "team_cat_back": "チームに戻る", - "team_cat_list": "チーム", - "allow_checkbox": "アクセスリストを有効にする", - "allow_label": "アクセスリスト: {0}", - "share_contactCategory": "連絡先", - "share_linkCategory": "リンク", - "share_linkEdit": "編集", - "previewButtonTitle": "マークダウンのプレビューを表示または非表示にします", - "mdToolbar_tutorial": "https://www.markdowntutorial.com/jp/", - "languageButtonTitle": "シンタックスハイライトを行う言語を選択してください", - "useTemplate": "テンプレートで始めますか?", - "oo_uploaded": "アップロードが完了しました。OKをクリックしてページを再読み込みするか、キャンセルをクリックして閲覧モードを継続してください。", - "poll_descriptionHint": "投票の詳細を記入してください。入力が終了したら✓(公開)ボタンをクリックしてください。\n詳細はマークダウンの構文で記入できます。CryptDriveのメディアファイルを埋め込むこともできます。\nリンクを知っているひとは誰でも詳細を変更できますが、推奨されません。", - "pad_mediatagBorder": "枠線の幅(ピクセル)", - "openLinkInNewTab": "新しいタブでリンクを開く", - "history_restorePrompt": "ドキュメントの現在のバージョンを、表示しているバージョンに置き換えてよろしいですか?", - "slideOptionsTitle": "スライドをカスタマイズ", - "propertiesButtonTitle": "ドキュメントのプロパティを表示", - "driveOfflineError": "CryptPadへの接続が切断されています。このドキュメントに加えられる変更はCryptDriveに保存されません。CryptPadのタブを閉じて、新しいウィンドウで開いてみてください。 ", - "properties_passwordWarningFile": "パスワードは変更されましたが、新しいデータでCryptDriveを更新することができませんでした。古いバージョンのファイルを手動で削除する必要があるかもしれません。", - "properties_confirmNewFile": "よろしいですか?パスワードを追加するとファイルのURLが変わります。パスワードをもたないユーザーは、このファイルにアクセスできなくなります。", - "properties_confirmChangeFile": "よろしいですか?新しいパスワードをもたないユーザーは、このファイルにアクセスできなくなります。", - "team_quota": "あなたのチームのストレージの容量制限", - "team_pendingOwner": "(保留中)", - "fm_contextMenuError": "そのアイテムのコンテクストメニューを開けません。問題が続くなら、ページを再読み込みしてみてください。", - "fm_selectError": "そのアイテムを選択できません。問題が続くなら、ページを再読み込みしてみてください。", - "fm_unknownFolderError": "選択、もしくは最後に開いたディレクトリは存在しません。親フォルダを開きます…", - "fm_restoreDialog": "{0}を元の場所に復元してよろしいですか?", - "fm_removeSeveralPermanentlyDialog": "ドライブから{0}個のアイテムを削除してよろしいですか?他のユーザーのドライブからは削除されません。", - "fm_removePermanentlyDialog": "ドライブからこのアイテムを削除してよろしいですか?他のユーザーのドライブからは削除されません。", - "fm_noname": "無題のドキュメント", - "fm_openParent": "フォルダに表示", - "fm_newButtonTitle": "新しいドキュメントやフォルダを作成したり、ファイルを現在のフォルダにインポートしたりできます。", - "contacts_info4": "チャットの参加者は誰でも履歴を消去できます", - "contacts_info2": "連絡先のアイコンをクリックしてチャットを開始", - "contacts_confirmRemove": "{0}をあなたの連絡先から削除してよろしいですか?", - "profile_error": "プロフィールの作成時にエラーが発生しました: {0}", - "profile_uploadSizeError": "エラー: アバターは{0}より小さい必要があります", - "kanban_addBoard": "ボードを追加", - "viewShare": "読み込み専用のリンク", - "mediatag_loadButton": "添付ファイルを読み込む", - "settings_disableThumbnailsAction": "CryptDriveでのサムネイルの作成を無効にする", - "settings_resetError": "入力した確認文が正しくありません。CryptDriveのデータは消去されていません。", - "settings_resetDone": "データが消去されました!", - "settings_resetPrompt": "あなたのドライブからのドキュメントを削除します。
本当に続けてよろしいですか?
続けるには「I love CryptPad」と入力してください。", - "settings_reset": "CryptDriveの全てのファイルとフォルダを削除", - "settings_exportErrorOther": "ドキュメントのエクスポート中にエラーが発生しました: {0}", - "drive_activeOld": "以前のドキュメント", - "settings_codeSpellcheckLabel": "コードエディターでスペルチェックを有効にする", - "cba_writtenBy": "著者: {0}", - "profile_copyKey": "公開鍵をコピー", - "oo_isLocked": "変更を同期しています。お待ちください", - "kanban_editBoard": "このボードを編集", - "kanban_editCard": "このカードを編集", - "kanban_clearFilter": "フィルターを消去", - "kanban_tags": "タグでフィルタリング", - "allow_text": "アクセスリストを使用すると、選択したユーザーとオーナーだけがドキュメントにアクセスできます。", - "admin_defaultlimitTitle": "ストレージの制限(MB)", - "owner_add": "{0}があなたをドキュメント「{1}」のオーナーになるよう希望しています。 承諾しますか?", - "owner_removeConfirm": "選択したユーザーのオーナー権を削除してよろしいですか? ユーザーには通知が送られます。", - "owner_removePendingText": "保留中", - "properties_unknownUser": "{0}人の不明なユーザー", - "requestEdit_viewPad": "ドキュメントを新しいタブで開く", - "requestEdit_button": "編集権限を要求", - "support_notification": "管理人がサポートチケットに返答しました", - "support_showData": "ユーザーデータを表示/隠す", - "upload_mustLogin": "ファイルのアップロードにはログインが必要です", - "upload_choose": "ファイルを選択", - "form_page": "{0}/{1}ページ", - "form_addMultiple": "全て追加", - "admin_consentToContactLabel": "同意する", - "admin_updateAvailableButton": "リリースノートを見る", - "admin_updateAvailableHint": "CryptPadの新しいバージョンが利用可能です", - "admin_updateAvailableTitle": "新しいバージョン", - "userlist_addAsFriendTitle": "「{0}」に連絡先のリクエストを送信", - "contacts_remove": "この連絡先を削除", - "profile_register": "プロフィールの作成にはログインが必要です!", - "poll_removeOption": "このオプションを削除してよろしいですか?", - "share_linkTeam": "チームのドライブに追加", - "sharedFolders_create": "共有フォルダを作成", - "share_mediatagCopy": "Mediaタグをクリップボードにコピー", - "header_homeTitle": "CryptPadのホームページを開く", - "header_logoTitle": "CryptDriveを開く", - "settings_cursorShareTitle": "カーソルの位置を共有", - "settings_padWidthLabel": "エディターの幅を減らす", - "settings_codeIndentation": "コードエディターのインデント(空白スペース)", - "settings_export_done": "ダウンロードの準備ができました!", - "poll_create_option": "新しいオプションを追加", - "poll_create_user": "新しいユーザーを追加", - "pad_mediatagImport": "あなたのCryptDriveに保存", - "admin_listMyInstanceLabel": "このインスタンスをリストに表示", - "admin_checkupTitle": "インスタンスの設定を検証", - "cba_disable": "消去して無効にする", - "upload_pending": "保留中", - "settings_resetTips": "ヒント", - "chrome68": "バージョン68のChromeもしくはChromiumを使用しているようです。このバージョンには、数秒経過した後でページが白紙になったり、クリックにページが反応しなくなったりするバグがあります。この問題を解決するには、別のタブを表示して改めて表示するか、このページでスクロールを試みてください。このバグは次のバージョンで解決される予定となっています。", - "register_notes": "
  • ドキュメントは、パスワードによって暗号化されます。パスワードを紛失すると、データを復元することはできません。
  • 共有のコンピュータを使用している場合は、作業完了時に忘れずログアウトしてください。 ブラウザーのウインドウを閉じても、アカウントからはログアウトされません。
  • 未ログインで作成、共有したファイルを保存するには、 「ゲストセッションのドキュメントをインポート」にチェックをしてください。
", - "poll_commit": "送信", - "admin_removeDonateButtonTitle": "クラウドファンディングへの参加", - "mediatag_notReady": "ダウンロードを完了してください", - "pad_mediatagOpen": "ファイルを開く", - "pad_mediatagShare": "ファイルを共有", - "allowNotifications": "通知を許可", - "archivedFromServer": "ドキュメントがアーカイブされました", - "restoredFromServer": "ドキュメントが復元されました", - "admin_archiveInput2": "ドキュメントのパスワード", - "admin_archiveInput": "ドキュメントのURL", - "fm_deletedFolder": "削除されたフォルダ", - "history_restoreDriveDone": "CryptDriveが復元されました", - "share_bar": "リンクを作成", - "settings_kanbanTagsTitle": "タグのフィルター", - "slide_textCol": "テキストの色", - "slide_backCol": "背景色", - "code_editorTheme": "エディターのテーマ", - "unknownPad": "不明なドキュメント", - "admin_openFilesTitle": "開かれているファイル", - "kanban_conflicts": "編集中:", - "kanban_noTags": "タグがありません", - "historyTrim_historySize": "履歴: {0}", - "team_links": "招待用リンク", - "team_cat_link": "招待用リンク", - "team_inviteTitle": "チームへの招待", - "team_inviteJoin": "チームに参加", - "team_inviteLinkCopy": "リンクをコピー", - "team_inviteLinkCreate": "リンクを作成", - "contacts_mutedUsers": "ミュートしたアカウント", - "sent": "メッセージが送信されました", - "team_inviteButton": "メンバーを招待", - "requestEdit_sent": "リクエストが送信されました", - "later": "あとで決める", - "admin_supportListTitle": "メールボックスのサポート", - "friendRequest_later": "あとで決める", - "admin_flushCacheButton": "キャッシュを消去", - "admin_registeredTitle": "登録ユーザー", - "crowdfunding_popup_no": "あとで", - "sharedFolders_create_name": "フォルダ名", - "creation_newTemplate": "新しいテンプレート", - "creation_noTemplate": "空のドキュメント", - "creation_expire": "期限切れのドキュメント", - "mdToolbar_list": "箇条書き", - "uploadFolder_modal_filesPassword": "ファイルのパスワード", - "upload_title": "ファイルをアップロード", - "settings_cursorShowLabel": "カーソルを表示", - "settings_cursorColorTitle": "カーソルの色", - "settings_ownDriveTitle": "アカウントを更新", - "settings_driveDuplicateLabel": "重複したパッドを隠す", - "settings_export_compressing": "データを圧縮しています…", - "settings_cat_pad": "リッチテキスト", - "fc_collapseAll": "全て折りたたむ", - "fc_expandAll": "全て展開", - "fc_open_ro": "開く(読み取り専用)", - "fc_color": "色を変更", - "fm_passwordProtected": "パスワードで保護", - "poll_userPlaceholder": "あなたの名前", - "kanban_working": "作業中", - "kanban_newBoard": "新しいボード", - "pad_mediatagOptions": "画像のプロパティ", - "pad_mediatagRatio": "比率を維持", - "pad_mediatagHeight": "高さ(ピクセル)", - "pad_mediatagWidth": "幅(ピクセル)", - "pad_mediatagTitle": "Mediaタグの設定", - "admin_cat_network": "ネットワーク", - "form_clear": "消去", - "form_anonymous_on": "許可", - "form_open": "開く", - "form_input_ph_url": "https://example.com", - "form_input_ph_email": "email@example.com", - "form_backButton": "戻る", - "form_viewButton": "表示", - "form_editor": "エディタ", - "form_delete": "削除", - "form_reset": "リセット", - "form_update": "更新", - "form_submit": "送信", - "form_type_md": "説明文", - "form_type_poll": "投票", - "form_type_checkbox": "チェックボックス", - "form_type_textarea": "段落", - "form_type_input": "文", - "form_text_number": "数", - "form_text_email": "Eメール", - "form_text_url": "リンク", - "settings_colortheme_light": "ライト", - "settings_colortheme_dark": "ダーク", - "settings_cat_style": "表示モード", - "admin_performanceKeyHeading": "コマンド", - "admin_performanceProfilingTitle": "性能", - "admin_cat_performance": "性能", - "redo": "やり直す", - "undo": "取り消す", - "settings_cacheTitle": "キャッシュ", - "admin_support_open": "表示", - "mediatag_saveButton": "保存", - "Offline": "オフライン", - "admin_unarchiveButton": "復元", - "admin_archiveButton": "アーカイブ", - "oo_version_latest": "最新", - "settings_cat_kanban": "カンバン", - "settings_kanbanTagsOr": "または", - "settings_kanbanTagsAnd": "かつ", - "pad_tocHide": "アウトライン", - "oo_refresh": "再読み込み", - "toolbar_file": "ファイル", - "drive_treeButton": "ファイル", - "toolbar_insert": "挿入", - "fm_sort": "並び替える", - "comments_comment": "コメント", - "comments_resolve": "解決", - "comments_reply": "返信", - "comments_submit": "送信", - "comments_edited": "編集済", - "cba_enable": "有効にする", - "canvas_select": "選択", - "kanban_body": "内容", - "kanban_title": "タイトル", - "teams": "チーム", - "teams_table_specific": "例外", - "properties_changePasswordButton": "送信", - "terms": "利用規約", - "poll_publish_button": "公開", - "team_viewers": "閲覧者", - "team_pending": "招待済", - "team_cat_create": "新規", - "team_inviteModalButton": "招待", - "owner_unknownUser": "不明", - "admin_cat_support": "サポート", - "supportPage": "サポート", - "share_withFriends": "共有", - "friendRequest_decline": "拒否", - "settings_codeSpellcheckTitle": "スペルチェック", - "contact_email": "Eメール", - "admin_cat_stats": "統計", - "markdown_toc": "コンテンツ", - "autostore_pad": "パッド", - "autostore_sf": "フォルダ", - "autostore_file": "ファイル", - "share_linkCopy": "リンクをコピー", - "creation_passwordValue": "パスワード", - "edit": "編集", - "features": "機能", - "mdToolbar_code": "コード", - "mdToolbar_quote": "引用", - "mdToolbar_link": "リンク", - "mdToolbar_strikethrough": "打ち消し線", - "mdToolbar_bold": "太字", - "mdToolbar_italic": "イタリック", - "mdToolbar_help": "ヘルプ", - "todo_title": "CryptTodo", - "download_step2": "復号化中", - "download_dl": "ダウンロード", - "upload_up": "アップロード", - "upload_cancelled": "キャンセル済", - "settings_padSpellcheckTitle": "スペルチェック", - "settings_resetThumbnailsAction": "消去", - "settings_thumbnails": "サムネイル", - "settings_resetTipsAction": "リセット", - "settings_resetButton": "削除", - "settings_cat_code": "コード", - "settings_cat_cursor": "カーソル", - "fc_hashtag": "タグ", - "fc_prop": "プロパティ", - "fc_remove_sharedfolder": "削除", - "contacts_send": "送信", - "contacts_title": "連絡先", - "poll_comment_list": "コメント", - "poll_optionPlaceholder": "オプション", - "kanban_done": "完了", - "kanban_delete": "削除", - "kanban_color": "色", - "calendar_import_temp": "このカレンダーをインポート", - "settings_deleteContinue": "アカウントを削除", - "form_editBlock": "編集", - "fm_deleteOwnedPads": "これらのドキュメントをサーバーから完全に削除してよろしいですか?", - "fm_deleteOwnedPad": "このドキュメントをサーバーから完全に削除してよろしいですか?", - "fm_sharedFolder": "共有フォルダ", - "fm_newFile": "新しいドキュメント", - "fm_newFolder": "新しいフォルダ", - "fm_newButton": "新規", - "fm_sharedFolderName": "共有フォルダ", - "fm_tagsName": "タグ", - "fm_filesDataName": "全てのファイル", - "contacts_leaveRoom": "このルームから退出", - "contacts_rooms": "ルーム", - "contacts_removeHistoryServerError": "チャットの履歴を削除する際にエラーが発生しました。後ほど再試行してください", - "contacts_confirmRemoveHistory": "チャットの履歴を削除してよろしいですか?データは復元できません", - "contacts_info3": "アイコンをダブルクリックしてプロフィールを表示", - "history_restoreDone": "ドキュメントが復元されました", - "history_restoreTitle": "選択したバージョンを復元", - "history_closeTitle": "履歴を閉じる", - "history_loadMore": "さらに履歴を読み込む", - "history_prev": "前のバージョン", - "history_next": "次のバージョン", - "historyButton": "ドキュメントの履歴を表示", - "notifyLeft": "{0}が共同セッションから退出しました", - "fileEmbedTag": "その後、ファイルを埋め込みたい任意のページの箇所に、このMedia Tagを配置してください:", - "themeButtonTitle": "コードとスライドのエディタのテーマ色を選択", - "printTransition": "遷移アニメーションを有効にする", - "admin_blockDailyCheckTitle": "サーバーのテレメトリー", - "admin_blockDailyCheckLabel": "サーバーのテレメトリーを無効にする", - "fc_open_formro": "開く(参加者として)", - "poll_unlocked": "編集可", - "poll_locked": "編集不可", - "poll_edit": "編集", - "poll_remove": "削除", - "poll_removeUser": "このユーザーを削除してよろしいですか?", - "oo_importInProgress": "インポート中です", - "register_emailWarning2": "他のサービスと異なり、メールアドレスを使ってパスワードをリセットすることはできません。", - "register_alreadyRegistered": "このユーザーは既に存在します。ログインしますか?", - "register_warning": "注意", - "register_cancel": "キャンセル", - "register_writtenPassword": "ユーザー名とパスワードをメモしました。続行", - "register_mustAcceptTerms": "利用規約に同意する必要があります。", - "register_passwordTooShort": "パスワードは最低{0}文字でなければなりません。", - "register_passwordsDontMatch": "パスワードが一致しません!", - "register_acceptTerms": "利用規約に同意", - "canvas_widthLabel": "幅: {0}", - "canvas_width": "幅", - "canvas_delete": "選択箇所を削除", - "canvas_clear": "消去", - "oo_cantUpload": "他のユーザーが在席中にアップロードすることはできません。", - "poll_comment_placeholder": "あなたのコメント", - "poll_comment_remove": "このコメントを削除", - "poll_comment_submit": "送信", - "poll_comment_add": "コメントを追加", - "imprint": "法定通知", - "oo_exportInProgress": "エクスポート中です", - "notifyJoined": "{0}が共同セッションに参加しました", - "viewEmbedTag": "ドキュメントを埋め込むには、以下のiframeを任意の箇所に含めてください。CSSまたはHTMLの属性を使って装飾できます。", - "slideOptionsText": "オプション", - "tags_noentry": "削除したドキュメントにはタグ付けできません", - "tags_duplicate": "重複タグ: {0}", - "tags_notShared": "タグは他のユーザーと共有されません", - "tags_add": "選択したドキュメントのタグを更新", - "tags_title": "タグ(あなた用)", - "filePickerButton": "CryptDriveに保存したファイルを埋め込む", - "printBackgroundRemove": "背景画像を削除", - "printBackgroundValue": "現在の背景: {0}", - "printBackgroundButton": "画像を選択", - "printBackground": "背景画像を使用", - "printTitle": "ドキュメントのタイトルを表示", - "printDate": "日付を表示", - "printSlideNumber": "スライドの番号を表示", - "printOptions": "レイアウトのオプション", - "printButtonTitle2": "ドキュメントを印刷するかPDFファイルでエクスポート", - "printButton": "印刷(Enter)", - "printText": "印刷", - "backgroundButtonTitle": "プレゼンテーションの背景色を変更", - "template_empty": "利用できるテンプレートがありません", - "template_import": "テンプレートをインポート", - "useTemplateOK": "テンプレートを選択してください(Enter)", - "selectTemplate": "テンプレートを選択するかESCキーを押してください", - "saveTemplatePrompt": "テンプレートのタイトルを入力してください", - "newButtonTitle": "新しいドキュメントを作成", - "newButton": "新規", - "userAccountButton": "メニュー", - "userListButton": "ユーザーリスト", - "movedToTrash": "ドキュメントをゴミ箱に移動しました。
ドライブにアクセス", - "forgetPrompt": "OKをクリックするとドキュメントをゴミ箱へと移動します。よろしいですか?", - "forgetButton": "削除", - "pinLimitReached": "利用できるストレージの最大容量に達しました", - "disconnected": "接続が切れました", - "saveTitle": "タイトルを保存(Enter)", - "exportButtonTitle": "ローカルファイルにドキュメントをエクスポート", - "importButtonTitle": "ローカルファイルからドキュメントをインポート", - "pinLimitDrive": "ストレージの最大容量に達しました。
新しいドキュメントは作成できません。", - "pinLimitNotPinned": "ストレージの最大容量に達しました。
このドキュメントはCryptDriveに保存されません。", - "pinLimitReachedAlertNoAccounts": "ストレージの最大容量に達しました", - "pinLimitReachedAlert": "使用できるストレージの最大容量に達しました。新しいドキュメントはCryptDriveに保存されません。
ドキュメントをCryptDriveから削除するか、プレミアムユーザーになると容量を増やすことができます。", - "userlist_offline": "現在オフラインのため、ユーザーリストは利用できません。", - "readonly": "読み取り専用", - "errorState": "重大なエラー: {0}", - "realtime_unrecoverableError": "回復不能なエラーが発生しました。OKをクリックして再読み込みを行ってください。", - "disabledApp": "このアプリケーションは無効になっています。詳細については、このCryptPadの管理者にお問い合わせください。", - "deletedFromServer": "ドキュメントが破棄されました", - "newVersionError": "新しいバージョンのCryptPadがあります。
リロードすると新しいバージョンを読み込みます。Escキーを押すとオフラインモードでコンテンツにアクセスします。", - "errorRedirectToHome": "Escキーを押すとCryptDriveにリダイレクトします。", - "errorCopy": " Escキーを押すと、閲覧モードで引き続きコンテンツにアクセスできます。", - "invalidHashError": "要求したドキュメントのURLが無効です。", - "chainpadError": "コンテンツを更新する際に重大なエラーが発生しました。コンテンツが失われないよう、閲覧モードで表示されています。
このドキュメントの表示を続けるにはEscキーを押し、再度編集を試みるにはリロードをしてください。", - "inactiveError": "このドキュメントは利用されていなかったため削除されました。Escキーを押すと新しいパドキュメントを作成します。", - "deletedError": "このドキュメントは削除されたため、利用できなくなりました。", - "expiredError": "このドキュメントは利用期限を過ぎてしまったため、利用できなくなりました。", - "anonymousStoreDisabled": "このCryptPadのインスタンスの管理者は、ゲストによる保存を無効に設定しています。あなたのCryptDriveにアクセスするにはログインが必要です。", - "padNotPinnedVariable": "このドキュメントは{4}日間利用しないと有効期限が切れます。{0}ログイン{1}するか{2}登録{3}して保存してください。", - "padNotPinned": "このドキュメントは3か月間利用しないと有効期限が切れます。{0}ログイン{1}するか{2}登録{3}して保存してください。", - "onLogout": "ログアウトしました。{0}ここをクリック{1}するか
Escapeキーを押すと、閲覧モードでドキュメントにアクセスできます。", - "typeError": "このドキュメントは選択したアプリケーションと互換性がありません", - "form_type_page": "ページ分割", - "form_description_default": "ここにテキストを入力", - "team_pcsSelectHelp": "所有するドキュメントをチームのドライブに作成すると、そのドキュメントのオーナー権はチームに与えられます。", - "sharedFolders_create_owned": "所有するフォルダ", - "creation_owned1": "所有している項目は、オーナーの望むときにいつでも破棄できます。破棄すると、他のユーザーのCryptDriveからも削除されます。", - "creation_owned": "ドキュメントを所有", - "uploadFolder_modal_owner": "所有するファイル", - "upload_modal_owner": "所有するファイル", - "settings_driveDuplicateHint": "所有するドキュメントを共有フォルダに移動すると、あなたのCryptDriveにドキュメントのコピーが保存され、あなたは引き続きそのドキュメントを使うことができます。重複したファイルは隠すことができます。削除しない限り、共有したバージョンだけが表示されます。削除した場合は、以前の場所に元のファイルが表示されます。", - "settings_driveDuplicateTitle": "重複した所有するドキュメント", - "fm_info_owned": "あなたはここに表示されているドキュメントの所有者です。所有者は、サーバーからドキュメントを永久に削除することができます。削除すると、他のユーザーはドキュメントにアクセスできなくなります。", - "settings_deleteModal": "あなたのデータを削除するため、以下の情報をCryptPadの管理者と共有します。", - "oo_login": "ログインもしくは登録すると、スプレッドシートの性能が改善します。", - "cba_hint": "設定は次の新しいドキュメントから有効になります。", - "support_disabledHint": "このCryptPadのインスタンスはサポートフォームを利用するように設定されていません。", - "admin_supportInitTitle": "サポートメールボックスの初期化", - "admin_supportAddError": "秘密鍵が無効です", - "admin_supportAddKey": "秘密鍵を追加", - "todo_markAsIncompleteTitle": "このタスクを未完了にする", - "todo_markAsCompleteTitle": "このタスクを完了済にする", - "settings_codeFontSize": "コードエディターのフォントの大きさ", - "settings_anonymous": "ログインしていません。設定はこのブラウザのみで有効です。", - "settings_deleted": "アカウントが削除されました。OKを押すとホームページに移動します。", - "settings_deleteHint": "アカウントの削除は取り消せません。あなたのCryptDriveとドキュメントのリストはサーバーから削除されます。誰もCryptDriveに保存していないドキュメントは、90日で削除されます。", - "settings_resetThumbnailsDone": "サムネイルが消去されました。", - "settings_resetThumbnailsDescription": "ブラウザに保存したドキュメントのサムネイルを削除します。", - "settings_disableThumbnailsDescription": "新しいドキュメントを開くと、サムネイルが自動で作成され、ブラウザに保存されます。ここでサムネイルの作成を無効にできます。", - "fm_info_root": "フォルダを作成してファイルを整理できます。", - "oo_conversionSupport": "お使いのブラウザは、オフィスソフトウェアのフォーマットの変換に対応していません。FirefoxもしくはChromeの最新バージョンの使用を推奨します。", - "register_registrationIsClosed": "登録は締め切りました。", - "settings_notifCalendarHint": "今後のカレンダーのイベントの全ての通知を有効もしくは無効にします。", - "reminder_inProgressAllDay": "今日: {0}", - "reminder_inProgress": "{0}が{1}に開始しました", - "reminder_now": "{0}が開始しました", - "reminder_missed": "{0}が{1}で開催されました", - "calendar_dateRange": "{0} - {1}", - "calendar_import": "マイカレンダーに追加", - "calendar_errorNoCalendar": "編集可能なカレンダーが選択されていません", - "calendar_day": "日", - "calendar_new": "新しいカレンダー", - "calendar_default": "マイカレンダー", - "calendar": "カレンダー", - "pad_goToAnchor": "アンカーに移動", - "oo_cantMigrate": "この表はアップロードの最大のサイズを超えているため、移行することができません。", - "footer_roadmap": "ロードマップ", - "settings_deleteSubscription": "定額利用を管理", - "broadcast_translations": "翻訳", - "admin_broadcastCancel": "メッセージを削除", - "admin_broadcastButton": "送信", - "broadcast_surveyURL": "アンケートのリンク", - "admin_surveyActive": "アンケートを開く", - "admin_surveyCancel": "削除", - "admin_surveyButton": "アンケートを保存", - "broadcast_newSurvey": "新しいアンケートがあります。クリックで開きます。", - "admin_surveyTitle": "アンケート", - "admin_maintenanceCancel": "メンテナンスをキャンセル", - "admin_maintenanceButton": "メンテナンスを予定", - "admin_maintenanceTitle": "メンテナンス", - "importError": "インポートできませんでした(誤ったフォーマット)", - "addOptionalPassword": "パスワードを追加(任意)", - "pad_settings_show": "表示", - "pad_settings_hide": "隠す", - "pad_settings_width_small": "ページモード", - "pad_settings_info": "このドキュメントの既定の設定です。新しいユーザーがドキュメントを閲覧したときに適用されます。", - "pad_settings_title": "ドキュメントの設定", - "settings_colorthemeTitle": "テーマ色", - "fm_cantUploadHere": "ここにはファイルをアップロードできません", - "settings_resetTipsDone": "全てのヒントが表示されます。", - "settings_resetTipsButton": "利用可能なCryptDriveのヒントをリセット", - "settings_resetNewTitle": "CryptDriveのデータを消去", - "settings_exportErrorMissing": "このドキュメントはサーバーにありません(期限切れ、もしくはオーナーにより削除されました)", - "settings_exportErrorEmpty": "このドキュメントはエクスポートできません(内容が空もしくは無効です)。", - "settings_exportErrorDescription": "以下のドキュメントをエクスポートに追加できませんでした:", - "settings_exportDescription": "ドキュメントをダウンロードして復号化しています。これには数分程度かかることがあります。タブを閉じると作業が中断されます。", - "crowdfunding_popup_text": "

あなたの援助が必要です!

CryptPadの開発が継続できるよう、OpenCollectiveのページからご支援いただきますようお願いします。ロードマップ資金調達の目標を同ページにて公開しています。", - "autostore_notAvailable": "この機能を使うにはCryptDriveにドキュメントを保存する必要があります。", - "autostore_forceSave": "CryptDriveにファイルを保存", - "autostore_saved": "ドキュメントをCryptDriveに保存しました!", - "autostore_settings": "ドキュメントの自動保存は設定ページで有効にできます。", - "broadcast_end": "終了", - "broadcast_start": "開始", - "broadcast_preview": "通知をプレビュー", - "team_inviteLinkError": "リンクの作成中にエラーが発生しました。", - "team_inviteLinkSetPassword": "リンクをパスワードで保護(推奨)", - "team_inviteLinkNote": "プライベート・メッセージを追加", - "contacts_muteInfo": "ミュートしたユーザーからは通知を受け取りません。
ミュートしたことは相手に通知されません。 ", - "contacts_manageMuted": "ミュートを管理", - "notifyRenamed": "{0}は{1}になりました", - "printBackgroundNoValue": "背景画像が選択されていません", - "canvas_saveToDrive": "この画像をファイル形式でCryptDriveに保存", - "canvas_opacityLabel": "不透明度: {0}", - "canvas_opacity": "不透明度", - "poll_comment_disabled": "✓ボタンを押して投票を公開すると、コメントが有効になります。", - "kanban_item": "項目 {0}", - "fileEmbedScript": "このファイルを埋め込むには、Media Tagのロード用に、このスクリプトをページに一度含めてください。", - "editShare": "編集用リンク", - "colorButtonTitle": "プレゼンテーションモードの文字色を変更", - "presentButtonTitle": "プレゼンテーションモードに変更", - "exportPrompt": "ファイル名は何にしますか?", - "share_formEdit": "作者", - "history_userNext": "次の著者", - "history_userPrev": "以前の著者", - "comments_deleted": "コメントは著者により削除されました", - "cba_title": "著者の色", - "cba_hide": "著者の色を隠す", - "cba_show": "著者の色を表示", - "cba_properties": "著者の色(実験的)", - "restrictedError": "このドキュメントにアクセスする権限がありません", - "restrictedLoginPrompt": "このドキュメントにアクセスする権限がありません。アクセス権がある場合はログイン してください。", - "history_shareTitle": "このバージョンへのリンクを共有", - "admin_listMyInstanceTitle": "インスタンスを公開ディレクトリに表示", - "admin_checkupButton": "診断を行う", - "settings_driveRedirect": "自動で転送", - "mdToolbar_embed": "タイトルを埋め込む", - "copyToClipboard": "クリップボードにコピー", - "form_anonymousBox": "匿名で回答", - "form_anonymous_blocked": "ゲストの回答はブロックされています。回答には ログインもしくは登録が必要です。", - "form_add_item": "項目を追加", - "form_type_radio": "選択肢", - "form_makePublicWarning": "回答を公開してよろしいですか?回答は参加者に公開されます。これは取り消せません。", - "form_notAnswered": "{0}個の未回答", - "form_showSummary": "概要を表示", - "form_showIndividual": "個々の回答を表示", - "form_results_empty": "回答がありません", - "form_results": "回答({0})", - "form_answered": "このフォームは回答済みです", - "form_cantFindAnswers": "このフォームの既存の回答を取得できません。", - "form_editType": "オプションの種類", - "share_formView": "参加者", - "admin_supportPrivHint": "他の管理者がサポートチケットを表示するのに必要な秘密鍵を表示します。この秘密鍵を入力するフォームは、管理パネルに表示されます。", - "oo_importBin": "OKをクリックするとCryptPadの内部フォーマット(.bin)をインポートします。", - "settings_notifCalendarTitle": "カレンダーの通知", - "reminder_minutes": "{0}はあと{1}分で開始します", - "upload_success": "ファイル({0})のアップロードが完了しました。", - "uploadFolder_modal_title": "フォルダーアップロードのオプション", - "upload_modal_title": "ファイルアップロードのオプション", - "settings_cursorShowTitle": "他のユーザーのカーソルの位置を表示", - "admin_authError": "このページには管理者のみアクセスできます", - "settings_cursorShareLabel": "位置を共有", - "settings_changePasswordNewPasswordSameAsOld": "新しいパスワードは現在のパスワードと異なるものでなければなりません。", - "login_unhandledError": "予期しないエラーが発生しました :(", - "autostore_error": "予期しないエラー: このドキュメントを保存できませんでした。再度試してください。", - "settings_changePasswordError": "予期しないエラーが発生しました。ログインしたりパスワードを変更したりすることができない場合は、CryptPadの管理者に連絡してください。", - "convertFolderToSF_confirm": "このフォルダを他の人が閲覧するには、共有フォルダに変更する必要があります。続行してよろしいですか?", - "share_linkPresent": "表示モード", - "share_linkEmbed": "埋め込みモード(ツールバーとユーザー一覧を隠します)", - "properties_passwordSuccess": "パスワードは変更されました。
OKを押して再読み込みし、アクセス権限を更新してください。", - "properties_passwordWarning": "パスワードは変更されましたが、CryptDriveを更新することができませんでした。古いバージョンのドキュメントは手動で削除しなければならないかもしれません。
OKを押して再読み込みし、アクセス権限を更新してください。", - "properties_confirmChange": "続行してよろしいですか?パスワードを変更すると履歴が削除されます。パスワードを知らないユーザーは、このドキュメントにアクセスできなくなります。", - "creation_newPadModalDescription": "アプリケーションをクリックすると新しいドキュメントを作成できます。タブキーで選択し、エンターキーで作成することもできます。", - "creation_noOwner": "オーナーがいません", - "properties_passwordError": "パスワードの変更中にエラーが発生しました。再度試してください。", - "properties_passwordSame": "新しいパスワードは現在のパスワードと異なるものでなければなりません。", - "four04_pageNotFound": "お探しのページが見つかりませんでした。", - "about": "私たちについて", - "mdToolbar_button": "マークダウンのツールバーを表示もしくは隠す", - "pad_base64": "このドキュメントはサイズの大きい画像を含んでいます。ドキュメントのサイズが大きいと、読み込みに時間がかかります。サイズを減らすために、画像のフォーマットを変換して、別の画像ファイルとしてCryptDriveに保存することができます。画像を変換してよろしいですか?", - "todo_removeTaskTitle": "このタスクをリストから削除", - "upload_tooLargeBrief": "ファイルがドライブの{0}MBの制限を超えています", - "upload_tooLarge": "ファイルがあなたのアカウントでアップロードできるサイズを超えています。", - "upload_notEnoughSpaceBrief": "容量が足りません", - "upload_notEnoughSpace": "CryptDriveの空き容量が不足しています。", - "upload_uploadPending": "アップロード中です。キャンセルして新しいファイルをアップロードしますか?", - "upload_serverError": "サーバーエラー: ファイルをアップロードできませんでした。", - "uploadFolder_modal_forceSave": "ファイルをCryptDriveに保存", - "settings_export_download": "ドキュメントをダウンロードして復号化しています…", - "settings_export_reading": "CryptDriveを読み込んでいます…", - "settings_exportCancel": "エクスポートをキャンセルしてよろしいでしょうか?次のエクスポートでは最初からやりなおす必要があります。", - "fm_error_cantPin": "内部サーバーエラー。ページを再度読み込んでください。", - "fm_info_anonymous": "ログインしていないため、ドキュメントは{0}日後に期限切れになります。また、ブラウザの履歴を消去するとファイルが削除される恐れがあります。
ファイルを永続的に保存するには、登録するか(個人情報の登録は不要です)ログインしてください。登録アカウントについては、こちらを参照してください。", - "fm_info_recent": "あなたか共同編集者が最近開いた、もしくは編集したドキュメントの一覧です。", - "fm_info_template": "これらのドキュメントはテンプレートとして保存されています。以下のテンプレートを使って、新しいドキュメントを作成することができます。", - "fm_categoryError": "選択したカテゴリーが開けません。ルートを表示します。", - "ui_more": "さらに表示", - "oo_reconnect": "サーバーの接続が回復しました。OKをクリックして再読み込みを行い、編集を継続してください。", - "form_text_text": "テキスト", - "form_poll_time": "時", - "form_poll_day": "日", - "form_poll_text": "テキスト", - "form_invalid": "無効なフォーム", - "admin_supportPrivButton": "鍵を表示", - "admin_supportInitGenerate": "サポートの鍵を生成", - "admin_supportPrivTitle": "サポートのメールボックスの秘密鍵", - "admin_emailHint": "あなたのインスタンスの連絡先のメールアドレスを設定してください", - "admin_emailTitle": "管理者の連絡先のメールアドレス", - "mediatag_defaultImageName": "画像", - "calendar_noNotification": "なし", - "genericCopySuccess": "クリップボードにコピーしました", - "toolbar_storeInDrive": "CryptDriveに保存", - "calendar_addNotification": "リマインダーを追加", - "calendar_notifications": "リマインダー", - "settings_notifCalendarCheckbox": "カレンダーの通知を有効にする", - "calendar_days": "日", - "calendar_hours": "時間", - "calendar_minutes": "分", - "calendar_allDay": "全日", - "calendar_location": "場所: {0}", - "calendar_loc": "場所", - "calendar_title": "タイトル", - "calendar_update": "更新", - "calendar_deleteOwned": "共有した他のユーザーには表示されたままになります。", - "calendar_deleteConfirm": "このカレンダーをあなたのアカウントから削除してよろしいですか?", - "calendar_today": "今日", - "calendar_month": "月", - "calendar_week": "週", - "calendar_deleteTeamConfirm": "このカレンダーをチームから削除してよろしいですか?", - "calendar_newEvent": "新しいイベント", - "settings_changePasswordPending": "パスワードを変更しています。完了するまでページを閉じたり、再読み込みしたりしないでください。", - "settings_changePasswordConfirm": "パスワードを変更してよろしいですか?全てのデバイスで再ログインする必要があります。", - "settings_ownDrivePending": "アカウントをアップグレードしています。完了するまでページを閉じたり、再読み込みしたりしないでください。", - "settings_ownDriveConfirm": "アカウントのアップグレードには時間がかかるかもしれません。全てのデバイスで再ログインする必要があります。よろしいですか?", - "settings_padOpenLinkLabel": "直接リンクを開く機能を有効にする", - "settings_padOpenLinkHint": "このオプションを有効にすると、プレビューの吹き出しを表示せず、埋め込んだリンクを直接クリックして開くことができます", - "settings_padOpenLinkTitle": "最初のクリックでリンクを開く", - "settings_padSpellcheckLabel": "リッチテキストのドキュメントでスペルチェックを有効にする", - "settings_padWidth": "エディターの最大幅", - "settings_codeUseTabs": "タブを使ってインデント(空白スペースの代わりに)", - "login_noSuchUser": "無効なユーザー名もしくはパスワードです。再度試すか、サインアップしてください", - "fo_unavailableName": "同じ名前のファイルまたはフォルダが既に存在しています。アイテムの名前を変更して、再度試してください。", - "fo_moveFolderToChildError": "フォルダをサブフォルダに移動することはできません", - "fo_existingNameError": "その名前はディレクトリで既に使用されています。他の名前を選んでください。", - "fo_moveUnsortedError": "フォルダをテンプレートのリストに移動することはできません", - "fm_moveNestedSF": "共有フォルダを他の共有フォルダの中に移動することはできません。フォルダ {0} は移動されませんでした。", - "fm_restoreDrive": "あなたのドライブを以前の状態に戻しています。最良の結果のため、完了するまでドライブに変更を加えるのは控えてください。", - "fm_padIsOwnedOther": "このドキュメントは他のユーザーにより所有されています", - "fm_burnThisDrive": "ブラウザに保存されているCryptPadの全ての情報を消去してよろしいですか?
あなたのCryptDriveと履歴はブラウザから消去されますが、ドキュメントは(暗号化されたまま)サーバー上に残ります。", - "fm_burnThisDriveButton": "ブラウザに保存されているCryptPadの全ての情報を消去", - "fm_canBeShared": "このフォルダは共有可能です", - "useTemplateCancel": "新しく開始(Esc)", - "fm_originalPath": "本来のパス", - "contacts_online": "このルームの別のユーザーがオンラインです", - "contacts_request": "{0}があなたを連絡先に追加しようとしています。承諾しますか?", - "contacts_rejected": "連絡先の招待が拒否されました", - "contacts_added": "連絡先の招待が承諾されました。", - "profile_uploadTypeError": "エラー: あなたのアバターの種類は許可されていません。許可されている種類: {0}", - "canvas_imageEmbed": "コンピューターの画像を埋め込む", - "canvas_currentBrush": "現在のブラシ", - "poll_total": "合計", - "kanban_todo": "未着手", - "slide_invalidLess": "ユーザー定義のスタイルは無効です", - "printCSS": "ユーザー定義のスタイルルール(CSS):", - "admin_provideAggregateStatisticsHint": "追加の利用状況を開発者に提供することも選択できます。追加の情報には、あなたのインスタンスのおおよその登録ユーザー数や一日あたりのユーザー数などがあります。", - "fm_info_sharedFolder": "これは共有フォルダです。ログインしていないため、閲覧モードでしかアクセスできません。
登録もしくはログインすると、CryptDriveにインポートして編集できます。", - "team_invitedToTeam": "{0}があなたをチーム「{1}」に招待しました", - "team_inviteFromMsg": "{0}があなたをチーム「{1}」に招待しました", - "team_invitePleaseLogin": "招待を承諾するには、ログインもしくは登録してください。", - "team_inviteEnterPassword": "招待のパスワードを入力してください。", - "team_inviteGetData": "チームのデータを取得中です", - "team_inviteInvalidLinkError": "招待リンクが無効です。", - "admin_getlimitsHint": "インスタンスに適用されている全てのカスタムストレージの制限を一覧表示します。", - "settings_exportWarning": "注意:このツールはベータ版のため、スケーラビリティ上の問題があるかもしれません。よりよいパフォーマンスのために、このタブをフォーカスしたままにすることを推奨します。", - "settings_exportFailed": "1分以上ダウンロードにかかるドキュメントは、エクスポートしたファイルには含まれません。エクスポートされなかったドキュメントについては、リンクを表示します。", - "settings_exportTitle": "CryptDriveをエクスポート", - "settings_backup2Confirm": "あなたのCryptDriveの全てのドキュメントをダウンロードします。続けたい場合は、名前を入力してOKを押してください", - "settings_backup2": "CryptDriveをダウンロード", - "settings_backupHint2": "ドライブの全てのドキュメントをダウンロードします。ドキュメントは、他のアプリケーションで読み込めるフォーマットがあれば、そのフォーマットでダウンロードされます。そうしたフォーマットがなければ、CryptPadで読み込めるフォーマットでダウンロードされます。", - "settings_backupHint": "CryptDriveのコンテンツをバックアップもしくは復元します。バックアップには、ドキュメントの内容ではなく、それにアクセスする鍵だけが含まれます。", - "register_emailWarning3": "その点を踏まえてなおユーザー名にメールアドレスを使用する場合は、OKをクリックしてください。", - "register_emailWarning1": "それもできますが、サーバーには送信されません。", - "register_emailWarning0": "ユーザー名にメールアドレスが入力されています。", - "fm_tags_used": "使用数", - "fm_deletedPads": "これらのドキュメントはサーバーにありません。あなたのCryptDriveから削除されています: {0}", - "fm_renamedPad": "このドキュメントにユーザー定義の名前を設定しました。共有のファイル名は「{0}」です", - "fm_ownedPadsName": "所有", - "burnAfterReading_generateLink": "下のボタンをクリックするとリンクを生成します。", - "fm_restricted": "アクセス権がありません", - "admin_performancePercentHeading": "割合", - "settings_cacheButton": "既存のキャッシュを消去", - "settings_cacheCheckbox": "このデバイスでキャッシュを有効にする", - "form_submitWarning": "強制的に送信", - "form_updateWarning": "強制的にアップデート", - "form_answerName": "{0}が{1}に回答", - "form_addMultipleHint": "複数の日時を追加", - "admin_consentToContactTitle": "連絡に同意", - "form_poll_hint": ": はい、: いいえ、: 可", - "admin_provideAggregateStatisticsLabel": "集計済みの統計を提供", - "admin_provideAggregateStatisticsTitle": "統計による集計", - "admin_blockDailyCheckHint": "CryptPadのインスタンスは、1日に1度、開発者のサーバーにメッセージを送信するよう設定されています。開発者はそれをもとに、CryptPadのバージョンごとのサーバー数を追跡しています。以下からこの測定をオプトアプトできます。なお、送信されるメッセージの内容は、確認用として、アプリケーションのサーバーのログに記録されます。", - "admin_listMyInstanceHint": "あなたのインスタンスが誰でも利用できる場合、同意によってウェブディレクトリに表示できます。表示には、サーバーのテレメトリーが有効になっている必要があります。", - "settings_driveRedirectTitle": "ホームページにリダイレクト", - "form_defaultItem": "項目{0}", - "form_defaultOption": "オプション{0}", - "form_answerAnonymous": "{0}に匿名の回答", - "form_maxLength": "文字数制限: {0}/{1}", - "form_textType": "テキストの種類", - "form_pollYourAnswers": "あなたの回答", - "form_pollTotal": "合計", - "form_editMaxLength": "最大文字数", - "form_add_option": "オプションを追加", - "form_newItem": "新しい項目", - "form_newOption": "新しいオプション", - "form_anonymous": "ゲストアクセス(未ログイン)", - "form_removeEnd": "締切日を削除", - "form_setEnd": "締切日を設定", - "form_isPrivate": "回答は公開されていません", - "form_isPublic": "回答は公開されています", - "form_makePublic": "回答を公開", - "form_invalidQuestion": "質問{0}", - "info_privacyFlavour": "このインスタンスのプライバシーポリシー", - "toolbar_tools": "ツール", - "toolbar_savetodrive": "画像として保存", - "comments_error": "ここにはコメントを追加できません", - "settings_padNotifHint": "あなたのコメントへの返信の通知を無視する", - "mentions_notification": "{0}があなたを{1}でメンションしました", - "access_muteRequests": "このドキュメントへのアクセスリクエストをミュート", - "access_noContact": "追加する連絡先がありません", - "trimHistory_needMigration": "この機能を有効にするにはCryptDriveをアップデートしてください。", - "trimHistory_error": "履歴を削除している途中でエラーが発生しました", - "trimHistory_getSizeError": "ドライブの履歴のサイズを計算している途中でエラーが発生しました", - "profile_login": "このユーザーを連絡先に追加するにはログインする必要があります", - "dontShowAgain": "再び表示しない", - "oo_sheetMigration_anonymousEditor": "このドキュメントはアップグレードする必要があります。登録ユーザーがこれを開くまで、ゲストが編集することはできません。", - "oo_invalidFormat": "このファイルはインポートできません", - "burnAfterReading_warningDeleted": "このドキュメントは削除されました。ウインドウを閉じると再びアクセスすることはできません。", - "burnAfterReading_proceed": "表示して削除", - "team_leaveConfirm": "チームから退出すると、チームのCryptDrive、チャットの履歴などにアクセスできなくなります。よろしいですか?", - "team_leaveButton": "チームから退出", - "team_rosterKick": "チームからキック", - "team_rosterDemote": "降格", - "team_rosterPromote": "昇格", - "team_createLabel": "新しいチームを作成", - "team_kickedFromTeam": "{0}があなたをチーム「{1}」からキックしました", - "admin_diskUsageButton": "レポートを生成", - "admin_diskUsageTitle": "ディスクの使用状況", - "contact_adminHint": "アカウントに関連した問題、ストレージの制限、サービスの運用状況に関して。\n", - "contact_devHint": "機能のリクエスト、ユーザビリティの改善、もしくはお礼については、以下よりお願いします。", - "contact_dev": "開発者に連絡", - "contact_admin": "管理者に連絡。理由: {0}", - "admin_flushCacheDone": "キャッシュを消去しました", - "admin_flushCacheTitle": "HTTPキャッシュを消去", - "admin_updateLimitDone": "アップデートが完了しました", - "admin_updateLimitButton": "クォータを更新", - "admin_registeredHint": "あなたのインスタンスの登録ユーザー数", - "admin_updateLimitTitle": "ユーザーのクォータを更新", - "mdToolbar_defaultText": "ここにテキストを入力", - "upload_modal_filename": "ファイル名(拡張子 {0} を自動で追加)", - "settings_padSpellcheckHint": "リッチテキストのドキュメントでスペルチェックを有効にします。間違ったつづりには赤色の下線が表示されます。右クリックをしながらコントロールキーもしくはメタキーを押すと、正しい選択肢が表示されます。", - "creation_404": "このドキュメントは存在しません。以下のフォームより新しいドキュメントを作成してください。", - "help_genericMore": "CryptPadの使い方についてはドキュメンテーションをご覧ください。", - "mdToolbar_toc": "目次", - "mdToolbar_check": "タスクリスト", - "mdToolbar_nlist": "番号付きリスト", - "mdToolbar_heading": "見出し", - "settings_cursorShowHint": "共同ドキュメントであなたが他のユーザーのカーソルの位置を見られるかどうかを決められます。", - "settings_cursorShareHint": "共同ドキュメントで他のユーザーがあなたのカーソルの位置を見られるかどうかを決められます。", - "settings_cursorColorHint": "共同ドキュメントでの他のユーザーのカーソルの色を変更できます。", - "settings_padWidthHint": "テキストエディターの幅を制限するページモード(既定)と、スクリーン全体の幅を使用するモードを切り替えられます。", - "fm_forbidden": "禁止されたアクション", - "team_exportHint": "チームのドライブの全てのドキュメントをダウンロードします。ドキュメントは、他のアプリケーションで読み込めるフォーマットがあれば、そのフォーマットでダウンロードされます。そうしたフォーマットがなければ、CryptPadで読み込めるフォーマットでダウンロードされます。", - "admin_limitUser": "ユーザーの公開鍵", - "fm_shareFolderPassword": "このフォルダをパスワードで保護(任意)", - "team_exportTitle": "チームのドライブをダウンロード", - "admin_invalLimit": "無効な制限値です", - "admin_limitSetNote": "メモ", - "admin_limitMB": "制限(MB)", - "broadcast_newCustom": "管理者からのメッセージ", - "admin_broadcastActive": "アクティブなメッセージ", - "fc_noAction": "利用可能なアクションはありません", - "support_closed": "このチケットは終了しました", - "support_cat_tickets": "既存のチケット", - "support_formHint": "このフォームから、管理者に問題の報告や質問を安全に行うことができます。
それらに関しては CryptPadユーザーガイドで回答されているものがあるかもしれません。既にチケットを作成している場合、同じ問題に関して新しいチケットを作成するのはお控えください。その代わりに、既存のチケットに追加の情報を送信してください。", - "support_disabledTitle": "サポートは有効になっていません", - "admin_supportListHint": "ユーザーからサポートのメールボックスに送信されたチケットの一覧です。管理者はメッセージと回答を閲覧できます。終了したチケットは再開することができます。終了したチケットについては削除する(隠す)ことができますが、他の管理者には引き続き表示されます。", - "drive_sfPassword": "共有フォルダ「 {0} 」は利用できません。オーナーにより削除されたか、新しいパスワードで保護されています。CryptDriveから削除するか、新しいパスワードを使ってアクセスを回復できます。", - "fm_info_sharedFolderHistory": "これは共有フォルダの履歴です: {0}
CryptDriveは閲覧モードを継続します。", - "notification_folderShared": "{0}があなたとフォルダを共有しました: {1}", - "convertFolderToSF_SFChildren": "このフォルダは共有フォルダを含んでいるため、共有フォルダに変更できません。続けるには、このフォルダを共有フォルダの外に移動してください。", - "sharedFolders_share": "このリンクを登録ユーザーと共有すると、共有フォルダへのアクセスが可能になります。相手がリンクを開くと、CryptDriveに共有フォルダが追加されます。", - "sharedFolders_duplicate": "移動しようとしているドキュメントのいくつかは既に移動先のフォルダに存在しています。", - "sharedFolders_forget": "このドキュメントは共有フォルダにのみ保存されているため、ゴミ箱に移動できません。あなたのCryptDriveから削除することは可能です。", - "settings_ownDriveHint": "技術上の理由で、旧アカウントは最新の機能にアクセスできません。フリーのアップデートで新しい機能が有効になり、CryptDriveの今後のアップデートにも対応します。", - "admin_activePadsHint": "閲覧もしくは編集中のドキュメント数", - "admin_activePadsTitle": "アクティブなドキュメント", - "admin_activeSessionsTitle": "アクティブな接続", - "fm_expirablePad": "期日: {0}", - "survey": "CryptPadのアンケート", - "share_embedCategory": "埋め込む", - "feedback_optout": "オプトアウトを希望の場合は、設定画面のチェックボックスでフィードバックを無効に設定してください。", - "home_host": "これはCryptPadの独立コミュニティーのインスタンスです。", - "team_deleteConfirm": "チーム全体のデータを全て削除しようとしています。削除すると、チームの他のメンバーもデータにアクセスできなくなります。これは取り消せません。削除してよろしいですか?", - "team_kickConfirm": "{0}はチームから削除された旨通知されます。よろしいですか?", - "admin_instancePurposeHint": "インスタンスを運用する目的は何ですか?テレメトリーが有効になっている場合、回答は開発ロードマップに利用されます。", - "admin_purpose_experiment": "プラットフォームのテストもしくは新機能の開発", - "admin_purpose_noanswer": "回答しない", - "admin_instancePurposeTitle": "インスタンスの目的", - "requestEdit_request": "{1}がドキュメント({0})の編集を希望しています", - "support_from": "送信元: {0}", - "admin_supportInitPrivate": "あなたのCryptPadのインスタンスは、サポートメールボックスを使用するよう設定されていますが、アクセスに必要な秘密鍵がアカウントに登録されていません。以下のフォームから、秘密鍵を登録もしくは更新してください。", - "resources_imageBlocked": "リモート画像をブロックしました", - "team_inviteLinkErrorName": "招待する人の名前を追加してください。名前は後から変更できます。 ", - "snapshots_ooPickVersion": "スナップショットの作成には、対象となるバージョンの選択が必要です", - "notification_folderSharedTeam": "{0}がチーム({2})とフォルダ({1})を共有しました", - "notification_fileSharedTeam": "{0}がチーム({2})とファイル({1})を共有しました", - "notification_padSharedTeam": "{0}がチーム({2})とドキュメント({1})を共有しました", - "requestEdit_accepted": "{1}があなたにドキュメント({0})の編集権を付与しました", - "admin_registrationHint": "ユーザーの新規登録を許可しない", - "oo_deletedVersion": "このバージョンは履歴に存在しません。", - "team_pickFriends": "チームに招待する連絡先を選択", - "notification_fileShared": "{0}があなたとファイルを共有しました: {1}", - "resources_openInNewTab": "新しいタブで開く", - "download_zip": "ZIPファイルを作成しています…", - "fileTableHeader": "ダウンロードとアップロード", - "share_copyProfileLink": "プロフィールのリンクをコピー", - "calendar_weekNumber": "{0}週", - "admin_support_closed": "終了したチケット:", - "admin_support_answered": "回答済のチケット:", - "admin_support_normal": "未回答のチケット:", - "admin_limitNote": "メモ: {0}", - "share_linkFriends": "連絡先と共有", - "share_filterFriend": "名前で検索", - "notification_padShared": "{0}があなたとドキュメントを共有しました: {1}", - "profile_friendRequestSent": "連絡先のリクエストは保留中です…", - "friendRequest_notification": "{0}があなたに連絡先への追加のリクエストを送信しました", - "friendRequest_received": "{0}が連絡先への追加を希望しています", - "friendRequest_declined": "{0}が連絡先のリクエストを拒否しました", - "admin_diskUsageHint": "CryptPadのリソースが消費しているストレージ容量", - "timeoutError": "エラーが発生してサーバーへの接続が切断されました。
Escキーを押してページを再読み込みしてください。", - "admin_updateLimitHint": "ユーザーのストレージ制限の強制アップデートはいつでも可能です。エラーが発生したときは必須となります", - "admin_cat_general": "全般", - "poll_bookmarked_col": "列をブックマークしました。常に編集可能な仕方で左端に表示されます。", - "poll_bookmark_col": "この列をブックマークすると、常に編集可能な仕方で左端に表示されます", - "settings_colortheme_custom": "ユーザー定義", - "admin_getlimitsTitle": "個別の制限", - "admin_setlimitTitle": "個別の制限を適用", - "admin_setlimitHint": "公開鍵を使用して、ユーザーに個別の制限を設定します。既存のルールは変更または削除できます。", - "form_maxOptions": "{0}個まで回答可", - "form_anonymous_off": "ブロック", - "admin_checkupHint": "CryptPadには、一般的な構成に関する問題を自動で診断し、必要に応じてそれらを修正する方法を提案するページがあります。", - "admin_broadcastTitle": "メッセージを送信", - "admin_broadcastHint": "このインスタンスの全ユーザーにメッセージを送信します。ユーザーはメッセージを通知で受け取ります。送信前のメッセージは「通知をプレビュー」から確認できます。プレビューには赤いアイコンが付いており、プレビューはあなたの通知画面にのみ表示されます。", - "calendar_before": "前", - "share_formAuditor": "監査人", - "form_editMax": "選択できるオプションの最大数", - "form_invalidWarning": "回答にエラーがあります:", - "form_isOpen": "このフォームは公開中です", - "form_isClosed": "このフォームは{0}に閉じられました", - "form_willClose": "このフォームは{0}に終了します", - "settings_driveRedirectHint": "ログイン時にホームページからドライブに自動で転送する機能は、デフォルトで有効ではなくなりました。以前の動作は以下で有効にできます。", - "admin_removeDonateButtonLabel": "クラウドファンディングのキャンペーンの宣伝を表示しない", - "admin_purpose_public": "誰でも利用できるフリーのサービスを提供するため", - "owner_team_add": "{0}があなたをチーム({1})のオーナーにしようとしています。承諾しますか?", - "friendRequest_accepted": "{0}が連絡先リクエストを承諾しました", - "friendRequest_accept": "承諾(Enter)", - "admin_flushCacheHint": "サーバーから最新のコンテンツをダウンロードするようユーザーに強制(サーバーがフレッシュモードの場合のみ)", - "admin_activeSessionsHint": "アクティブなwebsocketの接続(および接続する一意のIPアドレス)の数", - "convertFolderToSF_SFParent": "このフォルダは別の共有フォルダ内にあるため、共有フォルダに変換できません。続行するには、外部に移動してください。", - "settings_deleteWarning": "注意:現在、プレミアムプランに加入しています(別のユーザーが支払いまたは提供)。アカウントを削除する前に、プランをキャンセルしてください。アカウントを削除すると、サポートに連絡しないとキャンセルできなくなります。", - "owner_request": "{0}はあなたを{1}のオーナーにしようとしています", - "owner_addConfirm": "共同オーナーは内容を変更したり、あなたをオーナーから削除したりすることができます。続行してよろしいですか?", - "download_zip_file": "ファイル {0}/{1}", - "documentID": "ドキュメントの識別子", - "admin_setlimitButton": "制限を設定", - "historyTrim_contentsSize": "内容: {0}", - "team_invitePasswordLoading": "招待状を復号化しています", - "team_pcsSelectLabel": "保存場所", - "admin_cat_broadcast": "お知らせ", - "docs_link": "ドキュメンテーション", - "admin_support_collapse": "折りたたむ", - "team_inviteFrom": "送信元:", - "admin_supportInitHint": "サポートのメールボックスを設定すると、あなたのCryptPadのインスタンスのユーザーが、アカウントから安全に問い合わせを行うことができるようになります。", - "isNotContact": "{0}はあなたの連絡先ではありません", - "isContact": "{0}はあなたの連絡先です", - "profile_info": "他のユーザーは、ドキュメントのユーザーリストであなたのアバターをクリックして、あなたのプロフィールを確認できます。", - "owner_removeMeConfirm": "オーナー権を放棄しようとしています。これは取り消せません。よろしいですか?", - "requestEdit_confirm": "{1}がドキュメント「{0}」の編集権を要求しました。編集権を与えますか?", - "admin_supportInitHelp": "サーバーはサポートメールボックスを使用するように設定されていません。サポートメールボックスを有効にし、ユーザーからメッセージを受け取るためには、サーバーの管理者に連絡し、「./scripts/generate-admin-keys.js」のスクリプトを実行してもらい、生成された公開鍵を「config.js」に保存して、秘密鍵をあなたに送信してもらうよう依頼する必要があります。", - "feedback_privacy": "私たちはプライバシーに配慮すると同時に、CryptPadを使いやすくしたいと望んでいます。このファイルは、実行されたアクションを特定するパラメーターと共に要求され、ユーザーにとって重要なUI機能を特定するために使用されます。", - "register_warning_note": "暗号化を行うCryptPadの性質上、サービス管理者は、ユーザー名とパスワードを忘れた場合にデータを回復することができません。ユーザー名とパスワードを安全な場所に保管してください。", - "history_restoreDriveTitle": "選択したバージョンのCryptDriveを復元", - "errorPopupBlocked": "新しいタブを開く許可が必要です。お使いのブラウザのアドレスバーから、ポップアップウィンドウを許可してください。これらのウィンドウが広告の表示に使用されることはありません。", - "settings_colorthemeHint": "このデバイスでのテーマ色を変更できます。", - "settings_colortheme_default": "システムのデフォルト ({0})", - "settings_codeBrackets": "括弧の自動補完", - "creation_helperText": "ドキュメンテーションを開く", - "contacts_info1": "連絡先の一覧が表示されます。ここでは以下を行うことができます:", - "share_noContactsLoggedIn": "連絡先がありません。プロフィールのリンクを共有して、連絡先のリクエストを送信してください。", - "settings_cat_security": "セキュリティー", - "history_restoreDrivePrompt": "CryptDriveの現在のバージョンを、表示されているバージョンに置き換えてよろしいですか?", - "owner_text": "ドキュメントのオーナーは、オーナーの追加や削除、リストによるアクセス制限のほか、ドキュメントの削除を行うことができます。", - "share_linkWarning": "このリンクは、ドキュメントを暗号化したり復号化したりする鍵を含んでいます。リンクを受け取った相手は、誰でも(ここにはコンピュータープログラムも含まれます)コンテンツにアクセスすることができます。", - "creation_expiresIn": "有効期限", - "settings_mediatagSizeHint": "ドキュメントに埋め込まれたメディア要素(画像、ビデオ、PDF)を自動で読み込む最大のサイズをメガバイト(MB)で指定してください。指定したサイズより大きい要素については、手動で読み込む必要があります。「-1」を設定すると、メディア要素は常に自動で読み込みます。", - "settings_mediatagSizeTitle": "自動ダウンロードの制限", - "settings_cacheHint": "CryptPadは、帯域の使用量を減らし、読み込み時間を短縮することを目的に、ドキュメントの各部分をブラウザ上のメモリに保存しています。もし空き容量が少なければ、キャッシュを無効にしてください。セキュリティー上の懸念から、キャッシュはログアウト時に毎回消去されますが、手動でキャッシュを消去して、デバイスの空き容量を確保することもできます。", - "team_infoContent": "それぞれのチームには、チーム所有のCryptDrive、ストレージのクォータ、チャット、メンバーリストが備わっています。チームのオーナーはチームを削除することができます。管理者はメンバーを招待したりキックしたりすることができます。メンバーは、チームを退会することができます。", - "form_default": "ここに質問を入力", - "form_poll_switch": "行と列を入れ替える", - "settings_kanbanTagsHint": "複数のタグを選択したときにタグフィルターがどのように機能するかについて、「かつ」もしくは「または」から選択できます。「かつ」を選択すると、選択したタグを全て含むカードのみを表示し、「または」を選択すると、選択したタグのいずれかを含むカードを表示します。", - "notifications_cat_pads": "共有に関する通知", - "form_type_multicheck": "チェックボックス式グリッド", - "form_type_multiradio": "選択式グリッド", - "form_type_sort": "番号付きリスト", - "safeLinks_error": "このリンクはブラウザーのアドレスバーからコピーされており、ドキュメントにアクセスすることはできません。 共有メニューを使って、連絡先と直接ドキュメントを共有するか、リンクをコピーしてください。セーフリンク機能についてはこちらよりご確認ください。", - "team_cat_general": "チームについて", - "team_ownerConfirm": "共同オーナーはチームを変更もしくは削除したり、あなたをオーナーから削除したりすることができます。続行してよろしいですか?", - "owner_request_accepted": "{0}はあなたのリクエストを承諾し、「{1}」のオーナーになりました", - "team_acceptInvitation": "{0}がチーム「{1}」への招待を承諾しました", - "team_declineInvitation": "{0}がチーム「{1}」への招待を拒否しました", - "team_inviteLinkWarning": "このリンクにアクセスする最初の人は、このチームに参加して、コンテンツを閲覧することができます。リンクは慎重に共有してください。", - "team_inviteLinkTitle": "このチームへの招待状を好みに合わせて作成", - "team_inviteLinkTempName": "一時的な名前(招待の保留中リストに表示)", - "team_inviteLinkNoteMsg": "このメッセージは、チームに参加するかどうかを決める前に表示されます。", - "owner_removedPending": "{0}は「{1}」に関するオーナー権の申し出をキャンセルしました", - "team_pendingOwnerTitle": "この管理者はオーナー権の申し出を受諾していません。", - "team_rosterPromoteOwner": "オーナー権を提供", - "owner_removed": "{0}は「{1}」に関するあなたのオーナー権を削除しました", - "owner_request_declined": "{0}は「{1}」のオーナーになる依頼を拒否しました", - "team_demoteMeConfirm": "オーナー権を放棄しようとしています。これは取り消せません。よろしいですか?", - "share_noContactsNotLoggedIn": "ログインもしくは新規登録して、連絡先を確認するか新たに追加してください。", - "passwordFaqLink": "パスワードについて確認", - "share_embedPasswordAlert": "この項目はパスワードで保護されています。このドキュメントを埋め込む際、閲覧にはパスワードの入力が必要となります。", - "share_contactPasswordAlert": "この項目はパスワードで保護されています。CryptPadの連絡先と共有するため、相手がパスワードを入力する必要はありません。", - "share_linkPasswordAlert": "この項目はパスワードで保護されています。リンクを受け取った相手はパスワードを入力する必要があります。", - "register_notes_title": "重要な注意事項", - "teams_table_specificHint": "以前のバージョンの共有フォルダでは、閲覧者は既存のドキュメントを変更することができます。 これらのフォルダで作成またはコピーしたドキュメントには、標準の権限が与えられます。", - "broadcast_maintenance": "{0}から{1}の間でメンテナンスを予定しています。その間CryptPadは利用できません。", - "admin_archiveHint": "ドキュメントを破棄することなく、利用できないよう設定できます。「アーカイブ」フォルダに移動し、数日後に削除します(期間については設定ファイルより設定できます)。", - "admin_unarchiveHint": "アーカイブされたドキュメントを復元できます", - "admin_registrationTitle": "登録を締め切る", - "admin_defaultlimitHint": "ユーザー定義のルールが適用されていない際の最大のストレージ容量(ユーザーとチームについて)を設定できます", - "admin_limit": "現在の制限: {0}", - "admin_openFilesHint": "サーバー上で現在開いているファイル記述子の数", - "admin_support_premium": "プレミアムチケット:", - "admin_maintenanceHint": "このインスタンスのメンテナンスの日程を設定し、ユーザーに通知を送ることができます。メンテナンスの日程を複数設定することはできません。", - "admin_surveyHint": "外部サイトで行うアンケートのリンクを追加、更新、削除できます。ユーザーには通知が送信され、アンケートはユーザーのメニューから開くことができます。", - "broadcast_defaultLanguage": "この言語にフォールバック", - "admin_performanceProfilingHint": "サーバー側でコマンドを実行する際に掛かった合計時間の一覧です", - "admin_consentToContactHint": "サーバーのテレメトリーには、ソフトウェアや設定に関する重大な問題が発生した際に開発者が連絡できるよう、管理者の連絡先のメールアドレスが含まれます。メールアドレスが共有、売却、マーケティングの目的で使用されることはありません。サーバーに重大な問題が発生した際に連絡を希望する場合は、「同意する」にチェックを付けてください。", - "admin_removeDonateButtonHint": "CryptPadの開発の一部は、公的な助成金と寄付金によってまかなわれています。クラウドファンディングに関する宣伝をあなたのインスタンスで行うことで、開発者が万人のためにプラットフォームを改良することへの支援につながります。ただし、もし宣伝が不適切な場合は、宣伝を無効にすることもできます。", - "admin_performanceTimeHeading": "時間(秒)", - "team_maxTeams": "それぞれのユーザーアカウントがメンバーになることができるのは、最大{0}チームまでです。", - "team_listSlot": "利用可能なチームのスロット", - "resources_learnWhy": "ブロックした理由について", - "admin_purpose_business": "ビジネス・営利団体での使用", - "admin_purpose_education": "教育機関での使用", - "admin_purpose_org": "非営利団体・支援団体での使用", - "admin_purpose_personal": "個人利用、家族、友人との利用", - "burnAfterReading_linkBurnAfterReading": "一度だけ表示した後に自動で削除", - "feedback_about": "これを読んでいるのは、特定のアクションの実行時にCryptPadがウェブページのリクエストを送信している理由が気になるからだと思います。", - "burnAfterReading_warningLink": "ドキュメントを自動削除に設定しました。リンクを受け取った相手がリンクを開くと、ドキュメントは一度だけ表示され、その後削除されます。", - "burnAfterReading_warningAccess": "このドキュメントは自動的に削除されます。下のボタンをクリックするとコンテンツが自動的に表示され、その後で削除されます。ドキュメントを表示した後でウィンドウを閉じると、二度とドキュメントにアクセスすることはできません。準備ができていない場合は、ドキュメントを表示する前にこのウィンドウを閉じて、後ほどアクセスしてください。", - "form_sort_hint": "項目を優先順位(1が最も高く{0}が最も低い)に従って並べてください。", - "canvas_brush": "ペン", - "share_versionHash": "ドキュメントの選択したバージョンを閲覧モードで共有します。それにより、このドキュメントの全てのバージョンへの読み取り専用アクセスも可能になります。", - "history_cantRestore": "復元に失敗しました。接続が切れています。", - "todo_move": "タスクリストはCryptDriveのカンバン「{0}」に移動しました。", - "info_imprintFlavour": "このインスタンスの管理者に関する法的情報。", - "settings_safeLinkDefault": "セーフリンクは既定で有効になっています。ブラウザーのアドレスバーではなく、 共有メニューを使ってリンクをコピーしてください。", - "comments_notification": "{1}でのあなたのコメント「{0}」に対する返信", - "infobar_versionHash": "このドキュメントの過去のバージョンを閲覧しています({0})。", - "history_fastNext": "次の編集セッション", - "history_fastPrev": "以前の編集セッション", - "unableToDisplay": "ドキュメントを表示できません。Escキーを押してページの再読み込みを行ってください。問題が継続する場合は、サポートに連絡してください。", - "snapshots_cantMake": "スナップショットを作成できませんでした。接続が切れています。", - "snapshots_notFound": "ドキュメントの履歴が削除されたため、スナップショットは存在しません。", - "snapshot_error_exists": "このバージョンのスナップショットは既に存在します", - "calendar_dateTimeRange": "{0} {1} - {2}", - "toolbar_degraded": "現在{0}人以上がこのドキュメントを編集しています。パフォーマンスの改善のため、ユーザーリストとチャットを無効に設定しました。", - "oo_lostEdits": "新しいデータと同期したため、保存されていない編集箇所を復元することができませんでした。", - "pad_settings_comments": "コメントを既定で表示するか隠すかを選択してください。", - "pad_settings_outline": "目次を既定で表示するか隠すかを選択してください。", - "pad_settings_width_large": "最大幅", - "offlineError": "データを同期できないため、このページは現在表示できません。サービスへの接続が復旧すると読み込みを継続します。", - "share_noContactsOffline": "現在オフラインです。連絡先にアクセスすることはできません。", - "access_offline": "現在オフラインです。管理画面にアクセスすることはできません。", - "admin_support_last": "アップデートした日時: ", - "admin_support_first": "作成日時: ", - "contacts_confirmCancel": "{0}との連絡先リクエストをキャンセルしてよろしいですか?", - "history_trimPrompt": "このドキュメントは{0}の履歴があり、読み込みを遅くしている恐れがあります。必要でない場合は、履歴の削除を検討してください。", - "reminder_date": "{0}が{1}にあります", - "calendar_more": "あと{0}個", - "reminder_time": "{0}が今日の{1}にあります", - "form_answerWarning": "本人であることが確認されていません", - "team_leaveOwner": "チームから退出する前に、オーナーの役割から降格してください。チームには最低1人以上のオーナーが必要です。あなたが唯一のオーナーの場合は、別のオーナーを追加してください。", - "form_exportCSV": "CSVにエクスポート", - "fm_link_new": "新しいリンク", - "notification_openLink": "{1}からリンク「 {0}」を受け取りました:", - "fm_link_type": "リンク", - "fm_link_url": "URL", - "fm_link_name": "リンク名", - "form_anonName": "あなたの名前", - "notification_linkShared": "{0}があなたとリンクを共有しました: {1}", - "fm_link_name_placeholder": "あなたのリンク", - "fm_link_warning": "注意:URLが200字を超えています", - "fm_link_invalid": "URLが無効です", - "form_answerAs": "名前を記入してください", - "form_totalResponses": "回答数:{0}", - "ui_expand": "広げる", - "ui_collapse": "折りたたむ", - "support_premiumPriority": "プレミアムユーザーになると、CryptPadの使い勝手を改良する手助けができるほか、サポートチケットに対する優先サポートを受けることができます。", - "support_premiumLink": "定額利用のオプションを表示", - "toolbar_collapse": "ツールバーをたたむ", - "toolbar_expand": "ツールバーを広げる", - "form_preview": "フォームをプレビュー", - "form_geturl": "リンクをコピー", - "form_viewAnswer": "回答を表示", - "form_editAnswer": "回答を編集", - "form_preview_button": "プレビュー", - "upload_addOptionalAlt": "説明文を追加(任意)", - "upload_modal_alt": "代替テキスト", - "form_authAnswer": "このフォームは匿名では送信できません", - "form_anonAnswer": "このフォームへの回答は匿名化されています", - "form_viewAllAnswers": "全ての回答を表示({0})", - "form_condition_v": "値を選択", - "form_condition_q": "質問を選択", - "form_makeAnon": "回答を匿名化", - "toolbar_preview": "プレビュー", - "form_required_off": "任意", - "form_required_on": "必須", - "form_colors": "テーマの色", - "profile_defaultAlt": "既定のプロフィール画像", - "userlist_visitProfile": "プロフィールを表示", - "form_addMsg": "送信時のメッセージを追加", - "form_updateMsg": "送信時のメッセージを変更", - "form_corruptAnswers": "このフォームには既に回答があります。設問の種類を変更すると、回答のデータが無効になる恐れがあります。", - "form_changeTypeConfirm": "新しい設問の種類を選択してください。", - "form_required_answer": "回答: ", - "form_requiredWarning": "以下の設問は回答が必須です:", - "form_alreadyAnswered": "このフォームに{0}に回答しました", - "form_conditional_hint": "このセクションを秘密にするには、その上に選択あるいはチェックボックスの設問を追加してください", - "form_editable": "送信後の編集", - "form_responseMsg": "参加者がフォームを送信すると以下のメッセージが表示されます。", - "form_type_section": "条件のセクション", - "earlyAccessBlocked": "このアプリケーションは、このインスタンスではまだ利用できません", - "download_step3": "変換しています…", - "fc_openIn": "{0}で開く", - "creation_new": "新しい{0}", - "form_conditional": "このセクションを表示する条件:", - "premiumAccess": "あなたは{0}の定期利用ユーザーであるため、このアプリケーションで新しいドキュメントを作成することができます。このアプリケーションは試験段階です。重要なデータの取り扱いにはご注意ください。", - "premiumOnly": "このアプリケーションによる新しいドキュメントの作成は、現在、{0}の定額利用ユーザーに限定されています。これはテストを目的とした、試験段階のアプリケーションです。今後{0}の全ユーザー向けに公開される予定となっています。", - "form_answerChoice": "このフォームへの回答方法を選択してください:", - "form_exportSheet": "シートにエクスポート", - "form_conditional_addAnd": "「かつ」の条件を追加", - "form_conditional_add": "「あるいは」の条件を追加", - "form_condition_isnot": "等しくない", - "form_condition_is": "等しい", - "form_template_poll": "スケジュールの投票のテンプレート", - "bounce_danger": "クリックしたリンクは、ウェブページではなく、悪質かもしれないコードやデータに結びついています。\n\n(\"{0}\")\n\nセキュリティー上の理由で、CryptPadはこのデータをブロックしています。OKをクリックするとタブが閉じます。", - "bounce_confirm": "このページから退出しようとしています: {0}\n\n次のページを開いてよろしいですか?:{1}", - "form_condition_hasnot": "含まない", - "form_condition_has": "含む", - "admin_archiveNote": "メモ", - "ui_saved": "{0}保存済", - "ui_openDirectly": "この機能は、CryptPadが別のウェブサイトに埋め込まれている場合は利用できません。このドキュメントを新しいタブで開きますか?", - "support_cat_abuse": "悪用を報告", - "support_cat_document": "ドキュメント", - "support_cat_drives": "ドライブまたはチーム", - "support_warning_other": "問題の性質は何でしょうか?関連する情報をできるだけ多く提供していただけると、問題の早期解決につながる可能性が高まります", - "support_warning_abuse": "利用規約に違反しているコンテンツを報告してください。問題のドキュメントあるいはユーザーのプロフィールへのリンクを提供し、違反の内容を記入してください。どのようにこのコンテンツを発見したか、また、それがどう振る舞うかについての情報を追加で提供すると、管理者が、今後同様の違反を起こらないようにするのを助けることができます", - "support_warning_bug": "どのブラウザーで問題が生じているか、また、拡張機能をインストールしているかを指定してください。できるだけ詳細な情報と、問題を再現する過程を提供してください", - "support_warning_document": "どのドキュメントの種類が問題の原因であるかを特定し、ドキュメントの識別子あるいはリンクを提供してください", - "support_warning_drives": "管理者は、名称でフォルダやドキュメントを特定することができません。共有フォルダの場合は、ドキュメントの識別子を提供してください", - "support_warning_account": "管理者にパスワードを再設定することはできません。ログイン情報を無くしてしまった場合、ログイン中であれば、新しいアカウントにデータを移行することができます", - "support_warning_prompt": "問題に最も関係のあるカテゴリーを選択してください。管理者による問題の分類と、どの情報を提供すべきかについての提案に役立ちます", - "info_sourceFlavour": "CryptPadのソースコード", - "info_termsFlavour": "このインスタンスの利用規約", - "footer_source": "ソースコード", - "admin_jurisdictionHint": "このインスタンスの暗号化されたデータが保管されている国", - "admin_jurisdictionTitle": "運営されている場所", - "admin_descriptionHint": "cryptpad.orgにある公開インスタンスのリストに表示される、このインスタンスの説明文", - "admin_descriptionTitle": "インスタンスの説明文", - "admin_nameHint": "cryptpad.orgにある公開インスタンスのリストに表示される、このインスタンスの名称", - "admin_nameTitle": "インスタンス名", - "error_incorrectAccess": "このページは{0}からのみアクセスできます。", - "error_embeddingDisabledSpecific": "このCryptPadのアプリケーションでは埋め込みが許可されていません。", - "error_embeddingDisabled": "このCryptPadのインスタンスでは埋め込みが許可されていません", - "admin_enableembedsHint": "このインスタンスのドキュメントやメディアファイルを他のウェブサイトに埋め込むことを許可します。この設定を有効にすると、共有メニューで「埋め込み」のオプションが表示されます。セキュリティー上の観点から、OnlyOfficeを使用するアプリケーション(スプレッドシート、ドキュメント、プレゼンテーション)の埋め込みを許可することはできません。", - "admin_enableembedsTitle": "サーバー外での埋め込みを許可", - "ui_ms": "ミリ秒", - "admin_setDuration": "時間を設定", - "admin_bytesWrittenHint": "ディスクパフォーマンスの計測を有効にした場合は、以下で実行する時間を設定できます。", - "admin_bytesWrittenTitle": "ディスクパフォーマンスの計測時間", - "admin_enableDiskMeasurementsHint": "有効にすると、JSON APIのエンドポイントが/api/profilingにて公開されます。以下の時間設定にあわせて、ディスクのI/Oを継続的に計測します。この設定はサーバーのパフォーマンスに影響を与えるおそれがあり、また、機密情報が漏洩する可能性があります。この設定の意味を理解していない場合は、この設定を無効にしておくことを推奨します。", - "admin_enableDiskMeasurementsTitle": "ディスクのパフォーマンスを計測", - "admin_infoNotice2": "詳細は「ネットワーク」タブからご確認ください。", - "admin_infoNotice1": "以下にインスタンスの説明を記入してください。記入した情報はインスタンスのフロントページに表示されます。CryptPadの公開インスタンスのリストに表示する場合、サーバーのテレメトリーの一部としても送信されます。", - "admin_reviewCheckupNotice": "チェック用のページを確認して、このインスタンスが正しく設定されていることをご確認ください。", - "admin_cacheEvictionRequired": "サーバーは新しい設定でアップデートされました。キャッシュの消去ボタンを使用して、この変更を全てのユーザーに適用してください。", - "fivehundred_internalServerError": "内部サーバーエラー", - "support_debuggingDataHint": "作成するサポートチケットには以下の情報が含まれます。その情報から管理者があなたの暗号化されたドキュメントにアクセスすることはできません。以下の情報は、管理者だけが読めるように暗号化されます。", - "support_debuggingDataTitle": "アカウントのデバッグ用の情報", - "support_cat_debugging": "デバッグデータ", - "register_instance": "{0}でアカウントを作成", - "login_instance": "{0}のアカウントと接続", - "home_location": "暗号化されたデータは{0}に保存されています。", - "footer_website": "プロジェクトのウェブサイト", - "ui_experimental": "この機能は試験中です。", - "ui_restore": "復元", - "ui_archive": "アーカイブ", - "ui_undefined": "不明", - "admin_documentType": "ドキュメントの種類", - "admin_documentMetadataTitle": "ドキュメントの情報", - "admin_documentMetadataHint": "IDもしくはURLでドキュメントあるいはファイルを検索", - "admin_documentModifiedTime": "最新更新日時", - "admin_accountMetadataPlaceholder": "ユーザーID(署名用の公開鍵)", - "admin_storageUsage": "保存されたデータ", - "admin_planName": "プラン名", - "admin_currentlyOnline": "は現在オンラインです", - "admin_channelCount": "ドキュメント数", - "admin_fileCount": "ファイル数", - "admin_archiveDocument": "ドキュメントをアーカイブ", - "admin_restoreDocument": "ドキュメントを復元", - "admin_planlimit": "ストレージの制限", - "admin_documentMetadataPlaceholder": "ドキュメントのURLあるいはID", - "admin_channelArchived": "アーカイブ済", - "admin_channelAvailable": "利用可能", - "admin_documentCreationTime": "作成", - "admin_documentMetadata": "現在のメタデータ", - "admin_documentSize": "ドキュメントのサイズ", - "admin_accountMetadataTitle": "アカウントの情報", - "ui_fetch": "取得", - "ui_none": "無し", - "ui_false": "偽", - "ui_true": "真", - "ui_confirm": "確認", - "ui_success": "成功", - "ui_generateReport": "レポートを生成", - "admin_generatedAt": "レポートのタイムスタンプ", - "admin_cat_database": "データベース", - "admin_uptimeHint": "サーバーが起動した日時", - "admin_uptimeTitle": "起動時間", - "home_morestorage": "より多くのストレージ容量が必要な場合:", - "admin_noticeTitle": "トップページでの通知", - "admin_noticeHint": "トップページに表示するメッセージ(オプション)", - "error_evalPermitted": "evalが許可されないため、中止します。\n\nこのエラーはContent-Security-Policyのヘッダーに関係しています。理由は、ヘッダーをサポートしない旧バージョンのブラウザー、適切な動作を防ぐブラウザーの拡張機能のため、もしくは、このCryptPadのインスタンスが適切に設定されていないことが考えられます。", - "admin_pinLogAvailable": "ピンのログは利用可能です", - "admin_pinLogArchived": "ピンのログはアーカイブされています", - "admin_blockMetadataHint": "ログインブロックは、CryptPadにログインするためのユーザー名とパスワードの組み合わせのことです", - "admin_blockMetadataTitle": "ログインブロックに関する情報", - "admin_accountMetadataHint": "ユーザーの公開鍵を入力すると、ユーザーのアカウントに関するデータを取得できます。", - "admin_reportContent": "内容を報告", - "admin_getRawMetadata": "メタデータの履歴", - "admin_restoreArchivedPins": "アーカイブ済のピンログを復元", - "admin_archivePinLog": "このアカウントのピンログをアーカイブ", - "admin_getPinList": "現在のピンリスト", - "admin_note": "プランのメモ", - "og_encryptedAppType": "暗号化された {0}", - "og_features": "{0} 機能", - "og_pricing": "{0} 料金", - "og_contact": "{0} 連絡先", - "ui_jsRequired": "ブラウザーで暗号化を行うにはJavaScriptが有効になっている必要があります", - "og_register": "{0}でアカウントを登録", - "og_login": "{0}にログイン", - "og_default": "CryptPad:エンドツーエンド暗号化コラボレーションスイート", - "og_teamDrive": "チームドライブ", - "admin_restoreBlock": "アーカイブ済のブロックを復元", - "admin_archiveBlock": "ブロックをアーカイブ", - "admin_blockArchived": "ブロックはアーカイブされています", - "admin_blockAvailable": "ブロックは利用可能です", - "admin_blockKey": "ブロックの公開鍵", - "admin_blockMetadataPlaceholder": "ブロックの絶対または相対URL", - "admin_restoreReason": "復元の理由を指定し、確認して続行してください", - "admin_archiveReason": "アーカイブの理由を指定し、確認して続行してください" -} From 8862e59ebcde99fcc52a4299ea90123296fdde6c Mon Sep 17 00:00:00 2001 From: yflory Date: Fri, 20 Oct 2023 18:21:57 +0200 Subject: [PATCH 09/73] lint compliance --- www/common/outer/local-store.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/outer/local-store.js b/www/common/outer/local-store.js index 845a6393a..e24def355 100644 --- a/www/common/outer/local-store.js +++ b/www/common/outer/local-store.js @@ -47,7 +47,7 @@ define([ return hash; }; - var getUserHash = LocalStore.getUserHash = function () { + LocalStore.getUserHash = function () { var hash = localStorage[Constants.userHashKey]; if (['undefined', 'undefined/'].indexOf(hash) !== -1) { From fd52f206aa481ec3b1451bffeab20a1b3be017f8 Mon Sep 17 00:00:00 2001 From: David Benque Date: Fri, 20 Oct 2023 17:29:48 +0100 Subject: [PATCH 10/73] WIP on www/lib licenses leaving some errors in `reuse lint` to track unresolved questions --- .reuse/dep5 | 20 +- LICENSES/BSD-3-Clause.txt | 11 + LICENSES/MPL-2.0.txt | 373 +++++++++++++++++++++++ www/lib/asciidoctor/asciidoctor.min.js | 5 + www/lib/calendar/tui-calendar.min.css | 3 + www/lib/calendar/tui-calendar.min.js | 3 + www/lib/calendar/tui-code-snippet.min.js | 3 + www/lib/changelog.md | 6 + www/lib/datepicker/flatpickr.js | 2 + www/lib/datepicker/flatpickr.min.css | 2 + www/lib/highlight/highlight.pack.js | 2 + www/lib/ical.min.js | 2 + www/lib/jquery-ui/jquery-ui.min.css | 1 + www/lib/jquery-ui/jquery-ui.min.js | 1 + www/lib/less.min.js | 3 +- www/lib/markmap/transform.min.js | 1 + www/lib/markmap/view.min.js | 1 + 17 files changed, 430 insertions(+), 9 deletions(-) create mode 100644 LICENSES/BSD-3-Clause.txt create mode 100644 LICENSES/MPL-2.0.txt diff --git a/.reuse/dep5 b/.reuse/dep5 index 75817642a..30d228250 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -19,20 +19,24 @@ Files: www/common/onlyoffice/* Copyright: ignoring this for now License: MIT -Files: www/components/* -Copyright: Respective copyright holders -License: MIT - -Files: www/lib/* -Copyright: Respective copyright holders -License: MIT - Files: www/common/theme/* Copyright: temporary License: MIT ## Dependencies +Files: www/lib/mermaid/* +Copyright: (c) 2014 - 2021 Knut Sveidqvist +License: MIT + +Files: www/lib/pdfjs/* +Copyright: 2017 Mozilla Foundation +License: Apache-2.0 + +Files: www/lib/rangy +Copyright: 2015, Tim Down +License: MIT + Files: www/pad/mathjax/* Copyright: 2009-2018 The MathJax Consortium License: Apache-2.0 diff --git a/LICENSES/BSD-3-Clause.txt b/LICENSES/BSD-3-Clause.txt new file mode 100644 index 000000000..ea890afbc --- /dev/null +++ b/LICENSES/BSD-3-Clause.txt @@ -0,0 +1,11 @@ +Copyright (c) . + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSES/MPL-2.0.txt b/LICENSES/MPL-2.0.txt new file mode 100644 index 000000000..ee6256cdb --- /dev/null +++ b/LICENSES/MPL-2.0.txt @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at https://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/www/lib/asciidoctor/asciidoctor.min.js b/www/lib/asciidoctor/asciidoctor.min.js index 2e95798fa..1e0cb3586 100644 --- a/www/lib/asciidoctor/asciidoctor.min.js +++ b/www/lib/asciidoctor/asciidoctor.min.js @@ -1,3 +1,8 @@ +// SPDX-FileCopyrightText: Copyright (C) 2014-2020 Dan Allen, Guillaume Grossetie, Anthonny Quérouil and the Asciidoctor Project +// +// SPDX-License-Identifier: MIT + + /* Asciidoctor.js 2.2.6 | MIT | https://github.com/asciidoctor/asciidoctor.js */ diff --git a/www/lib/calendar/tui-calendar.min.css b/www/lib/calendar/tui-calendar.min.css index 786e00cd6..4d00bc4f0 100644 --- a/www/lib/calendar/tui-calendar.min.css +++ b/www/lib/calendar/tui-calendar.min.css @@ -1,3 +1,6 @@ +/* SPDX-FileCopyrightText: NHN FE Development Lab */ +/* SPDX-License-Identifier: MIT */ + /*! * TOAST UI Calendar * @version 1.13.0 | Wed Dec 23 2020 diff --git a/www/lib/calendar/tui-calendar.min.js b/www/lib/calendar/tui-calendar.min.js index 2fef47389..62c3c6417 100644 --- a/www/lib/calendar/tui-calendar.min.js +++ b/www/lib/calendar/tui-calendar.min.js @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: NHN FE Development Lab +// SPDX-License-Identifier: MIT + /*! * TOAST UI Calendar * @version 1.13.0 | Wed Dec 23 2020 diff --git a/www/lib/calendar/tui-code-snippet.min.js b/www/lib/calendar/tui-code-snippet.min.js index 112f040b7..3f0bf33ce 100644 --- a/www/lib/calendar/tui-code-snippet.min.js +++ b/www/lib/calendar/tui-code-snippet.min.js @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: NHN FE Development Lab +// SPDX-License-Identifier: MIT + /*! * tui-code-snippet.min.js * @version 1.5.2 diff --git a/www/lib/changelog.md b/www/lib/changelog.md index 7b2b5b1a5..fcd256886 100644 --- a/www/lib/changelog.md +++ b/www/lib/changelog.md @@ -1,3 +1,9 @@ + + This file is intended to be used as a log of what third-party source we have vendored, where we got it, and what modifications we have made to it (if any). * [turndown v7.1.1](https://github.com/mixmark-io/turndown/releases/tag/v7.1.1) built from unmodified source as per its build scripts. diff --git a/www/lib/datepicker/flatpickr.js b/www/lib/datepicker/flatpickr.js index 345297fa1..b97c30179 100644 --- a/www/lib/datepicker/flatpickr.js +++ b/www/lib/datepicker/flatpickr.js @@ -1,2 +1,4 @@ +// SPDX-License-Identifier: MIT + /* flatpickr v4.6.9,, @license MIT */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).flatpickr=t()}(this,(function(){"use strict";var e=function(){return(e=Object.assign||function(e){for(var t,n=1,a=arguments.length;n",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},i={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var t=e%100;if(t>3&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},o=function(e,t){return void 0===t&&(t=2),("000"+e).slice(-1*t)},r=function(e){return!0===e?1:0};function l(e,t){var n;return function(){var a=this;clearTimeout(n),n=setTimeout((function(){return e.apply(a,arguments)}),t)}}var c=function(e){return e instanceof Array?e:[e]};function d(e,t,n){if(!0===n)return e.classList.add(t);e.classList.remove(t)}function s(e,t,n){var a=window.document.createElement(e);return t=t||"",n=n||"",a.className=t,void 0!==n&&(a.textContent=n),a}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function f(e,t){return t(e)?e:e.parentNode?f(e.parentNode,t):void 0}function m(e,t){var n=s("div","numInputWrapper"),a=s("input","numInput "+e),i=s("span","arrowUp"),o=s("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?a.type="number":(a.type="text",a.pattern="\\d*"),void 0!==t)for(var r in t)a.setAttribute(r,t[r]);return n.appendChild(a),n.appendChild(i),n.appendChild(o),n}function g(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(t){return e.target}}var p=function(){},h=function(e,t,n){return n.months[t?"shorthand":"longhand"][e]},v={D:p,F:function(e,t,n){e.setMonth(n.months.longhand.indexOf(t))},G:function(e,t){e.setHours(parseFloat(t))},H:function(e,t){e.setHours(parseFloat(t))},J:function(e,t){e.setDate(parseFloat(t))},K:function(e,t,n){e.setHours(e.getHours()%12+12*r(new RegExp(n.amPM[1],"i").test(t)))},M:function(e,t,n){e.setMonth(n.months.shorthand.indexOf(t))},S:function(e,t){e.setSeconds(parseFloat(t))},U:function(e,t){return new Date(1e3*parseFloat(t))},W:function(e,t,n){var a=parseInt(t),i=new Date(e.getFullYear(),0,2+7*(a-1),0,0,0,0);return i.setDate(i.getDate()-i.getDay()+n.firstDayOfWeek),i},Y:function(e,t){e.setFullYear(parseFloat(t))},Z:function(e,t){return new Date(t)},d:function(e,t){e.setDate(parseFloat(t))},h:function(e,t){e.setHours(parseFloat(t))},i:function(e,t){e.setMinutes(parseFloat(t))},j:function(e,t){e.setDate(parseFloat(t))},l:p,m:function(e,t){e.setMonth(parseFloat(t)-1)},n:function(e,t){e.setMonth(parseFloat(t)-1)},s:function(e,t){e.setSeconds(parseFloat(t))},u:function(e,t){return new Date(parseFloat(t))},w:p,y:function(e,t){e.setFullYear(2e3+parseFloat(t))}},D={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},w={Z:function(e){return e.toISOString()},D:function(e,t,n){return t.weekdays.shorthand[w.w(e,t,n)]},F:function(e,t,n){return h(w.n(e,t,n)-1,!1,t)},G:function(e,t,n){return o(w.h(e,t,n))},H:function(e){return o(e.getHours())},J:function(e,t){return void 0!==t.ordinal?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:function(e,t){return t.amPM[r(e.getHours()>11)]},M:function(e,t){return h(e.getMonth(),!0,t)},S:function(e){return o(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,t,n){return n.getWeek(e)},Y:function(e){return o(e.getFullYear(),4)},d:function(e){return o(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return o(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:function(e){return o(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var t=e.config,n=void 0===t?a:t,o=e.l10n,r=void 0===o?i:o,l=e.isMobile,c=void 0!==l&&l;return function(e,t,a){var i=a||r;return void 0===n.formatDate||c?t.split("").map((function(t,a,o){return w[t]&&"\\"!==o[a-1]?w[t](e,i,n):"\\"!==t?t:""})).join(""):n.formatDate(e,t,i)}},C=function(e){var t=e.config,n=void 0===t?a:t,o=e.l10n,r=void 0===o?i:o;return function(e,t,i,o){if(0===e||e){var l,c=o||r,d=e;if(e instanceof Date)l=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)l=new Date(e);else if("string"==typeof e){var s=t||(n||a).dateFormat,u=String(e).trim();if("today"===u)l=new Date,i=!0;else if(/Z$/.test(u)||/GMT$/.test(u))l=new Date(e);else if(n&&n.parseDate)l=n.parseDate(e,s);else{l=n&&n.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var f=void 0,m=[],g=0,p=0,h="";g=0?new Date:new Date(w.config.minDate.getTime()),n=x(w.config);t.setHours(n.hours,n.minutes,n.seconds,t.getMilliseconds()),w.selectedDates=[t],w.latestSelectedDateObj=t}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var t="keydown"===e.type,n=g(e),a=n;void 0!==w.amPM&&n===w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]);var i=parseFloat(a.getAttribute("min")),l=parseFloat(a.getAttribute("max")),c=parseFloat(a.getAttribute("step")),d=parseInt(a.value,10),s=e.delta||(t?38===e.which?1:-1:0),u=d+c*s;if(void 0!==a.value&&2===a.value.length){var f=a===w.hourElement,m=a===w.minuteElement;ul&&(u=a===w.hourElement?u-l-r(!w.amPM):i,m&&j(void 0,1,w.hourElement)),w.amPM&&f&&(1===c?u+d===23:Math.abs(u-d)>c)&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]),a.value=o(u)}}(e);var a=w._input.value;S(),be(),w._input.value!==a&&w._debouncedChange()}function S(){if(void 0!==w.hourElement&&void 0!==w.minuteElement){var e,t,n=(parseInt(w.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(w.minuteElement.value,10)||0)%60,i=void 0!==w.secondElement?(parseInt(w.secondElement.value,10)||0)%60:0;void 0!==w.amPM&&(e=n,t=w.amPM.textContent,n=e%12+12*r(t===w.l10n.amPM[1]));var o=void 0!==w.config.minTime||w.config.minDate&&w.minDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.minDate,!0);if(void 0!==w.config.maxTime||w.config.maxDate&&w.maxDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.maxDate,!0)){var l=void 0!==w.config.maxTime?w.config.maxTime:w.config.maxDate;(n=Math.min(n,l.getHours()))===l.getHours()&&(a=Math.min(a,l.getMinutes())),a===l.getMinutes()&&(i=Math.min(i,l.getSeconds()))}if(o){var c=void 0!==w.config.minTime?w.config.minTime:w.config.minDate;(n=Math.max(n,c.getHours()))===c.getHours()&&a=12)]),void 0!==w.secondElement&&(w.secondElement.value=o(n)))}function F(e){var t=g(e),n=parseInt(t.value)+(e.delta||0);(n/1e3>1||"Enter"===e.key&&!/[^\d]/.test(n.toString()))&&Q(n)}function A(e,t,n,a){return t instanceof Array?t.forEach((function(t){return A(e,t,n,a)})):e instanceof Array?e.forEach((function(e){return A(e,t,n,a)})):(e.addEventListener(t,n,a),void w._handlers.push({remove:function(){return e.removeEventListener(t,n)}}))}function N(){pe("onChange")}function P(e,t){var n=void 0!==e?w.parseDate(e):w.latestSelectedDateObj||(w.config.minDate&&w.config.minDate>w.now?w.config.minDate:w.config.maxDate&&w.config.maxDate=0&&M(e,w.selectedDates[1])<=0)}(t)&&!ve(t)&&o.classList.add("inRange"),w.weekNumbers&&1===w.config.showMonths&&"prevMonthDay"!==e&&n%7==1&&w.weekNumbers.insertAdjacentHTML("beforeend",""+w.config.getWeek(t)+""),pe("onDayCreate",o),o}function L(e){e.focus(),"range"===w.config.mode&&ae(e)}function W(e){for(var t=e>0?0:w.config.showMonths-1,n=e>0?w.config.showMonths:-1,a=t;a!=n;a+=e)for(var i=w.daysContainer.children[a],o=e>0?0:i.children.length-1,r=e>0?i.children.length:-1,l=o;l!=r;l+=e){var c=i.children[l];if(-1===c.className.indexOf("hidden")&&X(c.dateObj))return c}}function R(e,t){var n=ee(document.activeElement||document.body),a=void 0!==e?e:n?document.activeElement:void 0!==w.selectedDateElem&&ee(w.selectedDateElem)?w.selectedDateElem:void 0!==w.todayDateElem&&ee(w.todayDateElem)?w.todayDateElem:W(t>0?1:-1);void 0===a?w._input.focus():n?function(e,t){for(var n=-1===e.className.indexOf("Month")?e.dateObj.getMonth():w.currentMonth,a=t>0?w.config.showMonths:-1,i=t>0?1:-1,o=n-w.currentMonth;o!=a;o+=i)for(var r=w.daysContainer.children[o],l=n-w.currentMonth===o?e.$i+t:t<0?r.children.length-1:0,c=r.children.length,d=l;d>=0&&d0?c:-1);d+=i){var s=r.children[d];if(-1===s.className.indexOf("hidden")&&X(s.dateObj)&&Math.abs(e.$i-d)>=Math.abs(t))return L(s)}w.changeMonth(i),R(W(i),0)}(a,t):L(a)}function B(e,t){for(var n=(new Date(e,t,1).getDay()-w.l10n.firstDayOfWeek+7)%7,a=w.utils.getDaysInMonth((t-1+12)%12,e),i=w.utils.getDaysInMonth(t,e),o=window.document.createDocumentFragment(),r=w.config.showMonths>1,l=r?"prevMonthDay hidden":"prevMonthDay",c=r?"nextMonthDay hidden":"nextMonthDay",d=a+1-n,u=0;d<=a;d++,u++)o.appendChild(H(l,new Date(e,t-1,d),d,u));for(d=1;d<=i;d++,u++)o.appendChild(H("",new Date(e,t,d),d,u));for(var f=i+1;f<=42-n&&(1===w.config.showMonths||u%7!=0);f++,u++)o.appendChild(H(c,new Date(e,t+1,f%i),f,u));var m=s("div","dayContainer");return m.appendChild(o),m}function J(){if(void 0!==w.daysContainer){u(w.daysContainer),w.weekNumbers&&u(w.weekNumbers);for(var e=document.createDocumentFragment(),t=0;t1||"dropdown"!==w.config.monthSelectorType)){var e=function(e){return!(void 0!==w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&ew.config.maxDate.getMonth())};w.monthsDropdownContainer.tabIndex=-1,w.monthsDropdownContainer.innerHTML="";for(var t=0;t<12;t++)if(e(t)){var n=s("option","flatpickr-monthDropdown-month");n.value=new Date(w.currentYear,t).getMonth().toString(),n.textContent=h(t,w.config.shorthandCurrentMonth,w.l10n),n.tabIndex=-1,w.currentMonth===t&&(n.selected=!0),w.monthsDropdownContainer.appendChild(n)}}}function U(){var e,t=s("div","flatpickr-month"),n=window.document.createDocumentFragment();w.config.showMonths>1||"static"===w.config.monthSelectorType?e=s("span","cur-month"):(w.monthsDropdownContainer=s("select","flatpickr-monthDropdown-months"),w.monthsDropdownContainer.setAttribute("aria-label",w.l10n.monthAriaLabel),A(w.monthsDropdownContainer,"change",(function(e){var t=g(e),n=parseInt(t.value,10);w.changeMonth(n-w.currentMonth),pe("onMonthChange")})),K(),e=w.monthsDropdownContainer);var a=m("cur-year",{tabindex:"-1"}),i=a.getElementsByTagName("input")[0];i.setAttribute("aria-label",w.l10n.yearAriaLabel),w.config.minDate&&i.setAttribute("min",w.config.minDate.getFullYear().toString()),w.config.maxDate&&(i.setAttribute("max",w.config.maxDate.getFullYear().toString()),i.disabled=!!w.config.minDate&&w.config.minDate.getFullYear()===w.config.maxDate.getFullYear());var o=s("div","flatpickr-current-month");return o.appendChild(e),o.appendChild(a),n.appendChild(o),t.appendChild(n),{container:t,yearElement:i,monthElement:e}}function q(){u(w.monthNav),w.monthNav.appendChild(w.prevMonthNav),w.config.showMonths&&(w.yearElements=[],w.monthElements=[]);for(var e=w.config.showMonths;e--;){var t=U();w.yearElements.push(t.yearElement),w.monthElements.push(t.monthElement),w.monthNav.appendChild(t.container)}w.monthNav.appendChild(w.nextMonthNav)}function $(){w.weekdayContainer?u(w.weekdayContainer):w.weekdayContainer=s("div","flatpickr-weekdays");for(var e=w.config.showMonths;e--;){var t=s("div","flatpickr-weekdaycontainer");w.weekdayContainer.appendChild(t)}return z(),w.weekdayContainer}function z(){if(w.weekdayContainer){var e=w.l10n.firstDayOfWeek,n=t(w.l10n.weekdays.shorthand);e>0&&e\n "+n.join("")+"\n \n "}}function G(e,t){void 0===t&&(t=!0);var n=t?e:e-w.currentMonth;n<0&&!0===w._hidePrevMonthArrow||n>0&&!0===w._hideNextMonthArrow||(w.currentMonth+=n,(w.currentMonth<0||w.currentMonth>11)&&(w.currentYear+=w.currentMonth>11?1:-1,w.currentMonth=(w.currentMonth+12)%12,pe("onYearChange"),K()),J(),pe("onMonthChange"),De())}function V(e){return!(!w.config.appendTo||!w.config.appendTo.contains(e))||w.calendarContainer.contains(e)}function Z(e){if(w.isOpen&&!w.config.inline){var t=g(e),n=V(t),a=t===w.input||t===w.altInput||w.element.contains(t)||e.path&&e.path.indexOf&&(~e.path.indexOf(w.input)||~e.path.indexOf(w.altInput)),i="blur"===e.type?a&&e.relatedTarget&&!V(e.relatedTarget):!a&&!n&&!V(e.relatedTarget),o=!w.config.ignoredFocusElements.some((function(e){return e.contains(t)}));i&&o&&(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement&&""!==w.input.value&&void 0!==w.input.value&&I(),w.close(),w.config&&"range"===w.config.mode&&1===w.selectedDates.length&&(w.clear(!1),w.redraw()))}}function Q(e){if(!(!e||w.config.minDate&&ew.config.maxDate.getFullYear())){var t=e,n=w.currentYear!==t;w.currentYear=t||w.currentYear,w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth=Math.min(w.config.maxDate.getMonth(),w.currentMonth):w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&(w.currentMonth=Math.max(w.config.minDate.getMonth(),w.currentMonth)),n&&(w.redraw(),pe("onYearChange"),K())}}function X(e,t){var n;void 0===t&&(t=!0);var a=w.parseDate(e,void 0,t);if(w.config.minDate&&a&&M(a,w.config.minDate,void 0!==t?t:!w.minDateHasTime)<0||w.config.maxDate&&a&&M(a,w.config.maxDate,void 0!==t?t:!w.maxDateHasTime)>0)return!1;if(!w.config.enable&&0===w.config.disable.length)return!0;if(void 0===a)return!1;for(var i=!!w.config.enable,o=null!==(n=w.config.enable)&&void 0!==n?n:w.config.disable,r=0,l=void 0;r=l.from.getTime()&&a.getTime()<=l.to.getTime())return i}return!i}function ee(e){return void 0!==w.daysContainer&&(-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&w.daysContainer.contains(e))}function te(e){!(e.target===w._input)||!(w.selectedDates.length>0||w._input.value.length>0)||e.relatedTarget&&V(e.relatedTarget)||w.setDate(w._input.value,!0,e.target===w.altInput?w.config.altFormat:w.config.dateFormat)}function ne(e){var t=g(e),n=w.config.wrap?p.contains(t):t===w._input,a=w.config.allowInput,i=w.isOpen&&(!a||!n),o=w.config.inline&&n&&!a;if(13===e.keyCode&&n){if(a)return w.setDate(w._input.value,!0,t===w.altInput?w.config.altFormat:w.config.dateFormat),t.blur();w.open()}else if(V(t)||i||o){var r=!!w.timeContainer&&w.timeContainer.contains(t);switch(e.keyCode){case 13:r?(e.preventDefault(),I(),se()):ue(e);break;case 27:e.preventDefault(),se();break;case 8:case 46:n&&!w.config.allowInput&&(e.preventDefault(),w.clear());break;case 37:case 39:if(r||n)w.hourElement&&w.hourElement.focus();else if(e.preventDefault(),void 0!==w.daysContainer&&(!1===a||document.activeElement&&ee(document.activeElement))){var l=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),G(l),R(W(1),0)):R(void 0,l)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;w.daysContainer&&void 0!==t.$i||t===w.input||t===w.altInput?e.ctrlKey?(e.stopPropagation(),Q(w.currentYear-c),R(W(1),0)):r||R(void 0,7*c):t===w.currentYearElement?Q(w.currentYear-c):w.config.enableTime&&(!r&&w.hourElement&&w.hourElement.focus(),I(e),w._debouncedChange());break;case 9:if(r){var d=[w.hourElement,w.minuteElement,w.secondElement,w.amPM].concat(w.pluginElements).filter((function(e){return e})),s=d.indexOf(t);if(-1!==s){var u=d[s+(e.shiftKey?-1:1)];e.preventDefault(),(u||w._input).focus()}}else!w.config.noCalendar&&w.daysContainer&&w.daysContainer.contains(t)&&e.shiftKey&&(e.preventDefault(),w._input.focus())}}if(void 0!==w.amPM&&t===w.amPM)switch(e.key){case w.l10n.amPM[0].charAt(0):case w.l10n.amPM[0].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[0],S(),be();break;case w.l10n.amPM[1].charAt(0):case w.l10n.amPM[1].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[1],S(),be()}(n||V(t))&&pe("onKeyDown",e)}function ae(e){if(1===w.selectedDates.length&&(!e||e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled"))){for(var t=e?e.dateObj.getTime():w.days.firstElementChild.dateObj.getTime(),n=w.parseDate(w.selectedDates[0],void 0,!0).getTime(),a=Math.min(t,w.selectedDates[0].getTime()),i=Math.max(t,w.selectedDates[0].getTime()),o=!1,r=0,l=0,c=a;ca&&cr)?r=c:c>n&&(!l||c0&&m0&&m>l;return g?(f.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach((function(e){f.classList.remove(e)})),"continue"):o&&!g?"continue":(["startRange","inRange","endRange","notAllowed"].forEach((function(e){f.classList.remove(e)})),void(void 0!==e&&(e.classList.add(t<=w.selectedDates[0].getTime()?"startRange":"endRange"),nt&&m===n&&f.classList.add("endRange"),m>=r&&(0===l||m<=l)&&(d=n,u=t,(c=m)>Math.min(d,u)&&c0||n.getMinutes()>0||n.getSeconds()>0),w.selectedDates&&(w.selectedDates=w.selectedDates.filter((function(e){return X(e)})),w.selectedDates.length||"min"!==e||_(n),be()),w.daysContainer&&(de(),void 0!==n?w.currentYearElement[e]=n.getFullYear().toString():w.currentYearElement.removeAttribute(e),w.currentYearElement.disabled=!!a&&void 0!==n&&a.getFullYear()===n.getFullYear())}}function re(){return w.config.wrap?p.querySelector("[data-input]"):p}function le(){"object"!=typeof w.config.locale&&void 0===T.l10ns[w.config.locale]&&w.config.errorHandler(new Error("flatpickr: invalid locale "+w.config.locale)),w.l10n=e(e({},T.l10ns.default),"object"==typeof w.config.locale?w.config.locale:"default"!==w.config.locale?T.l10ns[w.config.locale]:void 0),D.K="("+w.l10n.amPM[0]+"|"+w.l10n.amPM[1]+"|"+w.l10n.amPM[0].toLowerCase()+"|"+w.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},v),JSON.parse(JSON.stringify(p.dataset||{}))).time_24hr&&void 0===T.defaultConfig.time_24hr&&(w.config.time_24hr=w.l10n.time_24hr),w.formatDate=b(w),w.parseDate=C({config:w.config,l10n:w.l10n})}function ce(e){if("function"!=typeof w.config.position){if(void 0!==w.calendarContainer){pe("onPreCalendarPosition");var t=e||w._positionElement,n=Array.prototype.reduce.call(w.calendarContainer.children,(function(e,t){return e+t.offsetHeight}),0),a=w.calendarContainer.offsetWidth,i=w.config.position.split(" "),o=i[0],r=i.length>1?i[1]:null,l=t.getBoundingClientRect(),c=window.innerHeight-l.bottom,s="above"===o||"below"!==o&&cn,u=window.pageYOffset+l.top+(s?-n-2:t.offsetHeight+2);if(d(w.calendarContainer,"arrowTop",!s),d(w.calendarContainer,"arrowBottom",s),!w.config.inline){var f=window.pageXOffset+l.left,m=!1,g=!1;"center"===r?(f-=(a-l.width)/2,m=!0):"right"===r&&(f-=a-l.width,g=!0),d(w.calendarContainer,"arrowLeft",!m&&!g),d(w.calendarContainer,"arrowCenter",m),d(w.calendarContainer,"arrowRight",g);var p=window.document.body.offsetWidth-(window.pageXOffset+l.right),h=f+a>window.document.body.offsetWidth,v=p+a>window.document.body.offsetWidth;if(d(w.calendarContainer,"rightMost",h),!w.config.static)if(w.calendarContainer.style.top=u+"px",h)if(v){var D=function(){for(var e=null,t=0;tw.currentMonth+w.config.showMonths-1)&&"range"!==w.config.mode;if(w.selectedDateElem=n,"single"===w.config.mode)w.selectedDates=[a];else if("multiple"===w.config.mode){var o=ve(a);o?w.selectedDates.splice(parseInt(o),1):w.selectedDates.push(a)}else"range"===w.config.mode&&(2===w.selectedDates.length&&w.clear(!1,!1),w.latestSelectedDateObj=a,w.selectedDates.push(a),0!==M(a,w.selectedDates[0],!0)&&w.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()})));if(S(),i){var r=w.currentYear!==a.getFullYear();w.currentYear=a.getFullYear(),w.currentMonth=a.getMonth(),r&&(pe("onYearChange"),K()),pe("onMonthChange")}if(De(),J(),be(),i||"range"===w.config.mode||1!==w.config.showMonths?void 0!==w.selectedDateElem&&void 0===w.hourElement&&w.selectedDateElem&&w.selectedDateElem.focus():L(n),void 0!==w.hourElement&&void 0!==w.hourElement&&w.hourElement.focus(),w.config.closeOnSelect){var l="single"===w.config.mode&&!w.config.enableTime,c="range"===w.config.mode&&2===w.selectedDates.length&&!w.config.enableTime;(l||c)&&se()}N()}}w.parseDate=C({config:w.config,l10n:w.l10n}),w._handlers=[],w.pluginElements=[],w.loadedPlugins=[],w._bind=A,w._setHoursFromDate=_,w._positionCalendar=ce,w.changeMonth=G,w.changeYear=Q,w.clear=function(e,t){void 0===e&&(e=!0);void 0===t&&(t=!0);w.input.value="",void 0!==w.altInput&&(w.altInput.value="");void 0!==w.mobileInput&&(w.mobileInput.value="");w.selectedDates=[],w.latestSelectedDateObj=void 0,!0===t&&(w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth());if(!0===w.config.enableTime){var n=x(w.config),a=n.hours,i=n.minutes,o=n.seconds;O(a,i,o)}w.redraw(),e&&pe("onChange")},w.close=function(){w.isOpen=!1,w.isMobile||(void 0!==w.calendarContainer&&w.calendarContainer.classList.remove("open"),void 0!==w._input&&w._input.classList.remove("active"));pe("onClose")},w._createElement=s,w.destroy=function(){void 0!==w.config&&pe("onDestroy");for(var e=w._handlers.length;e--;)w._handlers[e].remove();if(w._handlers=[],w.mobileInput)w.mobileInput.parentNode&&w.mobileInput.parentNode.removeChild(w.mobileInput),w.mobileInput=void 0;else if(w.calendarContainer&&w.calendarContainer.parentNode)if(w.config.static&&w.calendarContainer.parentNode){var t=w.calendarContainer.parentNode;if(t.lastChild&&t.removeChild(t.lastChild),t.parentNode){for(;t.firstChild;)t.parentNode.insertBefore(t.firstChild,t);t.parentNode.removeChild(t)}}else w.calendarContainer.parentNode.removeChild(w.calendarContainer);w.altInput&&(w.input.type="text",w.altInput.parentNode&&w.altInput.parentNode.removeChild(w.altInput),delete w.altInput);w.input&&(w.input.type=w.input._type,w.input.classList.remove("flatpickr-input"),w.input.removeAttribute("readonly"));["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete w[e]}catch(e){}}))},w.isEnabled=X,w.jumpToDate=P,w.open=function(e,t){void 0===t&&(t=w._positionElement);if(!0===w.isMobile){if(e){e.preventDefault();var n=g(e);n&&n.blur()}return void 0!==w.mobileInput&&(w.mobileInput.focus(),w.mobileInput.click()),void pe("onOpen")}if(w._input.disabled||w.config.inline)return;var a=w.isOpen;w.isOpen=!0,a||(w.calendarContainer.classList.add("open"),w._input.classList.add("active"),pe("onOpen"),ce(t));!0===w.config.enableTime&&!0===w.config.noCalendar&&(!1!==w.config.allowInput||void 0!==e&&w.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return w.hourElement.select()}),50))},w.redraw=de,w.set=function(e,t){if(null!==e&&"object"==typeof e)for(var a in Object.assign(w.config,e),e)void 0!==fe[a]&&fe[a].forEach((function(e){return e()}));else w.config[e]=t,void 0!==fe[e]?fe[e].forEach((function(e){return e()})):n.indexOf(e)>-1&&(w.config[e]=c(t));w.redraw(),be(!0)},w.setDate=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=w.config.dateFormat);if(0!==e&&!e||e instanceof Array&&0===e.length)return w.clear(t);me(e,n),w.latestSelectedDateObj=w.selectedDates[w.selectedDates.length-1],w.redraw(),P(void 0,t),_(),0===w.selectedDates.length&&w.clear(!1);be(t),t&&pe("onChange")},w.toggle=function(e){if(!0===w.isOpen)return w.close();w.open(e)};var fe={locale:[le,z],showMonths:[q,k,$],minDate:[P],maxDate:[P],clickOpens:[function(){!0===w.config.clickOpens?(A(w._input,"focus",w.open),A(w._input,"click",w.open)):(w._input.removeEventListener("focus",w.open),w._input.removeEventListener("click",w.open))}]};function me(e,t){var n=[];if(e instanceof Array)n=e.map((function(e){return w.parseDate(e,t)}));else if(e instanceof Date||"number"==typeof e)n=[w.parseDate(e,t)];else if("string"==typeof e)switch(w.config.mode){case"single":case"time":n=[w.parseDate(e,t)];break;case"multiple":n=e.split(w.config.conjunction).map((function(e){return w.parseDate(e,t)}));break;case"range":n=e.split(w.l10n.rangeSeparator).map((function(e){return w.parseDate(e,t)}))}else w.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));w.selectedDates=w.config.allowInvalidPreload?n:n.filter((function(e){return e instanceof Date&&X(e,!1)})),"range"===w.config.mode&&w.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()}))}function ge(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?w.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:w.parseDate(e.from,void 0),to:w.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function pe(e,t){if(void 0!==w.config){var n=w.config[e];if(void 0!==n&&n.length>0)for(var a=0;n[a]&&a1||"static"===w.config.monthSelectorType?w.monthElements[t].textContent=h(n.getMonth(),w.config.shorthandCurrentMonth,w.l10n)+" ":w.monthsDropdownContainer.value=n.getMonth().toString(),e.value=n.getFullYear().toString()})),w._hidePrevMonthArrow=void 0!==w.config.minDate&&(w.currentYear===w.config.minDate.getFullYear()?w.currentMonth<=w.config.minDate.getMonth():w.currentYearw.config.maxDate.getMonth():w.currentYear>w.config.maxDate.getFullYear()))}function we(e){return w.selectedDates.map((function(t){return w.formatDate(t,e)})).filter((function(e,t,n){return"range"!==w.config.mode||w.config.enableTime||n.indexOf(e)===t})).join("range"!==w.config.mode?w.config.conjunction:w.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==w.mobileInput&&w.mobileFormatStr&&(w.mobileInput.value=void 0!==w.latestSelectedDateObj?w.formatDate(w.latestSelectedDateObj,w.mobileFormatStr):""),w.input.value=we(w.config.dateFormat),void 0!==w.altInput&&(w.altInput.value=we(w.config.altFormat)),!1!==e&&pe("onValueUpdate")}function Ce(e){var t=g(e),n=w.prevMonthNav.contains(t),a=w.nextMonthNav.contains(t);n||a?G(n?-1:1):w.yearElements.indexOf(t)>=0?t.select():t.classList.contains("arrowUp")?w.changeYear(w.currentYear+1):t.classList.contains("arrowDown")&&w.changeYear(w.currentYear-1)}return function(){w.element=w.input=p,w.isOpen=!1,function(){var t=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],i=e(e({},JSON.parse(JSON.stringify(p.dataset||{}))),v),o={};w.config.parseDate=i.parseDate,w.config.formatDate=i.formatDate,Object.defineProperty(w.config,"enable",{get:function(){return w.config._enable},set:function(e){w.config._enable=ge(e)}}),Object.defineProperty(w.config,"disable",{get:function(){return w.config._disable},set:function(e){w.config._disable=ge(e)}});var r="time"===i.mode;if(!i.dateFormat&&(i.enableTime||r)){var l=T.defaultConfig.dateFormat||a.dateFormat;o.dateFormat=i.noCalendar||r?"H:i"+(i.enableSeconds?":S":""):l+" H:i"+(i.enableSeconds?":S":"")}if(i.altInput&&(i.enableTime||r)&&!i.altFormat){var d=T.defaultConfig.altFormat||a.altFormat;o.altFormat=i.noCalendar||r?"h:i"+(i.enableSeconds?":S K":" K"):d+" h:i"+(i.enableSeconds?":S":"")+" K"}Object.defineProperty(w.config,"minDate",{get:function(){return w.config._minDate},set:oe("min")}),Object.defineProperty(w.config,"maxDate",{get:function(){return w.config._maxDate},set:oe("max")});var s=function(e){return function(t){w.config["min"===e?"_minTime":"_maxTime"]=w.parseDate(t,"H:i:S")}};Object.defineProperty(w.config,"minTime",{get:function(){return w.config._minTime},set:s("min")}),Object.defineProperty(w.config,"maxTime",{get:function(){return w.config._maxTime},set:s("max")}),"time"===i.mode&&(w.config.noCalendar=!0,w.config.enableTime=!0);Object.assign(w.config,o,i);for(var u=0;u-1?w.config[m]=c(f[m]).map(E).concat(w.config[m]):void 0===i[m]&&(w.config[m]=f[m])}i.altInputClass||(w.config.altInputClass=re().className+" "+w.config.altInputClass);pe("onParseConfig")}(),le(),function(){if(w.input=re(),!w.input)return void w.config.errorHandler(new Error("Invalid input element specified"));w.input._type=w.input.type,w.input.type="text",w.input.classList.add("flatpickr-input"),w._input=w.input,w.config.altInput&&(w.altInput=s(w.input.nodeName,w.config.altInputClass),w._input=w.altInput,w.altInput.placeholder=w.input.placeholder,w.altInput.disabled=w.input.disabled,w.altInput.required=w.input.required,w.altInput.tabIndex=w.input.tabIndex,w.altInput.type="text",w.input.setAttribute("type","hidden"),!w.config.static&&w.input.parentNode&&w.input.parentNode.insertBefore(w.altInput,w.input.nextSibling));w.config.allowInput||w._input.setAttribute("readonly","readonly");w._positionElement=w.config.positionElement||w._input}(),function(){w.selectedDates=[],w.now=w.parseDate(w.config.now)||new Date;var e=w.config.defaultDate||("INPUT"!==w.input.nodeName&&"TEXTAREA"!==w.input.nodeName||!w.input.placeholder||w.input.value!==w.input.placeholder?w.input.value:null);e&&me(e,w.config.dateFormat);w._initialDate=w.selectedDates.length>0?w.selectedDates[0]:w.config.minDate&&w.config.minDate.getTime()>w.now.getTime()?w.config.minDate:w.config.maxDate&&w.config.maxDate.getTime()0&&(w.latestSelectedDateObj=w.selectedDates[0]);void 0!==w.config.minTime&&(w.config.minTime=w.parseDate(w.config.minTime,"H:i"));void 0!==w.config.maxTime&&(w.config.maxTime=w.parseDate(w.config.maxTime,"H:i"));w.minDateHasTime=!!w.config.minDate&&(w.config.minDate.getHours()>0||w.config.minDate.getMinutes()>0||w.config.minDate.getSeconds()>0),w.maxDateHasTime=!!w.config.maxDate&&(w.config.maxDate.getHours()>0||w.config.maxDate.getMinutes()>0||w.config.maxDate.getSeconds()>0)}(),w.utils={getDaysInMonth:function(e,t){return void 0===e&&(e=w.currentMonth),void 0===t&&(t=w.currentYear),1===e&&(t%4==0&&t%100!=0||t%400==0)?29:w.l10n.daysInMonth[e]}},w.isMobile||function(){var e=window.document.createDocumentFragment();if(w.calendarContainer=s("div","flatpickr-calendar"),w.calendarContainer.tabIndex=-1,!w.config.noCalendar){if(e.appendChild((w.monthNav=s("div","flatpickr-months"),w.yearElements=[],w.monthElements=[],w.prevMonthNav=s("span","flatpickr-prev-month"),w.prevMonthNav.innerHTML=w.config.prevArrow,w.nextMonthNav=s("span","flatpickr-next-month"),w.nextMonthNav.innerHTML=w.config.nextArrow,q(),Object.defineProperty(w,"_hidePrevMonthArrow",{get:function(){return w.__hidePrevMonthArrow},set:function(e){w.__hidePrevMonthArrow!==e&&(d(w.prevMonthNav,"flatpickr-disabled",e),w.__hidePrevMonthArrow=e)}}),Object.defineProperty(w,"_hideNextMonthArrow",{get:function(){return w.__hideNextMonthArrow},set:function(e){w.__hideNextMonthArrow!==e&&(d(w.nextMonthNav,"flatpickr-disabled",e),w.__hideNextMonthArrow=e)}}),w.currentYearElement=w.yearElements[0],De(),w.monthNav)),w.innerContainer=s("div","flatpickr-innerContainer"),w.config.weekNumbers){var t=function(){w.calendarContainer.classList.add("hasWeeks");var e=s("div","flatpickr-weekwrapper");e.appendChild(s("span","flatpickr-weekday",w.l10n.weekAbbreviation));var t=s("div","flatpickr-weeks");return e.appendChild(t),{weekWrapper:e,weekNumbers:t}}(),n=t.weekWrapper,a=t.weekNumbers;w.innerContainer.appendChild(n),w.weekNumbers=a,w.weekWrapper=n}w.rContainer=s("div","flatpickr-rContainer"),w.rContainer.appendChild($()),w.daysContainer||(w.daysContainer=s("div","flatpickr-days"),w.daysContainer.tabIndex=-1),J(),w.rContainer.appendChild(w.daysContainer),w.innerContainer.appendChild(w.rContainer),e.appendChild(w.innerContainer)}w.config.enableTime&&e.appendChild(function(){w.calendarContainer.classList.add("hasTime"),w.config.noCalendar&&w.calendarContainer.classList.add("noCalendar");var e=x(w.config);w.timeContainer=s("div","flatpickr-time"),w.timeContainer.tabIndex=-1;var t=s("span","flatpickr-time-separator",":"),n=m("flatpickr-hour",{"aria-label":w.l10n.hourAriaLabel});w.hourElement=n.getElementsByTagName("input")[0];var a=m("flatpickr-minute",{"aria-label":w.l10n.minuteAriaLabel});w.minuteElement=a.getElementsByTagName("input")[0],w.hourElement.tabIndex=w.minuteElement.tabIndex=-1,w.hourElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getHours():w.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),w.minuteElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getMinutes():e.minutes),w.hourElement.setAttribute("step",w.config.hourIncrement.toString()),w.minuteElement.setAttribute("step",w.config.minuteIncrement.toString()),w.hourElement.setAttribute("min",w.config.time_24hr?"0":"1"),w.hourElement.setAttribute("max",w.config.time_24hr?"23":"12"),w.hourElement.setAttribute("maxlength","2"),w.minuteElement.setAttribute("min","0"),w.minuteElement.setAttribute("max","59"),w.minuteElement.setAttribute("maxlength","2"),w.timeContainer.appendChild(n),w.timeContainer.appendChild(t),w.timeContainer.appendChild(a),w.config.time_24hr&&w.timeContainer.classList.add("time24hr");if(w.config.enableSeconds){w.timeContainer.classList.add("hasSeconds");var i=m("flatpickr-second");w.secondElement=i.getElementsByTagName("input")[0],w.secondElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getSeconds():e.seconds),w.secondElement.setAttribute("step",w.minuteElement.getAttribute("step")),w.secondElement.setAttribute("min","0"),w.secondElement.setAttribute("max","59"),w.secondElement.setAttribute("maxlength","2"),w.timeContainer.appendChild(s("span","flatpickr-time-separator",":")),w.timeContainer.appendChild(i)}w.config.time_24hr||(w.amPM=s("span","flatpickr-am-pm",w.l10n.amPM[r((w.latestSelectedDateObj?w.hourElement.value:w.config.defaultHour)>11)]),w.amPM.title=w.l10n.toggleTitle,w.amPM.tabIndex=-1,w.timeContainer.appendChild(w.amPM));return w.timeContainer}());d(w.calendarContainer,"rangeMode","range"===w.config.mode),d(w.calendarContainer,"animate",!0===w.config.animate),d(w.calendarContainer,"multiMonth",w.config.showMonths>1),w.calendarContainer.appendChild(e);var i=void 0!==w.config.appendTo&&void 0!==w.config.appendTo.nodeType;if((w.config.inline||w.config.static)&&(w.calendarContainer.classList.add(w.config.inline?"inline":"static"),w.config.inline&&(!i&&w.element.parentNode?w.element.parentNode.insertBefore(w.calendarContainer,w._input.nextSibling):void 0!==w.config.appendTo&&w.config.appendTo.appendChild(w.calendarContainer)),w.config.static)){var l=s("div","flatpickr-wrapper");w.element.parentNode&&w.element.parentNode.insertBefore(l,w.element),l.appendChild(w.element),w.altInput&&l.appendChild(w.altInput),l.appendChild(w.calendarContainer)}w.config.static||w.config.inline||(void 0!==w.config.appendTo?w.config.appendTo:window.document.body).appendChild(w.calendarContainer)}(),function(){w.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(w.element.querySelectorAll("[data-"+e+"]"),(function(t){return A(t,"click",w[e])}))}));if(w.isMobile)return void function(){var e=w.config.enableTime?w.config.noCalendar?"time":"datetime-local":"date";w.mobileInput=s("input",w.input.className+" flatpickr-mobile"),w.mobileInput.tabIndex=1,w.mobileInput.type=e,w.mobileInput.disabled=w.input.disabled,w.mobileInput.required=w.input.required,w.mobileInput.placeholder=w.input.placeholder,w.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",w.selectedDates.length>0&&(w.mobileInput.defaultValue=w.mobileInput.value=w.formatDate(w.selectedDates[0],w.mobileFormatStr));w.config.minDate&&(w.mobileInput.min=w.formatDate(w.config.minDate,"Y-m-d"));w.config.maxDate&&(w.mobileInput.max=w.formatDate(w.config.maxDate,"Y-m-d"));w.input.getAttribute("step")&&(w.mobileInput.step=String(w.input.getAttribute("step")));w.input.type="hidden",void 0!==w.altInput&&(w.altInput.type="hidden");try{w.input.parentNode&&w.input.parentNode.insertBefore(w.mobileInput,w.input.nextSibling)}catch(e){}A(w.mobileInput,"change",(function(e){w.setDate(g(e).value,!1,w.mobileFormatStr),pe("onChange"),pe("onClose")}))}();var e=l(ie,50);w._debouncedChange=l(N,300),w.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&A(w.daysContainer,"mouseover",(function(e){"range"===w.config.mode&&ae(g(e))}));A(window.document.body,"keydown",ne),w.config.inline||w.config.static||A(window,"resize",e);void 0!==window.ontouchstart?A(window.document,"touchstart",Z):A(window.document,"mousedown",Z);A(window.document,"focus",Z,{capture:!0}),!0===w.config.clickOpens&&(A(w._input,"focus",w.open),A(w._input,"click",w.open));void 0!==w.daysContainer&&(A(w.monthNav,"click",Ce),A(w.monthNav,["keyup","increment"],F),A(w.daysContainer,"click",ue));if(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement){var t=function(e){return g(e).select()};A(w.timeContainer,["increment"],I),A(w.timeContainer,"blur",I,{capture:!0}),A(w.timeContainer,"click",Y),A([w.hourElement,w.minuteElement],["focus","click"],t),void 0!==w.secondElement&&A(w.secondElement,"focus",(function(){return w.secondElement&&w.secondElement.select()})),void 0!==w.amPM&&A(w.amPM,"click",(function(e){I(e),N()}))}w.config.allowInput&&A(w._input,"blur",te)}(),(w.selectedDates.length||w.config.noCalendar)&&(w.config.enableTime&&_(w.config.noCalendar?w.latestSelectedDateObj:void 0),be(!1)),k();var t=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!w.isMobile&&t&&ce(),pe("onReady")}(),w}function k(e,t){for(var n=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),a=[],i=0;i>18&63,r=a>>12&63,n=a>>6&63,i=63&a,c[u++]=s.charAt(e)+s.charAt(r)+s.charAt(n)+s.charAt(i),o>16&255,r=s>>8&255,n=255&s,c[h++]=64==i?String.fromCharCode(e):64==a?String.fromCharCode(e,r):String.fromCharCode(e,r,n),u=this.changes.length)break}var s=this.changes[n];if(s.utcOffset-s.prevUtcOffset<0&&0=this.changes.length?this.changes.length-1:e},_ensureCoverage:function(t){if(-1==ICAL.Timezone._minimumExpansionYear){var e=ICAL.Time.now();ICAL.Timezone._minimumExpansionYear=e.year}var r=t;if(rICAL.Timezone.MAX_YEAR&&(r=ICAL.Timezone.MAX_YEAR),!this.changes.length||this.expandedUntilYeart)&&l);)n.year=l.year,n.month=l.month,n.day=l.day,n.hour=l.hour,n.minute=l.minute,n.second=l.second,n.isDate=l.isDate,ICAL.Timezone.adjust_change(n,0,0,0,-n.prevUtcOffset),r.push(n)}}else(n=s()).year=i.year,n.month=i.month,n.day=i.day,n.hour=i.hour,n.minute=i.minute,n.second=i.second,ICAL.Timezone.adjust_change(n,0,0,0,-n.prevUtcOffset),r.push(n);return r},toString:function(){return this.tznames?this.tznames:this.tzid}},ICAL.Timezone._compare_change_fn=function(t,e){return t.yeare.year?1:t.monthe.month?1:t.daye.day?1:t.houre.hour?1:t.minutee.minute?1:t.seconde.second?1:0},ICAL.Timezone.convert_time=function(t,e,r){if(t.isDate||e.tzid==r.tzid||e==ICAL.Timezone.localTimezone||r==ICAL.Timezone.localTimezone)return t.zone=r,t;var n=e.utcOffset(t);return t.adjust(0,0,0,-n),n=r.utcOffset(t),t.adjust(0,0,0,n),null},ICAL.Timezone.fromData=function(t){return(new ICAL.Timezone).fromData(t)},ICAL.Timezone.utcTimezone=ICAL.Timezone.fromData({tzid:"UTC"}),ICAL.Timezone.localTimezone=ICAL.Timezone.fromData({tzid:"floating"}),ICAL.Timezone.adjust_change=function(t,e,r,n,i){return ICAL.Time.prototype.adjust.call(t,e,r,n,i,t)},ICAL.Timezone._minimumExpansionYear=-1,ICAL.Timezone.MAX_YEAR=2035,ICAL.Timezone.EXTRA_COVERAGE=5}(),ICAL.TimezoneService=function(){var r,t={get count(){return Object.keys(r).length},reset:function(){r=Object.create(null);var t=ICAL.Timezone.utcTimezone;r.Z=t,r.UTC=t,r.GMT=t},has:function(t){return!!r[t]},get:function(t){return r[t]},register:function(t,e){if(t instanceof ICAL.Component&&"vtimezone"===t.name&&(t=(e=new ICAL.Timezone(t)).tzid),!(e instanceof ICAL.Timezone))throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component");r[t]=e},remove:function(t){return delete r[t]}};return t.reset(),t}(),function(){function t(e){Object.defineProperty(ICAL.Time.prototype,e,{get:function(){return this._pendingNormalization&&(this._normalize(),this._pendingNormalization=!1),this._time[e]},set:function(t){return"isDate"===e&&t&&!this._time.isDate&&this.adjust(0,0,0,0),this._cachedUnixTime=null,this._pendingNormalization=!0,this._time[e]=t}})}ICAL.Time=function(t,e){var r=(this.wrappedJSObject=this)._time=Object.create(null);r.year=0,r.month=1,r.day=1,r.hour=0,r.minute=0,r.second=0,r.isDate=!1,this.fromData(t,e)},ICAL.Time._dowCache={},ICAL.Time._wnCache={},ICAL.Time.prototype={icalclass:"icaltime",_cachedUnixTime:null,get icaltype(){return this.isDate?"date":"date-time"},zone:null,_pendingNormalization:!1,clone:function(){return new ICAL.Time(this._time,this.zone)},reset:function(){this.fromData(ICAL.Time.epochTime),this.zone=ICAL.Timezone.utcTimezone},resetTo:function(t,e,r,n,i,a,s){this.fromData({year:t,month:e,day:r,hour:n,minute:i,second:a,zone:s})},fromJSDate:function(t,e){return t?e?(this.zone=ICAL.Timezone.utcTimezone,this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()):(this.zone=ICAL.Timezone.localTimezone,this.year=t.getFullYear(),this.month=t.getMonth()+1,this.day=t.getDate(),this.hour=t.getHours(),this.minute=t.getMinutes(),this.second=t.getSeconds()):this.reset(),this._cachedUnixTime=null,this},fromData:function(t,e){if(t)for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if("icaltype"===r)continue;this[r]=t[r]}if(e&&(this.zone=e),!t||"isDate"in t?t&&"isDate"in t&&(this.isDate=t.isDate):this.isDate=!("hour"in t),t&&"timezone"in t){var n=ICAL.TimezoneService.get(t.timezone);this.zone=n||ICAL.Timezone.localTimezone}return t&&"zone"in t&&(this.zone=t.zone),this.zone||(this.zone=ICAL.Timezone.localTimezone),this._cachedUnixTime=null,this},dayOfWeek:function(t){var e=t||ICAL.Time.SUNDAY,r=(this.year<<12)+(this.month<<8)+(this.day<<3)+e;if(r in ICAL.Time._dowCache)return ICAL.Time._dowCache[r];var n=this.day,i=this.month+(this.month<3?12:0),a=this.year-(this.month<3?1:0),s=n+a+ICAL.helpers.trunc(26*(i+1)/10)+ICAL.helpers.trunc(a/4);return s=((s+=6*ICAL.helpers.trunc(a/100)+ICAL.helpers.trunc(a/400))+7-e)%7+1,ICAL.Time._dowCache[r]=s},dayOfYear:function(){var t=ICAL.Time.isLeapYear(this.year)?1:0;return ICAL.Time.daysInYearPassedMonth[t][this.month-1]+this.day},startOfWeek:function(t){var e=t||ICAL.Time.SUNDAY,r=this.clone();return r.day-=(this.dayOfWeek()+7-e)%7,r.isDate=!0,r.hour=0,r.minute=0,r.second=0,r},endOfWeek:function(t){var e=t||ICAL.Time.SUNDAY,r=this.clone();return r.day+=(7-this.dayOfWeek()+e-ICAL.Time.SUNDAY)%7,r.isDate=!0,r.hour=0,r.minute=0,r.second=0,r},startOfMonth:function(){var t=this.clone();return t.day=1,t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t},endOfMonth:function(){var t=this.clone();return t.day=ICAL.Time.daysInMonth(t.month,t.year),t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t},startOfYear:function(){var t=this.clone();return t.day=1,t.month=1,t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t},endOfYear:function(){var t=this.clone();return t.day=31,t.month=12,t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t},startDoyWeek:function(t){var e=t||ICAL.Time.SUNDAY,r=this.dayOfWeek()-e;return r<0&&(r+=7),this.dayOfYear()-r},getDominicalLetter:function(){return ICAL.Time.getDominicalLetter(this.year)},nthWeekDay:function(t,e){var r,n=ICAL.Time.daysInMonth(this.month,this.year),i=e,a=0,s=this.clone();if(0<=i){s.day=1,0!=i&&i--,a=s.day;var o=t-s.dayOfWeek();o<0&&(o+=7),a+=o,a-=t,r=t}else{s.day=n,i++,(r=s.dayOfWeek()-t)<0&&(r+=7),r=n-r}return a+(r+=7*i)},isNthWeekDay:function(t,e){var r=this.dayOfWeek();return 0===e&&r===t||this.nthWeekDay(t,e)===this.day},weekNumber:function(t){var e,r=(this.year<<12)+(this.month<<8)+(this.day<<3)+t;if(r in ICAL.Time._wnCache)return ICAL.Time._wnCache[r];var n=this.clone();n.isDate=!0;var i=this.year;12==n.month&&25ICAL.Time.daysInYearPassedMonth[a][12])return a=ICAL.Time.isLeapYear(r)?1:0,n-=ICAL.Time.daysInYearPassedMonth[a][12],r++,ICAL.Time.fromDayOfYear(n,r);i.year=r,i.isDate=!0;for(var s=11;0<=s;s--)if(n>ICAL.Time.daysInYearPassedMonth[a][s]){i.month=s+1,i.day=n-ICAL.Time.daysInYearPassedMonth[a][s];break}return i.auto_normalize=!0,i},ICAL.Time.fromStringv2=function(t){return new ICAL.Time({year:parseInt(t.substr(0,4),10),month:parseInt(t.substr(5,2),10),day:parseInt(t.substr(8,2),10),isDate:!0})},ICAL.Time.fromDateString=function(t){return new ICAL.Time({year:ICAL.helpers.strictParseInt(t.substr(0,4)),month:ICAL.helpers.strictParseInt(t.substr(5,2)),day:ICAL.helpers.strictParseInt(t.substr(8,2)),isDate:!0})},ICAL.Time.fromDateTimeString=function(t,e){if(t.length<19)throw new Error('invalid date-time value: "'+t+'"');var r;return t[19]&&"Z"===t[19]?r="Z":e&&(r=e.getParameter("tzid")),new ICAL.Time({year:ICAL.helpers.strictParseInt(t.substr(0,4)),month:ICAL.helpers.strictParseInt(t.substr(5,2)),day:ICAL.helpers.strictParseInt(t.substr(8,2)),hour:ICAL.helpers.strictParseInt(t.substr(11,2)),minute:ICAL.helpers.strictParseInt(t.substr(14,2)),second:ICAL.helpers.strictParseInt(t.substr(17,2)),timezone:r})},ICAL.Time.fromString=function(t,e){return 10ICAL.Time.THURSDAY&&(r.day+=7),i>ICAL.Time.THURSDAY&&(r.day-=7),r.day-=n-i,r},ICAL.Time.getDominicalLetter=function(t){var e="GFEDCBA",r=(t+(t/4|0)+(t/400|0)-(t/100|0)-1)%7;return ICAL.Time.isLeapYear(t)?e[(6+r)%7]+e[r]:e[r]},ICAL.Time.epochTime=ICAL.Time.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:"Z"}),ICAL.Time._cmp_attr=function(t,e,r){return t[r]>e[r]?1:t[r] '+e);if(void 0!==r&&rs||0==this.last.day)throw new Error("Malformed values in BYDAY part")}else if(this.has_by_data("BYMONTHDAY")&&this.last.day<0){s=ICAL.Time.daysInMonth(this.last.month,this.last.year);this.last.day=s+this.last.day+1}},next:function(){var t,e=this.last?this.last.clone():null;if(this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&0i)){if(n<0)n=i+(n+1);else if(0===n)continue;-1===a.indexOf(n)&&a.push(n)}return a.sort(function(t,e){return t-e})},_byDayAndMonthDay:function(t){var e,r,n,i,a=this.by_data.BYDAY,s=0,o=a.length,u=0,h=this,c=this.last.day;function l(){for(i=ICAL.Time.daysInMonth(h.last.month,h.last.year),e=h.normalizeByMonthDayRules(h.last.year,h.last.month,h.by_data.BYMONTHDAY),n=e.length;e[s]<=c&&(!t||e[s]!=c)&&s=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month());e=ICAL.Time.daysInMonth(this.last.month,this.last.year);(a=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY])<0&&(a=e+a+1),ee?t=0:this.last.day=this.by_data.BYMONTHDAY[0]}return t},next_weekday_by_week:function(){var t=0;if(0==this.next_hour())return t;if(!this.has_by_data("BYDAY"))return 1;for(;;){var e=new ICAL.Time;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,t=1);var r=this.by_data.BYDAY[this.by_indices.BYDAY],n=this.ruleDayOfWeek(r)[1];(n-=this.rule.wkst)<0&&(n+=7),e.year=this.last.year,e.month=this.last.month,e.day=this.last.day;var i=e.startDoyWeek(this.rule.wkst);if(!(n+i<1)||t){var a=ICAL.Time.fromDayOfYear(i+n,this.last.year);return this.last.year=a.year,this.last.month=a.month,this.last.day=a.day,t}}},next_year:function(){if(0==this.next_hour())return 0;if(++this.days_index==this.days.length)for(this.days_index=0;this.increment_year(this.rule.interval),this.expand_year_days(this.last.year),0==this.days.length;);return this._nextByYearDay(),1},_nextByYearDay:function(){var t=this.days[this.days_index],e=this.last.year;t<1&&(t+=1,e+=1);var r=ICAL.Time.fromDayOfYear(t,e);this.last.day=r.day,this.last.month=r.month},ruleDayOfWeek:function(t,e){var r=t.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);return r?[parseInt(r[1]||0,10),t=ICAL.Recur.icalDayToNumericDay(r[2],e)]:[0,0]},next_generic:function(t,e,r,n,i){var a=t in this.by_data,s=this.rule.freq==e,o=0;if(i&&0==this[i]())return o;if(a){this.by_indices[t]++;this.by_indices[t];var u=this.by_data[t];this.by_indices[t]==u.length&&(this.by_indices[t]=0,o=1),this.last[r]=u[this.by_indices[t]]}else s&&this["increment_"+r](this.rule.interval);return a&&o&&s&&this["increment_"+n](1),o},increment_monthday:function(t){for(var e=0;er&&(this.last.day-=r,this.increment_month())}},increment_month:function(){if(this.last.day=1,this.has_by_data("BYMONTH"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{"MONTHLY"==this.rule.freq?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;var t=ICAL.helpers.trunc(this.last.month/12);this.last.month%=12,this.last.month++,0!=t&&this.increment_year(t)}},increment_year:function(t){this.last.year+=t},increment_generic:function(t,e,r,n){this.last[e]+=t;var i=ICAL.helpers.trunc(this.last[e]/r);this.last[e]%=r,0!=i&&this["increment_"+n](i)},has_by_data:function(t){return t in this.rule.parts},expand_year_days:function(t){var e=new ICAL.Time;this.days=[];var r={},n=["BYDAY","BYWEEKNO","BYMONTHDAY","BYMONTH","BYYEARDAY"];for(var i in n)if(n.hasOwnProperty(i)){var a=n[i];a in this.rule.parts&&(r[a]=this.rule.parts[a])}if("BYMONTH"in r&&"BYWEEKNO"in r){var s=1,o={};e.year=t,e.isDate=!0;for(var u=0;ue[0]?1:e[0]>t[0]?-1:0}return t.prototype={THISANDFUTURE:"THISANDFUTURE",exceptions:null,strictExceptions:!1,relateException:function(t){if(this.isRecurrenceException())throw new Error("cannot relate exception to exceptions");if(t instanceof ICAL.Component&&(t=new ICAL.Event(t)),this.strictExceptions&&t.uid!==this.uid)throw new Error("attempted to relate unrelated exception");var e=t.recurrenceId.toString();if((this.exceptions[e]=t).modifiesFuture()){var r=[t.recurrenceId.toUnixTime(),e],n=ICAL.helpers.binsearchInsert(this.rangeExceptions,r,i);this.rangeExceptions.splice(n,0,r)}},modifiesFuture:function(){return!!this.component.hasProperty("recurrence-id")&&this.component.getFirstProperty("recurrence-id").getParameter("range")===this.THISANDFUTURE},findRangeException:function(t){if(!this.rangeExceptions.length)return null;var e=t.toUnixTime(),r=ICAL.helpers.binsearchInsert(this.rangeExceptions,[e],i);if(--r<0)return null;var n=this.rangeExceptions[r];return ea;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"
    ",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("
      ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("
      ").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(t("
      ").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("
      ").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete}); \ No newline at end of file diff --git a/www/lib/less.min.js b/www/lib/less.min.js index 16d78fb03..21a6934fa 100644 --- a/www/lib/less.min.js +++ b/www/lib/less.min.js @@ -1,11 +1,12 @@ /** * Less - Leaner CSS v3.11.1 * http://lesscss.org - * + * * Copyright (c) 2009-2020, Alexis Sellier * Licensed under the Apache-2.0 License. * * @license Apache-2.0 + * SPDX-License-Identifier: Apache-2.0 */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).less=t()}(this,(function(){"use strict";function e(e){return e.replace(/^[a-z-]+:\/+?[^\/]+/,"").replace(/[\?\&]livereload=\w+/,"").replace(/^\//,"").replace(/\.[a-zA-Z]+$/,"").replace(/[^\.\w-]+/g,"-").replace(/\./g,":")}function t(e,t){for(var n in t.dataset)if(t.dataset.hasOwnProperty(n))if("env"===n||"dumpLineNumbers"===n||"rootpath"===n||"errorReporting"===n)e[n]=t.dataset[n];else try{e[n]=JSON.parse(t.dataset[n])}catch(e){}}var n=function(t,n,i){var r=i.href||"",o="less:"+(i.title||e(r)),s=t.getElementById(o),a=!1,l=t.createElement("style");l.setAttribute("type","text/css"),i.media&&l.setAttribute("media",i.media),l.id=o,l.styleSheet||(l.appendChild(t.createTextNode(n)),a=null!==s&&s.childNodes.length>0&&l.childNodes.length>0&&s.firstChild.nodeValue===l.firstChild.nodeValue);var u=t.getElementsByTagName("head")[0];if(null===s||!1===a){var c=i&&i.nextSibling||null;c?c.parentNode.insertBefore(l,c):u.appendChild(l)}if(s&&!1===a&&s.parentNode.removeChild(s),l.styleSheet)try{l.styleSheet.cssText=n}catch(e){throw new Error("Couldn't reassign styleSheet.cssText.")}},i=function(e){var t,n=e.document;return n.currentScript||(t=n.getElementsByTagName("script"))[t.length-1]},r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function s(){for(var e=0,t=0,n=arguments.length;tt?1:void 0};var h=function(e){function t(t,n,i){var r=e.call(this)||this,o=r;return Array.isArray(t)?r.rgb=t:t.length>=6?(r.rgb=[],t.match(/.{2}/g).map((function(e,t){t<3?o.rgb.push(parseInt(e,16)):o.alpha=parseInt(e,16)/255}))):(r.rgb=[],t.split("").map((function(e,t){t<3?o.rgb.push(parseInt(e+e,16)):o.alpha=parseInt(e+e,16)/255}))),r.alpha=r.alpha||("number"==typeof n?n:1),void 0!==i&&(r.value=i),r}return o(t,e),t.prototype.luma=function(){var e=this.rgb[0]/255,t=this.rgb[1]/255,n=this.rgb[2]/255;return.2126*(e=e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t=t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(n=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},t.prototype.genCSS=function(e,t){t.add(this.toCSS(e))},t.prototype.toCSS=function(e,t){var n,i,r,o=e&&e.compress&&!t,s=[];if(i=this.fround(e,this.alpha),this.value)if(0===this.value.indexOf("rgb"))i<1&&(r="rgba");else{if(0!==this.value.indexOf("hsl"))return this.value;r=i<1?"hsla":"hsl"}else i<1&&(r="rgba");switch(r){case"rgba":s=this.rgb.map((function(e){return f(Math.round(e),255)})).concat(f(i,1));break;case"hsla":s.push(f(i,1));case"hsl":n=this.toHSL(),s=[this.fround(e,n.h),this.fround(e,100*n.s)+"%",this.fround(e,100*n.l)+"%"].concat(s)}if(r)return r+"("+s.join(","+(o?"":" "))+")";if(n=this.toRGB(),o){var a=n.split("");a[1]===a[2]&&a[3]===a[4]&&a[5]===a[6]&&(n="#"+a[1]+a[3]+a[5])}return n},t.prototype.operate=function(e,n,i){for(var r=new Array(3),o=this.alpha*(1-i.alpha)+i.alpha,s=0;s<3;s++)r[s]=this._operate(e,n,this.rgb[s],i.rgb[s]);return new t(r,o)},t.prototype.toRGB=function(){return p(this.rgb)},t.prototype.toHSL=function(){var e,t,n=this.rgb[0]/255,i=this.rgb[1]/255,r=this.rgb[2]/255,o=this.alpha,s=Math.max(n,i,r),a=Math.min(n,i,r),l=(s+a)/2,u=s-a;if(s===a)e=t=0;else{switch(t=l>.5?u/(2-s-a):u/(s+a),s){case n:e=(i-r)/u+(i=0&&"\n"!==t.charAt(n);)r++;return"number"==typeof e&&(i=(t.slice(0,e).match(/\n/g)||"").length),{line:i,column:r}}function C(e){var t,n=e.length,i=new Array(n);for(t=0;t|Function):(\d+):(\d+)/,R=function(e,t,n){Error.call(this);var i=e.filename||n;if(this.message=e.message,this.stack=e.stack,t&&i){var r=t.contents[i],o=I(e.index,r),s=o.line,a=o.column,l=e.call&&I(e.call,r).line,u=r?r.split("\n"):"";if(this.type=e.type||"Syntax",this.filename=i,this.index=e.index,this.line="number"==typeof s?s+1:null,this.column=a,!this.line&&this.stack){var c=this.stack.match(E),h=new Function("a","throw new Error()"),f=0;try{h()}catch(e){var p=e.stack.match(E);f=1-parseInt(p[2])}c&&(c[2]&&(this.line=parseInt(c[2])+f),c[3]&&(this.column=parseInt(c[3])))}this.callLine=l+1,this.callExtract=u[l],this.extract=[u[this.line-2],u[this.line-1],u[this.line]]}};if(void 0===Object.create){var V=function(){};V.prototype=Error.prototype,R.prototype=new V}else R.prototype=Object.create(Error.prototype);R.prototype.constructor=R,R.prototype.toString=function(e){void 0===e&&(e={});var t="",n=this.extract||[],i=[],r=function(e){return e};if(e.stylize){var o=typeof e.stylize;if("function"!==o)throw Error("options.stylize should be a function, got a "+o+"!");r=e.stylize}if(null!==this.line){if("string"==typeof n[0]&&i.push(r(this.line-1+" "+n[0],"grey")),"string"==typeof n[1]){var s=this.line+" ";n[1]&&(s+=n[1].slice(0,this.column)+r(r(r(n[1].substr(this.column,1),"bold")+n[1].slice(this.column+1),"red"),"inverse")),i.push(s)}"string"==typeof n[2]&&i.push(r(this.line+1+" "+n[2],"grey")),i=i.join("\n")+r("","reset")+"\n"}return t+=r(this.type+"Error: "+this.message,"red"),this.filename&&(t+=r(" in ","red")+this.filename),this.line&&(t+=r(" on line "+this.line+", column "+(this.column+1)+":","grey")),t+="\n"+i,this.callLine&&(t+=r("from ","red")+(this.filename||"")+"/n",t+=r(this.callLine,"grey")+" "+this.callExtract+"/n"),t};var F=function(e){function t(t,n,i,r,o,s){var a=e.call(this)||this;return a.extendList=n,a.condition=i,a.evaldCondition=!i,a._index=r,a._fileInfo=o,a.elements=a.getElements(t),a.mixinElements_=void 0,a.copyVisibilityInfo(s),a.setParent(a.elements,a),a}return o(t,e),t.prototype.accept=function(e){this.elements&&(this.elements=e.visitArray(this.elements)),this.extendList&&(this.extendList=e.visitArray(this.extendList)),this.condition&&(this.condition=e.visit(this.condition))},t.prototype.createDerived=function(e,n,i){var r=new t(e=this.getElements(e),n||this.extendList,null,this.getIndex(),this.fileInfo(),this.visibilityInfo());return r.evaldCondition=null!=i?i:this.evaldCondition,r.mediaEmpty=this.mediaEmpty,r},t.prototype.getElements=function(e){return e?("string"==typeof e&&this.parse.parseNode(e,["selector"],this._index,this._fileInfo,(function(t,n){if(t)throw new R({index:t.index,message:t.message},this.parse.imports,this._fileInfo.filename);e=n[0].elements})),e):[new g("","&",!1,this._index,this._fileInfo)]},t.prototype.createEmptySelectors=function(){var e=[new t([new g("","&",!1,this._index,this._fileInfo)],null,null,this._index,this._fileInfo)];return e[0].mediaEmpty=!0,e},t.prototype.match=function(e){var t,n,i=this.elements,r=i.length;if(0===(t=(e=e.mixinElements()).length)||ry.PARENS_DIVISION)||this.parensStack&&this.parensStack.length))},e.prototype.pathRequiresRewrite=function(e){return(this.rewriteUrls===w?W:G)(e)},e.prototype.rewritePath=function(e,t){var n;return t=t||"",n=this.normalizePath(t+e),W(e)&&G(t)&&!1===W(n)&&(n="./"+n),n},e.prototype.normalizePath=function(e){var t,n=e.split("/").reverse();for(e=[];0!==n.length;)switch(t=n.pop()){case".":break;case"..":0===e.length||".."===e[e.length-1]?e.push(t):e.pop();break;default:e.push(t)}return e.join("/")},e}();var J=function e(t){return{_data:{},add:function(e,t){e=e.toLowerCase(),this._data.hasOwnProperty(e),this._data[e]=t},addMultiple:function(e){var t=this;Object.keys(e).forEach((function(n){t.add(n,e[n])}))},get:function(e){return this._data[e]||t&&t.get(e)},getLocalFunctions:function(){return this._data},inherit:function(){return e(this)},create:function(t){return e(t)}}}(null),H={eval:function(){var e=this.value_,t=this.error_;if(t)throw t;if(null!=e)return e?$.True:$.False},value:function(e){this.value_=e},error:function(e){this.error_=e},reset:function(){this.value_=this.error_=null}},Q=function(e){function t(t,n,i,r){var o=e.call(this)||this;return o.selectors=t,o.rules=n,o._lookups={},o._variables=null,o._properties=null,o.strictImports=i,o.copyVisibilityInfo(r),o.allowRoot=!0,o.setParent(o.selectors,o),o.setParent(o.rules,o),o}return o(t,e),t.prototype.isRulesetLike=function(){return!0},t.prototype.accept=function(e){this.paths?this.paths=e.visitArray(this.paths,!0):this.selectors&&(this.selectors=e.visitArray(this.selectors)),this.rules&&this.rules.length&&(this.rules=e.visitArray(this.rules))},t.prototype.eval=function(e){var n,i,r,o,s,a=!1;if(this.selectors&&(i=this.selectors.length)){for(n=new Array(i),H.error({type:"Syntax",message:"it is currently only allowed in parametric mixin guards,"}),o=0;o0;e--){var t=this.rules[e-1];if(t instanceof N)return this.parseValue(t)}},t.prototype.parseValue=function(e){var t=this;function n(e){return e.value instanceof L&&!e.parsed?("string"==typeof e.value.value?this.parse.parseNode(e.value.value,["value","important"],e.value.getIndex(),e.fileInfo(),(function(t,n){t&&(e.parsed=!0),n&&(e.value=n[0],e.important=n[1]||"",e.parsed=!0)})):e.parsed=!0,e):e}if(Array.isArray(e)){var i=[];return e.forEach((function(e){i.push(n.call(t,e))})),i}return n.call(t,e)},t.prototype.rulesets=function(){if(!this.rules)return[];var e,t,n=[],i=this.rules;for(e=0;t=i[e];e++)t.isRuleset&&n.push(t);return n},t.prototype.prependRule=function(e){var t=this.rules;t?t.unshift(e):this.rules=[e],this.setParent(e,this)},t.prototype.find=function(e,t,n){void 0===t&&(t=this);var i,r,o=[],s=e.toCSS();return s in this._lookups?this._lookups[s]:(this.rulesets().forEach((function(s){if(s!==t)for(var a=0;ai){if(!n||n(s)){r=s.find(new F(e.elements.slice(i)),t,n);for(var l=0;l0&&t.add(l),e.firstSelector=!0,s[0].genCSS(e,t),e.firstSelector=!1,i=1;i0?(o=(r=C(e)).pop(),s=i.createDerived(C(o.elements))):s=i.createDerived([]),t.length>0){var a=n.combinator,l=t[0].elements[0];a.emptyOrWhitespace&&!l.combinator.emptyOrWhitespace&&(a=l.combinator),s.elements.push(new g(a,l.value,n.isVariable,n._index,n._fileInfo)),s.elements=s.elements.concat(t[0].elements.slice(1))}if(0!==s.elements.length&&r.push(s),t.length>1){var u=t.slice(1);u=u.map((function(e){return e.createDerived(e.elements,[])})),r=r.concat(u)}return r}function s(e,t,n,i,r){var s;for(s=0;s0?i[i.length-1]=i[i.length-1].createDerived(i[i.length-1].elements.concat(e)):i.push(new F(e));else t.push([new F(e)])}function l(e,t){var n=t.createDerived(t.elements,t.extendList,t.evaldCondition);return n.copyVisibilityInfo(e),n}var u,c;if(!function e(t,n,l){var u,c,h,f,p,d,m,y,b,w,x,S,I=!1;for(f=[],p=[[]],u=0;y=l.elements[u];u++)if("&"!==y.value){var C=(S=void 0,(x=y).value instanceof v&&(S=x.value.value)instanceof F?S:null);if(null!=C){a(f,p);var _,k=[],A=[];for(_=e(k,n,C),I=I||_,h=0;h0&&m[0].elements.push(new g(y.combinator,"",y.isVariable,y._index,y._fileInfo)),d.push(m);else for(h=0;h0&&(t.push(p[u]),w=p[u][b-1],p[u][b-1]=w.createDerived(w.elements,l.extendList));return I}(c=[],t,n))if(t.length>0)for(c=[],u=0;u0)for(t=0;t-1e-6&&(i=n.toFixed(20).replace(/0+$/,"")),e&&e.compress){if(0===n&&this.unit.isLength())return void t.add(i);n>0&&n<1&&(i=i.substr(1))}t.add(i),this.unit.genCSS(e,t)},t.prototype.operate=function(e,n,i){var r=this._operate(e,n,this.value,i.value),o=this.unit.clone();if("+"===n||"-"===n)if(0===o.numerator.length&&0===o.denominator.length)o=i.unit.clone(),this.unit.backupUnit&&(o.backupUnit=this.unit.backupUnit);else if(0===i.unit.numerator.length&&0===o.denominator.length);else{if(i=i.convertTo(this.unit.usedUnits()),e.strictUnits&&i.unit.toString()!==o.toString())throw new Error("Incompatible units. Change the units or use the unit function. Bad units: '"+o.toString()+"' and '"+i.unit.toString()+"'.");r=this._operate(e,n,this.value,i.value)}else"*"===n?(o.numerator=o.numerator.concat(i.unit.numerator).sort(),o.denominator=o.denominator.concat(i.unit.denominator).sort(),o.cancel()):"/"===n&&(o.numerator=o.numerator.concat(i.unit.denominator).sort(),o.denominator=o.denominator.concat(i.unit.numerator).sort(),o.cancel());return new t(r,o)},t.prototype.compare=function(e){var n,i;if(e instanceof t){if(this.unit.isEmpty()||e.unit.isEmpty())n=this,i=e;else if(n=this.unify(),i=e.unify(),0!==n.unit.compare(i.unit))return;return c.numericCompare(n.value,i.value)}},t.prototype.unify=function(){return this.convertTo({length:"px",duration:"s",angle:"rad"})},t.prototype.convertTo=function(e){var n,i,r,o,s,a=this.value,u=this.unit.clone(),c={};if("string"==typeof e){for(n in l)l[n].hasOwnProperty(e)&&((c={})[n]=e);e=c}for(i in s=function(e,t){return r.hasOwnProperty(e)?(t?a/=r[e]/r[o]:a*=r[e]/r[o],o):e},e)e.hasOwnProperty(i)&&(o=e[i],r=l[i],u.map(s));return u.cancel(),new t(a,u)},t}(c);X.prototype.type="Dimension";var ee=y,te=function(e){function t(t,n,i){var r=e.call(this)||this;return r.op=t.trim(),r.operands=n,r.isSpaced=i,r}return o(t,e),t.prototype.accept=function(e){this.operands=e.visitArray(this.operands)},t.prototype.eval=function(e){var n,i=this.operands[0].eval(e),r=this.operands[1].eval(e);if(e.isMathOn(this.op)){if(n="./"===this.op?"/":this.op,i instanceof X&&r instanceof h&&(i=i.toColor()),r instanceof X&&i instanceof h&&(r=r.toColor()),!i.operate){if(i instanceof t&&"/"===i.op&&e.math===ee.PARENS_DIVISION)return new t(this.op,[i,r],this.isSpaced);throw{type:"Operation",message:"Operation on an invalid type"}}return i.operate(e,n,r)}return new t(this.op,[i,r],this.isSpaced)},t.prototype.genCSS=function(e,t){this.operands[0].genCSS(e,t),this.isSpaced&&t.add(" "),t.add(this.op),this.isSpaced&&t.add(" "),this.operands[1].genCSS(e,t)},t}(c);te.prototype.type="Operation";var ne=y,ie=function(e){function t(t,n){var i=e.call(this)||this;if(i.value=t,i.noSpacing=n,!t)throw new Error("Expression requires an array parameter");return i}return o(t,e),t.prototype.accept=function(e){this.value=e.visitArray(this.value)},t.prototype.eval=function(e){var n,i=e.isMathOn(),r=this.parens&&(e.math!==ne.STRICT_LEGACY||!this.parensInOp),o=!1;return r&&e.inParenthesis(),this.value.length>1?n=new t(this.value.map((function(t){return t.eval?t.eval(e):t})),this.noSpacing):1===this.value.length?(!this.value[0].parens||this.value[0].parensInOp||e.inCalc||(o=!0),n=this.value[0].eval(e)):n=this,r&&e.outOfParenthesis(),!this.parens||!this.parensInOp||i||o||n instanceof X||(n=new v(n)),n},t.prototype.genCSS=function(e,t){for(var n=0;n1){var n=new F([],null,null,this.getIndex(),this.fileInfo()).createEmptySelectors();(t=new Q(n,e.mediaBlocks)).multiMedia=!0,t.copyVisibilityInfo(this.visibilityInfo()),this.setParent(t,this)}return delete e.mediaBlocks,delete e.mediaPath,t},t.prototype.evalNested=function(e){var t,n,i=e.mediaPath.concat([this]);for(t=0;t0;t--)e.splice(t,0,new L("and"));return new ie(e)}))),this.setParent(this.features,this),new Q([],[])},t.prototype.permute=function(e){if(0===e.length)return[];if(1===e.length)return e[0];for(var t=[],n=this.permute(e.slice(1)),i=0;i1?"["+e.value.map((function(e){return e.toCSS()})).join(", ")+"]":e.toCSS()},t}(c));pe.prototype.type="JavaScript";var ve=function(e){function t(t,n){var i=e.call(this)||this;return i.key=t,i.value=n,i}return o(t,e),t.prototype.accept=function(e){this.value=e.visit(this.value)},t.prototype.eval=function(e){return this.value.eval?new t(this.key,this.value.eval(e)):this},t.prototype.genCSS=function(e,t){t.add(this.key+"="),this.value.genCSS?this.value.genCSS(e,t):t.add(this.value)},t}(c);ve.prototype.type="Assignment";var de=function(e){function t(t,n,i,r,o){var s=e.call(this)||this;return s.op=t.trim(),s.lvalue=n,s.rvalue=i,s._index=r,s.negate=o,s}return o(t,e),t.prototype.accept=function(e){this.lvalue=e.visit(this.lvalue),this.rvalue=e.visit(this.rvalue)},t.prototype.eval=function(e){var t=function(e,t,n){switch(e){case"and":return t&&n;case"or":return t||n;default:switch(c.compare(t,n)){case-1:return"<"===e||"=<"===e||"<="===e;case 0:return"="===e||">="===e||"=<"===e||"<="===e;case 1:return">"===e||">="===e;default:return!1}}}(this.op,this.lvalue.eval(e),this.rvalue.eval(e));return this.negate?!t:t},t}(c);de.prototype.type="Condition";var me=function(e){function t(t){var n=e.call(this)||this;return n.value=t,n}return o(t,e),t}(c);me.prototype.type="UnicodeDescriptor";var ge=function(e){function t(t){var n=e.call(this)||this;return n.value=t,n}return o(t,e),t.prototype.genCSS=function(e,t){t.add("-"),this.value.genCSS(e,t)},t.prototype.eval=function(e){return e.isMathOn()?new te("*",[new X(-1),this.value]).eval(e):new t(this.value.eval(e))},t}(c);ge.prototype.type="Negative";var ye=function(e){function t(n,i,r,o,s){var a=e.call(this)||this;switch(a.selector=n,a.option=i,a.object_id=t.next_id++,a.parent_ids=[a.object_id],a._index=r,a._fileInfo=o,a.copyVisibilityInfo(s),a.allowRoot=!0,i){case"all":a.allowBefore=!0,a.allowAfter=!0;break;default:a.allowBefore=!1,a.allowAfter=!1}return a.setParent(a.selector,a),a}return o(t,e),t.prototype.accept=function(e){this.selector=e.visit(this.selector)},t.prototype.eval=function(e){return new t(this.selector.eval(e),this.option,this.getIndex(),this.fileInfo(),this.visibilityInfo())},t.prototype.clone=function(e){return new t(this.selector,this.option,this.getIndex(),this.fileInfo(),this.visibilityInfo())},t.prototype.findSelfSelectors=function(e){var t,n,i=[];for(t=0;t0&&n.length&&""===n[0].combinator.value&&(n[0].combinator.value=" "),i=i.concat(e[t].elements);this.selfSelectors=[new F(i)],this.selfSelectors[0].copyVisibilityInfo(this.visibilityInfo())},t}(c);ye.next_id=0,ye.prototype.type="Extend";var be=function(e){function t(t,n,i){var r=e.call(this)||this;return r.variable=t,r._index=n,r._fileInfo=i,r.allowRoot=!0,r}return o(t,e),t.prototype.eval=function(e){var t,n=new se(this.variable,this.getIndex(),this.fileInfo()).eval(e),i=new R({message:"Could not evaluate variable call "+this.variable});if(!n.ruleset){if(n.rules)t=n;else if(Array.isArray(n))t=new Q("",n);else{if(!Array.isArray(n.value))throw i;t=new Q("",n.value)}n=new Z(t)}if(n.ruleset)return n.callEval(e);throw i},t}(c);be.prototype.type="VariableCall";var we=function(e){function t(t,n,i,r){var o=e.call(this)||this;return o.value=t,o.lookups=n,o._index=i,o._fileInfo=r,o}return o(t,e),t.prototype.eval=function(e){var t,n,i=this.value.eval(e);for(t=0;tthis.params.length)return!1}n=Math.min(o,this.arity);for(var s=0;s0){for(c=!0,a=0;a0)f=2;else if(f=1,p[1]+p[2]>1)throw{type:"Runtime",message:"Ambiguous use of `default()` found when matching for `"+this.format(m)+"`",index:this.getIndex(),filename:this.fileInfo().filename};for(a=0;a=0;s--){var a=o[s];if(a[r?"supportsSync":"supports"](e,t,n,i))return a}return null},e.prototype.addFileManager=function(e){this.fileManagers.push(e)},e.prototype.clearFileManagers=function(){this.fileManagers=[]},e}(),ke=function(){function e(){}return e.prototype.getPath=function(e){var t=e.lastIndexOf("?");return t>0&&(e=e.slice(0,t)),(t=e.lastIndexOf("/"))<0&&(t=e.lastIndexOf("\\")),t<0?"":e.slice(0,t+1)},e.prototype.tryAppendExtension=function(e,t){return/(\.[a-z]*$)|([\?;].*)$/.test(e)?e:e+t},e.prototype.tryAppendLessExtension=function(e){return this.tryAppendExtension(e,".less")},e.prototype.supportsSync=function(){return!1},e.prototype.alwaysMakePathsAbsolute=function(){return!1},e.prototype.isPathAbsolute=function(e){return/^(?:[a-z-]+:|\/|\\|#)/i.test(e)},e.prototype.join=function(e,t){return e?e+t:t},e.prototype.pathDiff=function(e,t){var n,i,r,o,s=this.extractUrlParts(e),a=this.extractUrlParts(t),l="";if(s.hostPart!==a.hostPart)return"";for(i=Math.max(a.directories.length,s.directories.length),n=0;nparseInt(t[n])?-1:1;return 0},e.prototype.versionToString=function(e){for(var t="",n=0;n0;){var e=this.imports[0];if(!e.isReady)return;this.imports=this.imports.slice(1),e.callback.apply(null,e.args)}if(0===this.variableImports.length)break;var t=this.variableImports[0];this.variableImports=this.variableImports.slice(1),t()}}finally{this._currentDepth--}0===this._currentDepth&&this._onSequencerEmpty&&this._onSequencerEmpty()},e}(),Fe=function(e,t){this._visitor=new Re(this),this._importer=e,this._finish=t,this.context=new j.Eval,this.importCount=0,this.onceFileDetectionMap={},this.recursionDetector={},this._sequencer=new Ve(this._onSequencerEmpty.bind(this))};Fe.prototype={isReplacing:!1,run:function(e){try{this._visitor.visit(e)}catch(e){this.error=e}this.isFinished=!0,this._sequencer.tryRun()},_onSequencerEmpty:function(){this.isFinished&&this._finish(this.error)},visitImport:function(e,t){var n=e.options.inline;if(!e.css||n){var i=new j.Eval(this.context,C(this.context.frames)),r=i.frames[0];this.importCount++,e.isVariableImport()?this._sequencer.addVariableImport(this.processImportNode.bind(this,e,i,r)):this.processImportNode(e,i,r)}t.visitDeeper=!1},processImportNode:function(e,t,n){var i,r=e.options.inline;try{i=e.evalForImport(t)}catch(t){t.filename||(t.index=e.getIndex(),t.filename=e.fileInfo().filename),e.css=!0,e.error=t}if(!i||i.css&&!r)this.importCount--,this.isFinished&&this._sequencer.tryRun();else{i.options.multiple&&(t.importMultiple=!0);for(var o=void 0===i.css,s=0;s=0||(a=[u.selfSelectors[0]],(o=f.findMatch(l,a)).length&&(l.hasFoundMatches=!0,l.selfSelectors.forEach((function(e){var t=u.visibilityInfo();s=f.extendSelector(o,a,e,l.isVisible()),(c=new Ie.Extend(u.selector,u.option,0,u.fileInfo(),t)).selfSelectors=s,s[s.length-1].extendList=[c],h.push(c),c.ruleset=u.ruleset,c.parent_ids=c.parent_ids.concat(u.parent_ids,l.parent_ids),u.firstExtendOnThisSelectorPath&&(c.firstExtendOnThisSelectorPath=!0,u.ruleset.paths.push(s))}))));if(h.length){if(this.extendChainCount++,n>100){var p="{unable to calculate}",v="{unable to calculate}";try{p=h[0].selfSelectors[0].toCSS(),v=h[0].selector.toCSS()}catch(e){}throw{message:"extend circular reference detected. One of the circular extends is currently:"+p+":extend("+v+")"}}return h.concat(f.doExtendChaining(h,t,n+1))}return h},e.prototype.visitDeclaration=function(e,t){t.visitDeeper=!1},e.prototype.visitMixinDefinition=function(e,t){t.visitDeeper=!1},e.prototype.visitSelector=function(e,t){t.visitDeeper=!1},e.prototype.visitRuleset=function(e,t){if(!e.root){var n,i,r,o,s=this.allExtendsStack[this.allExtendsStack.length-1],a=[],l=this;for(r=0;r0&&u[l.matched].combinator.value!==s?l=null:l.matched++,l&&(l.finished=l.matched===u.length,l.finished&&!e.allowAfter&&(r+1u&&c>0&&(h[h.length-1].elements=h[h.length-1].elements.concat(t[u].elements.slice(c)),c=0,u++),l=o.elements.slice(c,a.index).concat([s]).concat(n.elements.slice(1)),u===a.pathIndex&&r>0?h[h.length-1].elements=h[h.length-1].elements.concat(l):(h=h.concat(t.slice(u,a.pathIndex))).push(new Ie.Selector(l)),u=a.endPathIndex,(c=a.endPathElementIndex)>=t[u].elements.length&&(c=0,u++);return u0&&(h[h.length-1].elements=h[h.length-1].elements.concat(t[u].elements.slice(c)),u++),h=(h=h.concat(t.slice(u,t.length))).map((function(e){var t=e.createDerived(e.elements);return i?t.ensureVisibility():t.ensureInvisibility(),t}))},e.prototype.visitMedia=function(e,t){var n=e.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);n=n.concat(this.doExtendChaining(n,e.allExtends)),this.allExtendsStack.push(n)},e.prototype.visitMediaOut=function(e){var t=this.allExtendsStack.length-1;this.allExtendsStack.length=t},e.prototype.visitAtRule=function(e,t){var n=e.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);n=n.concat(this.doExtendChaining(n,e.allExtends)),this.allExtendsStack.push(n)},e.prototype.visitAtRuleOut=function(e){var t=this.allExtendsStack.length-1;this.allExtendsStack.length=t},e}(),De=function(){function e(){this.contexts=[[]],this._visitor=new Re(this)}return e.prototype.run=function(e){return this._visitor.visit(e)},e.prototype.visitDeclaration=function(e,t){t.visitDeeper=!1},e.prototype.visitMixinDefinition=function(e,t){t.visitDeeper=!1},e.prototype.visitRuleset=function(e,t){var n,i=this.contexts[this.contexts.length-1],r=[];this.contexts.push(r),e.root||((n=e.selectors)&&(n=n.filter((function(e){return e.getIsOutput()})),e.selectors=n.length?n:n=null,n&&e.joinSelectors(r,i,n)),n||(e.rules=null),e.paths=r)},e.prototype.visitRulesetOut=function(e){this.contexts.length=this.contexts.length-1},e.prototype.visitMedia=function(e,t){var n=this.contexts[this.contexts.length-1];e.rules[0].root=0===n.length||n[0].multiMedia},e.prototype.visitAtRule=function(e,t){var n=this.contexts[this.contexts.length-1];e.rules&&e.rules.length&&(e.rules[0].root=e.isRooted||0===n.length||null)},e}(),Ne=function(){function e(e){this._visitor=new Re(this),this._context=e}return e.prototype.containsSilentNonBlockedChild=function(e){var t;if(!e)return!1;for(var n=0;n0},e.prototype.resolveVisibility=function(e,t){if(!e.blocksVisibility()){if(this.isEmpty(e)&&!this.containsSilentNonBlockedChild(t))return;return e}var n=e.rules[0];if(this.keepOnlyVisibleChilds(n),!this.isEmpty(n))return e.ensureVisibility(),e.removeVisibilityBlock(),e},e.prototype.isVisibleRuleset=function(e){return!!e.firstRoot||!this.isEmpty(e)&&!(!e.root&&!this.hasVisibleSelector(e))},e}(),Be=function(e){this._visitor=new Re(this),this._context=e,this.utils=new Ne(e)};Be.prototype={isReplacing:!0,run:function(e){return this._visitor.visit(e)},visitDeclaration:function(e,t){if(!e.blocksVisibility()&&!e.variable)return e},visitMixinDefinition:function(e,t){e.frames=[]},visitExtend:function(e,t){},visitComment:function(e,t){if(!e.blocksVisibility()&&!e.isSilent(this._context))return e},visitMedia:function(e,t){var n=e.rules[0].rules;return e.accept(this._visitor),t.visitDeeper=!1,this.utils.resolveVisibility(e,n)},visitImport:function(e,t){if(!e.blocksVisibility())return e},visitAtRule:function(e,t){return e.rules&&e.rules.length?this.visitAtRuleWithBody(e,t):this.visitAtRuleWithoutBody(e,t)},visitAnonymous:function(e,t){if(!e.blocksVisibility())return e.accept(this._visitor),e},visitAtRuleWithBody:function(e,t){var n=function(e){var t=e.rules;return function(e){var t=e.rules;return 1===t.length&&(!t[0].paths||0===t[0].paths.length)}(e)?t[0].rules:t}(e);return e.accept(this._visitor),t.visitDeeper=!1,this.utils.isEmpty(e)||this._mergeRules(e.rules[0].rules),this.utils.resolveVisibility(e,n)},visitAtRuleWithoutBody:function(e,t){if(!e.blocksVisibility()){if("@charset"===e.name){if(this.charset){if(e.debugInfo){var n=new Ie.Comment("/* "+e.toCSS(this._context).replace(/\n/g,"")+" */\n");return n.debugInfo=e.debugInfo,this._visitor.visit(n)}return}this.charset=!0}return e}},checkValidNodes:function(e,t){if(e)for(var n=0;n0?e.accept(this._visitor):e.rules=null,t.visitDeeper=!1}return e.rules&&(this._mergeRules(e.rules),this._removeDuplicateRules(e.rules)),this.utils.isVisibleRuleset(e)&&(e.ensureVisibility(),i.splice(0,0,e)),1===i.length?i[0]:i},_compileRulesetPaths:function(e){e.paths&&(e.paths=e.paths.filter((function(e){var t;for(" "===e[0].elements[0].combinator.value&&(e[0].elements[0].combinator=new Ie.Combinator("")),t=0;t=0;i--)if((n=e[i])instanceof Ie.Declaration)if(r[n.name]){(t=r[n.name])instanceof Ie.Declaration&&(t=r[n.name]=[r[n.name].toCSS(this._context)]);var o=n.toCSS(this._context);-1!==t.indexOf(o)?e.splice(i,1):t.push(o)}else r[n.name]=n}},_mergeRules:function(e){if(e){for(var t={},n=[],i=0;i0){var t=e[0],n=[],i=[new Ie.Expression(n)];e.forEach((function(e){"+"===e.merge&&n.length>0&&i.push(new Ie.Expression(n=[])),n.push(e.value),t.important=t.important||e.important})),t.value=new Ie.Value(i)}}))}}};var Ue={Visitor:Re,ImportVisitor:Fe,MarkVisibleSelectorsVisitor:Oe,ExtendVisitor:Le,JoinSelectorVisitor:De,ToCSSVisitor:Be},je=function(){var e,t,n,i,r,o,s,a=[],l={};function u(n){for(var i,a,c,h=l.i,f=t,p=l.i-s,v=l.i+o.length-p,d=l.i+=n,m=e;l.i=0){c={index:l.i,text:m.substr(l.i,y+2-l.i),isLineComment:!1},l.i+=c.text.length-1,l.commentStore.push(c);continue}}break}if(32!==i&&10!==i&&9!==i&&13!==i)break}if(o=o.slice(n+l.i-d+p),s=l.i,!o.length){if(tn||l.i===n&&e&&!i)&&(n=l.i,i=e);var r=a.pop();o=r.current,s=l.i=r.i,t=r.j},l.forget=function(){a.pop()},l.isWhitespace=function(t){var n=l.i+(t||0),i=e.charCodeAt(n);return 32===i||13===i||9===i||10===i},l.$re=function(e){l.i>s&&(o=o.slice(l.i-s),s=l.i);var t=e.exec(o);return t?(u(t[0].length),"string"==typeof t?t:1===t.length?t[0]:t):null},l.$char=function(t){return e.charAt(l.i)!==t?null:(u(1),t)},l.$str=function(t){for(var n=t.length,i=0;ih&&(d=!1)}}while(d);return r||null},l.autoCommentAbsorb=!0,l.commentStore=[],l.finished=!1,l.peek=function(t){if("string"==typeof t){for(var n=0;n57||t<43||47===t||44===t},l.start=function(i,a,c){e=i,l.i=t=s=n=0,r=a?function(e,t){var n,i,r,o,s,a,l,u,c,h=e.length,f=0,p=0,v=[],d=0;function m(t){var n=s-d;n<512&&!t||!n||(v.push(e.slice(d,s+1)),d=s+1)}for(s=0;s=97&&l<=122||l<34))switch(l){case 40:p++,i=s;continue;case 41:if(--p<0)return t("missing opening `(`",s);continue;case 59:p||m();continue;case 123:f++,n=s;continue;case 125:if(--f<0)return t("missing opening `{`",s);f||p||m();continue;case 92:if(s96)){if(u==l){c=1;break}if(92==u){if(s==h-1)return t("unescaped `\\`",s);s++}}if(c)continue;return t("unmatched `"+String.fromCharCode(l)+"`",a);case 47:if(p||s==h-1)continue;if(47==(u=e.charCodeAt(s+1)))for(s+=2;sn&&o>r?"missing closing `}` or `*/`":"missing closing `}`",n):0!==p?t("missing closing `)`",i):(m(!0),v)}(i,c):[i],o=r[0],u(0)},l.end=function(){var t,r=l.i>=e.length;return l.i=e.length-1,furthestChar:e[l.i]}},l},qe=function e(t,n,i){var r,o=je();function s(e,t){throw new R({index:o.i,filename:i.filename,type:t||"Syntax",message:e},n)}function a(e,t){var n=e instanceof Function?e.call(r):o.$re(e);if(n)return n;s(t||("string"==typeof e?"expected '"+e+"' got '"+o.currentChar()+"'":"unexpected token"))}function l(e,t){if(o.$char(e))return e;s(t||"expected '"+e+"' got '"+o.currentChar()+"'")}function u(e){var t=i.filename;return{lineNumber:I(e,o.getInput()).line+1,fileName:t}}return{parserInput:o,imports:n,fileInfo:i,parseNode:function(e,t,i,s,a){var l,u=[],c=o;try{c.start(e,!1,(function(e,t){a({message:e,index:t+i})}));for(var h,f=0,p=void 0;p=t[f];f++)if(h=c.i,l=r[p]()){try{l._index=h+i,l._fileInfo=s}catch(e){}u.push(l)}else u.push(null);c.end().isFinished?a(null,u):a(!0,null)}catch(e){throw new R({index:e.index+i,message:e.message},n,s.filename)}},parse:function(r,s,a){var l,u,c,h,f=null,p="";if(u=a&&a.globalVars?e.serializeVars(a.globalVars)+"\n":"",c=a&&a.modifyVars?"\n"+e.serializeVars(a.modifyVars):"",t.pluginManager)for(var v=t.pluginManager.getPreProcessors(),d=0;d");return e},args:function(e){var t,n,i,a,l,u,c,h=r.entities,f={args:null,variadic:!1},p=[],v=[],d=[],m=!0;for(o.save();;){if(e)u=r.detachedRuleset()||r.expression();else{if(o.commentStore.length=0,o.$str("...")){f.variadic=!0,o.$char(";")&&!t&&(t=!0),(t?v:d).push({variadic:!0});break}u=h.variable()||h.property()||h.literal()||h.keyword()||this.call(!0)}if(!u||!m)break;a=null,u.throwAwayComments&&u.throwAwayComments(),l=u;var g=null;if(e?u.value&&1==u.value.length&&(g=u.value[0]):g=u,g&&(g instanceof Ie.Variable||g instanceof Ie.Property))if(o.$char(":")){if(p.length>0&&(t&&s("Cannot mix ; and , as delimiter types"),n=!0),!(l=r.detachedRuleset()||r.expression())){if(!e)return o.restore(),f.args=[],f;s("could not understand value for named argument")}a=i=g.name}else if(o.$str("...")){if(!e){f.variadic=!0,o.$char(";")&&!t&&(t=!0),(t?v:d).push({name:u.name,variadic:!0});break}c=!0}else e||(i=a=g.name,l=null);l&&p.push(l),d.push({name:a,value:l,expand:c}),o.$char(",")?m=!0:((m=";"===o.$char(";"))||t)&&(n&&s("Cannot mix ; and , as delimiter types"),t=!0,p.length>1&&(l=new Ie.Value(p)),v.push({name:i,value:l,expand:c}),i=null,p=[],n=!1)}return o.forget(),f.args=t?v:d,f},definition:function(){var e,t,n,i,s=[],l=!1;if(!("."!==o.currentChar()&&"#"!==o.currentChar()||o.peek(/^[^{]*\}/)))if(o.save(),t=o.$re(/^([#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+)\s*\(/)){e=t[1];var u=this.args(!1);if(s=u.args,l=u.variadic,!o.$char(")"))return void o.restore("Missing closing ')'");if(o.commentStore.length=0,o.$str("when")&&(i=a(r.conditions,"expected condition")),n=r.block())return o.forget(),new Ie.mixin.Definition(e,s,n,i,l);o.restore()}else o.restore()},ruleLookups:function(){var e,t=[];if("["===o.currentChar()){for(;;){if(o.save(),!(e=this.lookupValue())&&""!==e){o.restore();break}t.push(e),o.forget()}return t.length>0?t:void 0}},lookupValue:function(){if(o.save(),o.$char("[")){var e=o.$re(/^(?:[@$]{0,2})[_a-zA-Z0-9-]*/);if(o.$char("]"))return e||""===e?(o.forget(),e):void o.restore();o.restore()}else o.restore()}},entity:function(){var e=this.entities;return this.comment()||e.literal()||e.variable()||e.url()||e.property()||e.call()||e.keyword()||this.mixin.call(!0)||e.javascript()},end:function(){return o.$char(";")||o.peek("}")},ieAlpha:function(){var e;if(o.$re(/^opacity=/i))return(e=o.$re(/^\d+/))||(e="@{"+(e=a(r.entities.variable,"Could not parse alpha")).name.slice(1)+"}"),l(")"),new Ie.Quoted("","alpha(opacity="+e+")")},element:function(){var e,t,n,r=o.i;if(t=this.combinator(),(e=o.$re(/^(?:\d+\.\d+|\d+)%/)||o.$re(/^(?:[.#]?|:*)(?:[\w-]|[^\x00-\x9f]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/)||o.$char("*")||o.$char("&")||this.attribute()||o.$re(/^\([^&()@]+\)/)||o.$re(/^[\.#:](?=@)/)||this.entities.variableCurly())||(o.save(),o.$char("(")?(n=this.selector(!1))&&o.$char(")")?(e=new Ie.Paren(n),o.forget()):o.restore("Missing closing ')'"):o.forget()),e)return new Ie.Element(t,e,e instanceof Ie.Variable,r,i)},combinator:function(){var e=o.currentChar();if("/"===e){o.save();var t=o.$re(/^\/[a-z]+\//i);if(t)return o.forget(),new Ie.Combinator(t);o.restore()}if(">"===e||"+"===e||"~"===e||"|"===e||"^"===e){for(o.i++,"^"===e&&"^"===o.currentChar()&&(e="^^",o.i++);o.isWhitespace();)o.i++;return new Ie.Combinator(e)}return o.isWhitespace(-1)?new Ie.Combinator(" "):new Ie.Combinator(null)},selector:function(e){var t,n,r,l,u,c,h,f=o.i;for(e=!1!==e;(e&&(n=this.extend())||e&&(c=o.$str("when"))||(l=this.element()))&&(c?h=a(this.conditions,"expected condition"):h?s("CSS guard can only be used at the end of selector"):n?u=u?u.concat(n):n:(u&&s("Extend can only be used at the end of selector"),r=o.currentChar(),t?t.push(l):t=[l],l=null),"{"!==r&&"}"!==r&&";"!==r&&","!==r&&")"!==r););if(t)return new Ie.Selector(t,u,h,f,i);u&&s("Extend must be used to extend a selector, it cannot be used on its own")},selectors:function(){for(var e,t;(e=this.selector())&&(t?t.push(e):t=[e],o.commentStore.length=0,e.condition&&t.length>1&&s("Guards are only currently allowed on a single selector."),o.$char(","));)e.condition&&s("Guards are only currently allowed on a single selector."),o.commentStore.length=0;return t},attribute:function(){if(o.$char("[")){var e,t,n,i=this.entities;return(e=i.variableCurly())||(e=a(/^(?:[_A-Za-z0-9-\*]*\|)?(?:[_A-Za-z0-9-]|\\.)+/)),(n=o.$re(/^[|~*$^]?=/))&&(t=i.quoted()||o.$re(/^[0-9]+%/)||o.$re(/^[\w-]+/)||i.variableCurly()),l("]"),new Ie.Attribute(e,n,t)}},block:function(){var e;if(o.$char("{")&&(e=this.primary())&&o.$char("}"))return e},blockRuleset:function(){var e=this.block();return e&&(e=new Ie.Ruleset(null,e)),e},detachedRuleset:function(){var e,t,n;if(o.save(),!o.$re(/^[.#]\(/)||(t=(e=this.mixin.args(!1)).args,n=e.variadic,o.$char(")"))){var i=this.blockRuleset();if(i)return o.forget(),t?new Ie.mixin.Definition(null,t,i,null,n):new Ie.DetachedRuleset(i);o.restore()}else o.restore()},ruleset:function(){var e,n,i;if(o.save(),t.dumpLineNumbers&&(i=u(o.i)),(e=this.selectors())&&(n=this.block())){o.forget();var r=new Ie.Ruleset(e,n,t.strictImports);return t.dumpLineNumbers&&(r.debugInfo=i),r}o.restore()},declaration:function(){var e,t,n,r,s,a,l=o.i,u=o.currentChar();if("."!==u&&"#"!==u&&"&"!==u&&":"!==u)if(o.save(),e=this.variable()||this.ruleProperty()){if((a="string"==typeof e)&&(t=this.detachedRuleset())&&(n=!0),o.commentStore.length=0,!t){if(s=!a&&e.length>1&&e.pop().value,t=e[0].value&&"--"===e[0].value.slice(0,2)?this.permissiveValue():this.anonymousValue())return o.forget(),new Ie.Declaration(e,t,!1,s,l,i);t||(t=this.value()),t?r=this.important():a&&(t=this.permissiveValue())}if(t&&(this.end()||n))return o.forget(),new Ie.Declaration(e,t,r,s,l,i);o.restore()}else o.restore()},anonymousValue:function(){var e=o.i,t=o.$re(/^([^.#@\$+\/'"*`(;{}-]*);/);if(t)return new Ie.Anonymous(t[1],e)},permissiveValue:function(e){var t,n,r,a,l=e||";",u=o.i,c=[];function h(){var e=o.currentChar();return"string"==typeof l?e===l:l.test(e)}if(!h()){a=[];do{(n=this.comment())?a.push(n):(n=this.entity())&&a.push(n)}while(n);if(r=h(),a.length>0){if(a=new Ie.Expression(a),r)return a;c.push(a)," "===o.prevChar()&&c.push(new Ie.Anonymous(" ",u))}if(o.save(),a=o.$parseUntil(l)){if("string"==typeof a&&s("Expected '"+a+"'","Parse"),1===a.length&&" "===a[0])return o.forget(),new Ie.Anonymous("",u);var f=void 0;for(t=0;t0)return new Ie.Expression(r)},mediaFeatures:function(){var e,t=this.entities,n=[];do{if(e=this.mediaFeature()){if(n.push(e),!o.$char(","))break}else if((e=t.variable()||t.mixinLookup())&&(n.push(e),!o.$char(",")))break}while(e);return n.length>0?n:null},media:function(){var e,n,r,a,l=o.i;if(t.dumpLineNumbers&&(a=u(l)),o.save(),o.$str("@media"))return e=this.mediaFeatures(),(n=this.block())||s("media definitions require block statements after any features"),o.forget(),r=new Ie.Media(n,e,l,i),t.dumpLineNumbers&&(r.debugInfo=a),r;o.restore()},plugin:function(){var e,t,n,r=o.i;if(o.$re(/^@plugin?\s+/)){if(n=(t=this.pluginArgs())?{pluginArgs:t,isPlugin:!0}:{isPlugin:!0},e=this.entities.quoted()||this.entities.url())return o.$char(";")||(o.i=r,s("missing semi-colon on @plugin")),new Ie.Import(e,null,n,r,i);o.i=r,s("malformed @plugin statement")}},pluginArgs:function(){if(o.save(),!o.$char("("))return o.restore(),null;var e=o.$re(/^\s*([^\);]+)\)\s*/);return e[1]?(o.forget(),e[1].trim()):(o.restore(),null)},atrule:function(){var e,n,r,a,l,c,h,f=o.i,p=!0,v=!0;if("@"===o.currentChar()){if(n=this.import()||this.plugin()||this.media())return n;if(o.save(),e=o.$re(/^@[a-z-]+/)){switch(a=e,"-"==e.charAt(1)&&e.indexOf("-",2)>0&&(a="@"+e.slice(e.indexOf("-",2)+1)),a){case"@charset":l=!0,p=!1;break;case"@namespace":c=!0,p=!1;break;case"@keyframes":case"@counter-style":l=!0;break;case"@document":case"@supports":h=!0,v=!1;break;default:h=!0}if(o.commentStore.length=0,l?(n=this.entity())||s("expected "+e+" identifier"):c?(n=this.expression())||s("expected "+e+" expression"):h&&(n=this.permissiveValue(/^[{;]/),p="{"===o.currentChar(),n?n.value||(n=null):p||";"===o.currentChar()||s(e+" rule is missing block or ending semi-colon")),p&&(r=this.blockRuleset()),r||!p&&n&&o.$char(";"))return o.forget(),new Ie.AtRule(e,n,r,f,i,t.dumpLineNumbers?u(f):null,v);o.restore("at-rule options not recognised")}}},value:function(){var e,t=[],n=o.i;do{if((e=this.expression())&&(t.push(e),!o.$char(",")))break}while(e);if(t.length>0)return new Ie.Value(t,n)},important:function(){if("!"===o.currentChar())return o.$re(/^! *important/)},sub:function(){var e,t;if(o.save(),o.$char("("))return(e=this.addition())&&o.$char(")")?(o.forget(),(t=new Ie.Expression([e])).parens=!0,t):void o.restore("Expected ')'");o.restore()},multiplication:function(){var e,t,n,i,r;if(e=this.operand()){for(r=o.isWhitespace(-1);!o.peek(/^\/[*\/]/);){if(o.save(),!(n=o.$char("/")||o.$char("*")||o.$str("./"))){o.forget();break}if(!(t=this.operand())){o.restore();break}o.forget(),e.parensInOp=!0,t.parensInOp=!0,i=new Ie.Operation(n,[i||e,t],r),r=o.isWhitespace(-1)}return i||e}},addition:function(){var e,t,n,i,r;if(e=this.multiplication()){for(r=o.isWhitespace(-1);(n=o.$re(/^[-+]\s+/)||!r&&(o.$char("+")||o.$char("-")))&&(t=this.multiplication());)e.parensInOp=!0,t.parensInOp=!0,i=new Ie.Operation(n,[i||e,t],r),r=o.isWhitespace(-1);return i||e}},conditions:function(){var e,t,n,i=o.i;if(e=this.condition(!0)){for(;o.peek(/^,\s*(not\s*)?\(/)&&o.$char(",")&&(t=this.condition(!0));)n=new Ie.Condition("or",n||e,t,i);return n||e}},condition:function(e){var t,n,i;if(t=this.conditionAnd(e)){if(n=o.$str("or")){if(!(i=this.condition(e)))return;t=new Ie.Condition(n,t,i)}return t}},conditionAnd:function(e){var t,n,i,r,s=this;if(t=(r=s.negatedCondition(e)||s.parenthesisCondition(e))||e?r:s.atomicCondition(e)){if(n=o.$str("and")){if(!(i=this.conditionAnd(e)))return;t=new Ie.Condition(n,t,i)}return t}},negatedCondition:function(e){if(o.$str("not")){var t=this.parenthesisCondition(e);return t&&(t.negate=!t.negate),t}},parenthesisCondition:function(e){var t;if(o.save(),o.$str("(")){if(t=function(t){var n;if(o.save(),n=t.condition(e)){if(o.$char(")"))return o.forget(),n;o.restore()}else o.restore()}(this))return o.forget(),t;if(t=this.atomicCondition(e)){if(o.$char(")"))return o.forget(),t;o.restore("expected ')' got '"+o.currentChar()+"'")}else o.restore()}else o.restore()},atomicCondition:function(e){var t,n,i,r,a=this.entities,l=o.i;function u(){return this.addition()||a.keyword()||a.quoted()||a.mixinLookup()}if(t=(u=u.bind(this))())return o.$char(">")?r=o.$char("=")?">=":">":o.$char("<")?r=o.$char("=")?"<=":"<":o.$char("=")&&(r=o.$char(">")?"=>":o.$char("<")?"=<":"="),r?(n=u())?i=new Ie.Condition(r,t,n,l,!1):s("expected expression"):i=new Ie.Condition("=",t,new Ie.Keyword("true"),l,!1),i},operand:function(){var e,t=this.entities;o.peek(/^-[@\$\(]/)&&(e=o.$char("-"));var n=this.sub()||t.dimension()||t.color()||t.variable()||t.property()||t.call()||t.quoted(!0)||t.colorKeyword()||t.mixinLookup();return e&&(n.parensInOp=!0,n=new Ie.Negative(n)),n},expression:function(){var e,t,n=[],i=o.i;do{(e=this.comment())?n.push(e):(e=this.addition()||this.entity())&&(n.push(e),o.peek(/^\/[\/*]/)||(t=o.$char("/"))&&n.push(new Ie.Anonymous(t,i)))}while(e);if(n.length>0)return new Ie.Expression(n)},property:function(){var e=o.$re(/^(\*?-?[_a-zA-Z0-9-]+)\s*:/);if(e)return e[1]},ruleProperty:function(){var e,t,n=[],r=[];o.save();var s=o.$re(/^([_a-zA-Z0-9-]+)\s*:/);if(s)return n=[new Ie.Keyword(s[1])],o.forget(),n;function a(e){var t=o.i,i=o.$re(e);if(i)return r.push(t),n.push(i[1])}for(a(/^(\*?)/);a(/^((?:[\w-]+)|(?:[@\$]\{[\w-]+\}))/););if(n.length>1&&a(/^((?:\+_|\+)?)\s*:/)){for(o.forget(),""===n[0]&&(n.shift(),r.shift()),t=0;t1?e-1:e)<1?r+(o-r)*e*6:2*e<1?o:3*e<2?r+(o-r)*(2/3-e)*6:r}e=Qe(e)%360/360,t=Ge(Qe(t)),n=Ge(Qe(n)),i=Ge(Qe(i)),r=2*n-(o=n<=.5?n*(t+1):n+t-n*t);var a=[255*s(e+1/3),255*s(e),255*s(e-1/3)];return i=Qe(i),new h(a,i,"hsla")}catch(e){}},hsv:function(e,t,n){return Te.hsva(e,t,n,1)},hsva:function(e,t,n,i){var r,o;e=Qe(e)%360/360*360,t=Qe(t),n=Qe(n),i=Qe(i);var s=[n,n*(1-t),n*(1-(o=e/60-(r=Math.floor(e/60%6)))*t),n*(1-(1-o)*t)],a=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return Te.rgba(255*s[a[r][0]],255*s[a[r][1]],255*s[a[r][2]],i)},hue:function(e){return new X(Je(e).h)},saturation:function(e){return new X(100*Je(e).s,"%")},lightness:function(e){return new X(100*Je(e).l,"%")},hsvhue:function(e){return new X(He(e).h)},hsvsaturation:function(e){return new X(100*He(e).s,"%")},hsvvalue:function(e){return new X(100*He(e).v,"%")},red:function(e){return new X(e.rgb[0])},green:function(e){return new X(e.rgb[1])},blue:function(e){return new X(e.rgb[2])},alpha:function(e){return new X(Je(e).a)},luma:function(e){return new X(e.luma()*e.alpha*100,"%")},luminance:function(e){var t=.2126*e.rgb[0]/255+.7152*e.rgb[1]/255+.0722*e.rgb[2]/255;return new X(t*e.alpha*100,"%")},saturate:function(e,t,n){if(!e.rgb)return null;var i=Je(e);return void 0!==n&&"relative"===n.value?i.s+=i.s*t.value/100:i.s+=t.value/100,i.s=Ge(i.s),We(e,i)},desaturate:function(e,t,n){var i=Je(e);return void 0!==n&&"relative"===n.value?i.s-=i.s*t.value/100:i.s-=t.value/100,i.s=Ge(i.s),We(e,i)},lighten:function(e,t,n){var i=Je(e);return void 0!==n&&"relative"===n.value?i.l+=i.l*t.value/100:i.l+=t.value/100,i.l=Ge(i.l),We(e,i)},darken:function(e,t,n){var i=Je(e);return void 0!==n&&"relative"===n.value?i.l-=i.l*t.value/100:i.l-=t.value/100,i.l=Ge(i.l),We(e,i)},fadein:function(e,t,n){var i=Je(e);return void 0!==n&&"relative"===n.value?i.a+=i.a*t.value/100:i.a+=t.value/100,i.a=Ge(i.a),We(e,i)},fadeout:function(e,t,n){var i=Je(e);return void 0!==n&&"relative"===n.value?i.a-=i.a*t.value/100:i.a-=t.value/100,i.a=Ge(i.a),We(e,i)},fade:function(e,t){var n=Je(e);return n.a=t.value/100,n.a=Ge(n.a),We(e,n)},spin:function(e,t){var n=Je(e),i=(n.h+t.value)%360;return n.h=i<0?360+i:i,We(e,n)},mix:function(e,t,n){n||(n=new X(50));var i=n.value/100,r=2*i-1,o=Je(e).a-Je(t).a,s=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,a=1-s,l=[e.rgb[0]*s+t.rgb[0]*a,e.rgb[1]*s+t.rgb[1]*a,e.rgb[2]*s+t.rgb[2]*a],u=e.alpha*i+t.alpha*(1-i);return new h(l,u)},greyscale:function(e){return Te.desaturate(e,new X(100))},contrast:function(e,t,n,i){if(!e.rgb)return null;if(void 0===n&&(n=Te.rgba(255,255,255,1)),void 0===t&&(t=Te.rgba(0,0,0,1)),t.luma()>n.luma()){var r=n;n=t,t=r}return i=void 0===i?.43:Qe(i),e.luma().5&&(i=1,n=e>.25?Math.sqrt(e):((16*e-12)*e+4)*e),e-(1-2*t)*i*(n-e)},hardlight:function(e,t){return Ye.overlay(t,e)},difference:function(e,t){return Math.abs(e-t)},exclusion:function(e,t){return e+t-2*e*t},average:function(e,t){return(e+t)/2},negation:function(e,t){return 1-Math.abs(e+t-1)}};for(var Xe in Ye)Ye.hasOwnProperty(Xe)&&(Ze[Xe]=Ze.bind(null,Ye[Xe]));var et=function(e){return Array.isArray(e.value)?e.value:Array(e)},tt={_SELF:function(e){return e},extract:function(e,t){return t=t.value-1,et(e)[t]},length:function(e){return new X(et(e).length)},range:function(e,t,n){var i,r,o=1,s=[];t?(r=t,i=e.value,n&&(o=n.value)):(i=1,r=e);for(var a=i;a<=r.value;a+=o)s.push(new X(a,r.unit));return new ie(s)},each:function(e,t){var n,i,r=[];i=!e.value||e instanceof ue?e.ruleset?e.ruleset.rules:e.rules?e.rules:Array.isArray(e)?e:[e]:Array.isArray(e.value)?e.value:[e.value];var o="@value",s="@key",a="@index";t.params?(o=t.params[0]&&t.params[0].name,s=t.params[1]&&t.params[1].name,a=t.params[2]&&t.params[2].name,t=t.rules):t=t.ruleset;for(var l=0;ls.value)&&(c[i]=r);else{if(void 0!==l&&a!==l)throw{type:"Argument",message:"incompatible types"};h[a]=c.length,c.push(r)}else Array.isArray(t[n].value)&&Array.prototype.push.apply(t,Array.prototype.slice.call(t[n].value));return 1==c.length?c[0]:(t=c.map((function(e){return e.toCSS(this.context)})).join(this.context.compress?",":", "),new L((e?"min":"max")+"("+t+")"))},at={min:function(){for(var e=[],t=0;t",r=0;r";return i+="',i=encodeURIComponent(i),new ce(new ue("'"+(i="data:image/svg+xml,"+i)+"'",i,!1,this.index,this.currentFileInfo),this.index,this.currentFileInfo)}}),J.addMultiple(ht),t},pt=function(e,t){var n;void 0===t&&(t={});var i=t.variables,r=new j.Eval(t);"object"!=typeof i||Array.isArray(i)||(i=Object.keys(i).map((function(e){var t=i[e];return t instanceof Ie.Value||(t instanceof Ie.Expression||(t=new Ie.Expression([t])),t=new Ie.Value([t])),new Ie.Declaration("@"+e,t,!1,null,0)})),r.frames=[new Ie.Ruleset(null,i)]);var o,s,a=[new Ue.JoinSelectorVisitor,new Ue.MarkVisibleSelectorsVisitor(!0),new Ue.ExtendVisitor,new Ue.ToCSSVisitor({compress:Boolean(t.compress)})],l=[];if(t.pluginManager){s=t.pluginManager.visitor();for(var u=0;u<2;u++)for(s.first();o=s.get();)o.isPreEvalVisitor?0!==u&&-1!==l.indexOf(o)||(l.push(o),o.run(e)):0!==u&&-1!==a.indexOf(o)||(o.isPreVisitor?a.unshift(o):a.push(o))}n=e.eval(r);for(u=0;u=t);n++);this.preProcessors.splice(n,0,{preProcessor:e,priority:t})},e.prototype.addPostProcessor=function(e,t){var n;for(n=0;n=t);n++);this.postProcessors.splice(n,0,{postProcessor:e,priority:t})},e.prototype.addFileManager=function(e){this.fileManagers.push(e)},e.prototype.getPreProcessors=function(){for(var e=[],t=0;t0){var i=void 0,r=JSON.stringify(this._sourceMapGenerator.toJSON());this.sourceMapURL?i=this.sourceMapURL:this._sourceMapFilename&&(i=this._sourceMapFilename),this.sourceMapURL=i,this.sourceMap=r}return this._css.join("")},t}()}(e=new _e(e,t)),r=function(e,t){return function(){function n(e){this.options=e}return n.prototype.toCSS=function(t,n,i){var r=new e({contentsIgnoredCharsMap:i.contentsIgnoredChars,rootNode:t,contentsMap:i.contents,sourceMapFilename:this.options.sourceMapFilename,sourceMapURL:this.options.sourceMapURL,outputFilename:this.options.sourceMapOutputFilename,sourceMapBasepath:this.options.sourceMapBasepath,sourceMapRootpath:this.options.sourceMapRootpath,outputSourceFiles:this.options.outputSourceFiles,sourceMapGenerator:this.options.sourceMapGenerator,sourceMapFileInline:this.options.sourceMapFileInline}),o=r.toCSS(n);return this.sourceMap=r.sourceMap,this.sourceMapURL=r.sourceMapURL,this.options.sourceMapInputFilename&&(this.sourceMapInputFilename=r.normalizeFilename(this.options.sourceMapInputFilename)),void 0!==this.options.sourceMapBasepath&&void 0!==this.sourceMapURL&&(this.sourceMapURL=r.removeBasepath(this.sourceMapURL)),o+this.getCSSAppendage()},n.prototype.getCSSAppendage=function(){var e=this.sourceMapURL;if(this.options.sourceMapFileInline){if(void 0===this.sourceMap)return"";e="data:application/json;base64,"+t.encodeBase64(this.sourceMap)}return e?"/*# sourceMappingURL="+e+" */":""},n.prototype.getExternalSourceMap=function(){return this.sourceMap},n.prototype.setExternalSourceMap=function(e){this.sourceMap=e},n.prototype.isInline=function(){return this.options.sourceMapFileInline},n.prototype.getSourceMapURL=function(){return this.sourceMapURL},n.prototype.getOutputFilename=function(){return this.options.sourceMapOutputFilename},n.prototype.getInputFilename=function(){return this.sourceMapInputFilename},n}()}(i,e),o=function(e){return function(){function t(e,t){this.root=e,this.imports=t}return t.prototype.toCSS=function(t){var n,i,r={};try{n=pt(this.root,t)}catch(e){throw new R(e,this.imports)}try{var o=Boolean(t.compress);o&&Ce.warn("The compress option has been deprecated. We recommend you use a dedicated css minifier, for instance see less-plugin-clean-css.");var s={compress:o,dumpLineNumbers:t.dumpLineNumbers,strictUnits:Boolean(t.strictUnits),numPrecision:8};t.sourceMap?(i=new e(t.sourceMap),r.css=i.toCSS(n,s,this.imports)):r.css=n.toCSS(s)}catch(e){throw new R(e,this.imports)}if(t.pluginManager)for(var a=t.pluginManager.getPostProcessors(),l=0;l=200&&t.status<300?n(t.responseText,t.getResponseHeader("Last-Modified")):"function"==typeof i&&i(t.status,e)}"function"==typeof r.overrideMimeType&&r.overrideMimeType("text/css"),gt.debug("XHR: Getting '"+e+"'"),r.open("GET",e,o),r.setRequestHeader("Accept",t||"text/x-less, text/css; q=0.9, */*; q=0.5"),r.send(null),mt.isFileProtocol&&!mt.fileAsync?0===r.status||r.status>=200&&r.status<300?n(r.responseText):i(r.status,e):o?r.onreadystatechange=function(){4==r.readyState&&s(r,n,i)}:s(r,n,i)},t.prototype.supports=function(){return!0},t.prototype.clearFileCache=function(){bt={}},t.prototype.loadFile=function(e,t,n,i){t&&!this.isPathAbsolute(e)&&(e=t+e),e=n.ext?this.tryAppendExtension(e,n.ext):e,n=n||{};var r=this.extractUrlParts(e,window.location.href).url,o=this;return new Promise((function(e,t){if(n.useFileCache&&bt[r])try{var i=bt[r];return e({contents:i,filename:r,webInfo:{lastModified:new Date}})}catch(e){return t({filename:r,message:"Error loading file "+r+" error was "+e.message})}o.doXHR(r,n.mime,(function(t,n){bt[r]=t,e({contents:t,filename:r,webInfo:{lastModified:n}})}),(function(e,n){t({type:"File",message:"'"+n+"' wasn't found ("+e+")",href:r})}))}))},t}(ke),xt=function(e,t){return mt=e,gt=t,wt},St=function(e){function t(t){var n=e.call(this)||this;return n.less=t,n}return o(t,e),t.prototype.loadPlugin=function(e,t,n,i,r){return new Promise((function(o,s){r.loadFile(e,t,n,i).then(o).catch(s)}))},t}(Ae),It=function(t,i,r){return{add:function(o,s){r.errorReporting&&"html"!==r.errorReporting?"console"===r.errorReporting?function(e,t){var n=e.filename||t,o=[],s=(e.type||"Syntax")+"Error: "+(e.message||"There is an error in your .less file")+" in "+n,a=function(e,t,n){void 0!==e.extract[t]&&o.push("{line} {content}".replace(/\{line\}/,(parseInt(e.line,10)||0)+(t-1)).replace(/\{class\}/,n).replace(/\{content\}/,e.extract[t]))};e.line&&(a(e,0,""),a(e,1,"line"),a(e,2,""),s+=" on line "+e.line+", column "+(e.column+1)+":\n"+o.join("\n")),e.stack&&(e.extract||r.logLevel>=4)&&(s+="\nStack Trace\n"+e.stack),i.logger.error(s)}(o,s):"function"==typeof r.errorReporting&&r.errorReporting("add",o,s):function(i,o){var s,a,l="less-error-message:"+e(o||""),u=t.document.createElement("div"),c=[],h=i.filename||o,f=h.match(/([^\/]+(\?.*)?)$/)[1];u.id=l,u.className="less-error-message",a="

      "+(i.type||"Syntax")+"Error: "+(i.message||"There is an error in your .less file")+'

      in '+f+" ";var p=function(e,t,n){void 0!==e.extract[t]&&c.push('

    • {content}
    • '.replace(/\{line\}/,(parseInt(e.line,10)||0)+(t-1)).replace(/\{class\}/,n).replace(/\{content\}/,e.extract[t]))};i.line&&(p(i,0,""),p(i,1,"line"),p(i,2,""),a+="on line "+i.line+", column "+(i.column+1)+":

        "+c.join("")+"
      "),i.stack&&(i.extract||r.logLevel>=4)&&(a+="
      Stack Trace
      "+i.stack.split("\n").slice(1).join("
      ")),u.innerHTML=a,n(t.document,[".less-error-message ul, .less-error-message li {","list-style-type: none;","margin-right: 15px;","padding: 4px 0;","margin: 0;","}",".less-error-message label {","font-size: 12px;","margin-right: 15px;","padding: 4px 0;","color: #cc7777;","}",".less-error-message pre {","color: #dd6666;","padding: 4px 0;","margin: 0;","display: inline-block;","}",".less-error-message pre.line {","color: #ff0000;","}",".less-error-message h3 {","font-size: 20px;","font-weight: bold;","padding: 15px 0 5px 0;","margin: 0;","}",".less-error-message a {","color: #10a","}",".less-error-message .error {","color: red;","font-weight: bold;","padding-bottom: 2px;","border-bottom: 1px dashed red;","}"].join("\n"),{title:"error-message"}),u.style.cssText=["font-family: Arial, sans-serif","border: 1px solid #e00","background-color: #eee","border-radius: 5px","-webkit-border-radius: 5px","-moz-border-radius: 5px","color: #e00","padding: 15px","margin-bottom: 15px"].join(";"),"development"===r.env&&(s=setInterval((function(){var e=t.document,n=e.body;n&&(e.getElementById(l)?n.replaceChild(u,e.getElementById(l)):n.insertBefore(u,n.firstChild),clearInterval(s))}),10))}(o,s)},remove:function(n){r.errorReporting&&"html"!==r.errorReporting?"console"===r.errorReporting||"function"==typeof r.errorReporting&&r.errorReporting("remove",n):function(n){var i=t.document.getElementById("less-error-message:"+e(n));i&&i.parentNode.removeChild(i)}(n)}}},Ct={javascriptEnabled:!1,depends:!1,compress:!1,lint:!1,paths:[],color:!0,strictImports:!1,insecure:!1,rootpath:"",rewriteUrls:!1,math:0,strictUnits:!1,globalVars:null,modifyVars:null,urlArgs:""};if(window.less)for(var _t in window.less)window.less.hasOwnProperty(_t)&&(Ct[_t]=window.less[_t]);!function(e,n){t(n,i(e)),void 0===n.isFileProtocol&&(n.isFileProtocol=/^(file|(chrome|safari)(-extension)?|resource|qrc|app):/.test(e.location.protocol)),n.async=n.async||!1,n.fileAsync=n.fileAsync||!1,n.poll=n.poll||(n.isFileProtocol?1e3:1500),n.env=n.env||("127.0.0.1"==e.location.hostname||"0.0.0.0"==e.location.hostname||"localhost"==e.location.hostname||e.location.port&&e.location.port.length>0||n.isFileProtocol?"development":"production");var r=/!dumpLineNumbers:(comments|mediaquery|all)/.exec(e.location.hash);r&&(n.dumpLineNumbers=r[1]),void 0===n.useFileCache&&(n.useFileCache=!0),void 0===n.onReady&&(n.onReady=!0),n.relativeUrls&&(n.rewriteUrls="all")}(window,Ct),Ct.plugins=Ct.plugins||[],window.LESS_PLUGINS&&(Ct.plugins=Ct.plugins.concat(window.LESS_PLUGINS));var kt,At,Mt,Pt=function(e,i){var r=e.document,o=yt();o.options=i;var s=o.environment,a=xt(i,o.logger),l=new a;s.addFileManager(l),o.FileManager=a,o.PluginLoader=St,function(e,t){t.logLevel=void 0!==t.logLevel?t.logLevel:"development"===t.env?3:1,t.loggers||(t.loggers=[{debug:function(e){t.logLevel>=4&&console.log(e)},info:function(e){t.logLevel>=3&&console.log(e)},warn:function(e){t.logLevel>=2&&console.warn(e)},error:function(e){t.logLevel>=1&&console.error(e)}}]);for(var n=0;n",Gt:"≫",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",LT:"<",Lt:"≪",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"},t=Object.prototype.hasOwnProperty;function n(e){return o=e,(n=r)&&t.call(n,o)?r[e]:e;var n,o}var o=Object.prototype.hasOwnProperty;function s(e){var r=[].slice.call(arguments,1);return r.forEach((function(r){if(r){if("object"!=typeof r)throw new TypeError(r+"must be object");Object.keys(r).forEach((function(t){e[t]=r[t]}))}})),e}var i=/\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;function l(e){return e.indexOf("\\")<0?e:e.replace(i,"$1")}function a(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function c(e){if(e>65535){var r=55296+((e-=65536)>>10),t=56320+(1023&e);return String.fromCharCode(r,t)}return String.fromCharCode(e)}var p=/&([a-z#][a-z0-9]{1,31});/gi,u=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;function h(e,r){var t=0,o=n(r);return r!==o?o:35===r.charCodeAt(0)&&u.test(r)&&a(t="x"===r[1].toLowerCase()?parseInt(r.slice(2),16):parseInt(r.slice(1),10))?c(t):e}function f(e){return e.indexOf("&")<0?e:e.replace(p,h)}var d=/[&<>"]/,g=/[&<>"]/g,b={"&":"&","<":"<",">":">",'"':"""};function v(e){return b[e]}function m(e){return d.test(e)?e.replace(g,v):e}var k={};k.blockquote_open=function(){return"
      \n"},k.blockquote_close=function(e,r){return"
      "+y(e,r)},k.code=function(e,r){return e[r].block?"
      "+m(e[r].content)+"
      "+y(e,r):""+m(e[r].content)+""},k.fence=function(e,r,t,n,s){var i,a,c,p,u=e[r],h="",d=t.langPrefix;if(u.params){if(a=(i=u.params.split(/\s+/g)).join(" "),c=s.rules.fence_custom,p=i[0],c&&o.call(c,p))return s.rules.fence_custom[i[0]](e,r,t,n,s);h=' class="'+d+m(f(l(a)))+'"'}return"
      "+(t.highlight&&t.highlight.apply(t.highlight,[u.content].concat(i))||m(u.content))+"
      "+y(e,r)},k.fence_custom={},k.heading_open=function(e,r){return""},k.heading_close=function(e,r){return"\n"},k.hr=function(e,r,t){return(t.xhtmlOut?"
      ":"
      ")+y(e,r)},k.bullet_list_open=function(){return"
        \n"},k.bullet_list_close=function(e,r){return"
      "+y(e,r)},k.list_item_open=function(){return"
    • "},k.list_item_close=function(){return"
    • \n"},k.ordered_list_open=function(e,r){var t=e[r];return"1?' start="'+t.order+'"':"")+">\n"},k.ordered_list_close=function(e,r){return""+y(e,r)},k.paragraph_open=function(e,r){return e[r].tight?"":"

      "},k.paragraph_close=function(e,r){var t=!(e[r].tight&&r&&"inline"===e[r-1].type&&!e[r-1].content);return(e[r].tight?"":"

      ")+(t?y(e,r):"")},k.link_open=function(e,r,t){var n=e[r].title?' title="'+m(f(e[r].title))+'"':"",o=t.linkTarget?' target="'+t.linkTarget+'"':"";return'"},k.link_close=function(){return""},k.image=function(e,r,t){var n=' src="'+m(e[r].src)+'"',o=e[r].title?' title="'+m(f(e[r].title))+'"':"";return""},k.table_open=function(){return"\n"},k.table_close=function(){return"
      \n"},k.thead_open=function(){return"\n"},k.thead_close=function(){return"\n"},k.tbody_open=function(){return"\n"},k.tbody_close=function(){return"\n"},k.tr_open=function(){return""},k.tr_close=function(){return"\n"},k.th_open=function(e,r){var t=e[r];return""},k.th_close=function(){return""},k.td_open=function(e,r){var t=e[r];return""},k.td_close=function(){return""},k.strong_open=function(){return""},k.strong_close=function(){return""},k.em_open=function(){return""},k.em_close=function(){return""},k.del_open=function(){return""},k.del_close=function(){return""},k.ins_open=function(){return""},k.ins_close=function(){return""},k.mark_open=function(){return""},k.mark_close=function(){return""},k.sub=function(e,r){return""+m(e[r].content)+""},k.sup=function(e,r){return""+m(e[r].content)+""},k.hardbreak=function(e,r,t){return t.xhtmlOut?"
      \n":"
      \n"},k.softbreak=function(e,r,t){return t.breaks?t.xhtmlOut?"
      \n":"
      \n":"\n"},k.text=function(e,r){return m(e[r].content)},k.htmlblock=function(e,r){return e[r].content},k.htmltag=function(e,r){return e[r].content},k.abbr_open=function(e,r){return''},k.abbr_close=function(){return""},k.footnote_ref=function(e,r){var t=Number(e[r].id+1).toString(),n="fnref"+t;return e[r].subId>0&&(n+=":"+e[r].subId),'['+t+"]"},k.footnote_block_open=function(e,r,t){return(t.xhtmlOut?'
      \n':'
      \n')+'
      \n
        \n'},k.footnote_block_close=function(){return"
      \n
      \n"},k.footnote_open=function(e,r){return'
    • '},k.footnote_close=function(){return"
    • \n"},k.footnote_anchor=function(e,r){var t="fnref"+Number(e[r].id+1).toString();return e[r].subId>0&&(t+=":"+e[r].subId),' '},k.dl_open=function(){return"
      \n"},k.dt_open=function(){return"
      "},k.dd_open=function(){return"
      "},k.dl_close=function(){return"
      \n"},k.dt_close=function(){return"\n"},k.dd_close=function(){return"\n"};var y=k.getBreak=function(e,r){return(r=function e(r,t){return++t>=r.length-2?t:"paragraph_open"===r[t].type&&r[t].tight&&"inline"===r[t+1].type&&0===r[t+1].content.length&&"paragraph_close"===r[t+2].type&&r[t+2].tight?e(r,t+2):t}(e,r))1)break;if(41===t&&--n<0)break;r++}return s!==r&&(o=l(e.src.slice(s,r)),!!e.parser.validateLink(o)&&(e.linkContent=o,e.pos=r,!0))}function E(e,r){var t,n=r,o=e.posMax,s=e.src.charCodeAt(r);if(34!==s&&39!==s&&40!==s)return!1;for(r++,40===s&&(s=41);r=e.length)&&!z.test(e[r])}function V(e,r,t){return e.substr(0,r)+t+e.substr(r+1)}var B=[["block",function(e){e.inlineMode?e.tokens.push({type:"inline",content:e.src.replace(/\n/g," ").trim(),level:0,lines:[0,1],children:[]}):e.block.parse(e.src,e.options,e.env,e.tokens)}],["abbr",function(e){var r,t,n,o,s=e.tokens;if(!e.inlineMode)for(r=1,t=s.length-1;r0?i[r].count:1,n=0;n=0;r--)if("text"===(s=o[r]).type){for(a=0,i=s.content,p.lastIndex=0,c=s.level,l=[];u=p.exec(i);)p.lastIndex>a&&l.push({type:"text",content:i.slice(a,u.index+u[1].length),level:c}),l.push({type:"abbr_open",title:e.env.abbreviations[":"+u[2]],level:c++}),l.push({type:"text",content:u[2],level:c}),l.push({type:"abbr_close",level:--c}),a=p.lastIndex-u[3].length;l.length&&(a=0;s--)if("inline"===e.tokens[s].type)for(r=(o=e.tokens[s].children).length-1;r>=0;r--)"text"===(t=o[r]).type&&(n=t.content,n=(i=n).indexOf("(")<0?i:i.replace(I,(function(e,r){return N[r.toLowerCase()]})),D.test(n)&&(n=n.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),t.content=n)}],["smartquotes",function(e){var r,t,n,o,s,i,l,a,c,p,u,h,f,d,g,b,v;if(e.options.typographer)for(v=[],g=e.tokens.length-1;g>=0;g--)if("inline"===e.tokens[g].type)for(b=e.tokens[g].children,v.length=0,r=0;r=0&&!(v[f].level<=l);f--);v.length=f+1,s=0,i=(n=t.content).length;e:for(;s=0&&(p=v[f],!(v[f].level=(o=e.eMarks[r])||42!==(t=e.src.charCodeAt(n++))&&45!==t&&43!==t||n=o)return-1;if((t=e.src.charCodeAt(n++))<48||t>57)return-1;for(;;){if(n>=o)return-1;if(!((t=e.src.charCodeAt(n++))>=48&&t<=57)){if(41===t||46===t)break;return-1}}return n=this.eMarks[e]},j.prototype.skipEmptyLines=function(e){for(var r=this.lineMax;et;)if(r!==this.src.charCodeAt(--e))return e+1;return e},j.prototype.getLines=function(e,r,t,n){var o,s,i,l,a,c=e;if(e>=r)return"";if(c+1===r)return s=this.bMarks[c]+Math.min(this.tShift[c],t),i=n?this.eMarks[c]+1:this.eMarks[c],this.src.slice(s,i);for(l=new Array(r-e),o=0;ct&&(a=t),a<0&&(a=0),s=this.bMarks[c]+a,i=c+1]/,F=/^<\/([a-zA-Z]{1,15})[\s>]/;function J(e,r){var t=e.bMarks[r]+e.blkIndent,n=e.eMarks[r];return e.src.substr(t,n-t)}function Y(e,r){var t,n,o=e.bMarks[r]+e.tShift[r],s=e.eMarks[r];return o>=s||126!==(n=e.src.charCodeAt(o++))&&58!==n||o===(t=e.skipSpaces(o))||t>=s?-1:t}var W=[["code",function(e,r,t){var n,o;if(e.tShift[r]-e.blkIndent<4)return!1;for(o=n=r+1;n=4))break;o=++n}return e.line=n,e.tokens.push({type:"code",content:e.getLines(r,o,4+e.blkIndent,!0),block:!0,lines:[r,e.line],level:e.level}),!0}],["fences",function(e,r,t,n){var o,s,i,l,a,c=!1,p=e.bMarks[r]+e.tShift[r],u=e.eMarks[r];if(p+3>u)return!1;if(126!==(o=e.src.charCodeAt(p))&&96!==o)return!1;if(a=p,(s=(p=e.skipChars(p,o))-a)<3)return!1;if((i=e.src.slice(p,u).trim()).indexOf("`")>=0)return!1;if(n)return!0;for(l=r;!(++l>=t)&&!((p=a=e.bMarks[l]+e.tShift[l])<(u=e.eMarks[l])&&e.tShift[l]=4||(p=e.skipChars(p,o))-ab)return!1;if(62!==e.src.charCodeAt(g++))return!1;if(e.level>=e.options.maxNesting)return!1;if(n)return!0;for(32===e.src.charCodeAt(g)&&g++,a=e.blkIndent,e.blkIndent=0,l=[e.bMarks[r]],e.bMarks[r]=g,s=(g=g=b,i=[e.tShift[r]],e.tShift[r]=g-e.bMarks[r],u=e.parser.ruler.getRules("blockquote"),o=r+1;o=(b=e.eMarks[o]));o++)if(62!==e.src.charCodeAt(g++)){if(s)break;for(d=!1,h=0,f=u.length;h=b,i.push(e.tShift[o]),e.tShift[o]=g-e.bMarks[o];for(c=e.parentType,e.parentType="blockquote",e.tokens.push({type:"blockquote_open",lines:p=[r,0],level:e.level++}),e.parser.tokenize(e,r,o),e.tokens.push({type:"blockquote_close",level:--e.level}),e.parentType=c,p[1]=e.line,h=0;ha)return!1;if(42!==(o=e.src.charCodeAt(l++))&&45!==o&&95!==o)return!1;for(s=1;l=0)g=!0;else{if(!((u=P(e,r))>=0))return!1;g=!1}if(e.level>=e.options.maxNesting)return!1;if(d=e.src.charCodeAt(u-1),n)return!0;for(v=e.tokens.length,g?(p=e.bMarks[r]+e.tShift[r],f=Number(e.src.substr(p,u-p-1)),e.tokens.push({type:"ordered_list_open",order:f,lines:k=[r,0],level:e.level++})):e.tokens.push({type:"bullet_list_open",lines:k=[r,0],level:e.level++}),o=r,m=!1,_=e.parser.ruler.getRules("list");!(!(o=e.eMarks[o]?1:b-u)>4&&(h=1),h<1&&(h=1),s=u-e.bMarks[o]+h,e.tokens.push({type:"list_item_open",lines:y=[r,0],level:e.level++}),l=e.blkIndent,a=e.tight,i=e.tShift[r],c=e.parentType,e.tShift[r]=b-e.bMarks[r],e.blkIndent=s,e.tight=!0,e.parentType="list",e.parser.tokenize(e,r,t,!0),e.tight&&!m||(A=!1),m=e.line-r>1&&e.isEmpty(e.line-1),e.blkIndent=l,e.tShift[r]=i,e.tight=a,e.parentType=c,e.tokens.push({type:"list_item_close",level:--e.level}),o=r=e.line,y[1]=o,b=e.bMarks[r],o>=t)||e.isEmpty(o)||e.tShift[o]p)return!1;if(91!==e.src.charCodeAt(c))return!1;if(94!==e.src.charCodeAt(c+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(l=c+2;l=p||58!==e.src.charCodeAt(++l))&&(n||(l++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),a=e.src.slice(c+2,l-2),e.env.footnotes.refs[":"+a]=-1,e.tokens.push({type:"footnote_reference_open",label:a,level:e.level++}),o=e.bMarks[r],s=e.tShift[r],i=e.parentType,e.tShift[r]=e.skipSpaces(l)-l,e.bMarks[r]=l,e.blkIndent+=4,e.parentType="footnote",e.tShift[r]=a)return!1;if(35!==(o=e.src.charCodeAt(l))||l>=a)return!1;for(s=1,o=e.src.charCodeAt(++l);35===o&&l6||ll&&32===e.src.charCodeAt(i-1)&&(a=i),e.line=r+1,e.tokens.push({type:"heading_open",hLevel:s,lines:[r,e.line],level:e.level}),l=t)&&(!(e.tShift[i]3)&&(!((o=e.bMarks[i]+e.tShift[i])>=(s=e.eMarks[i]))&&((45===(n=e.src.charCodeAt(o))||61===n)&&(o=e.skipChars(o,n),!((o=e.skipSpaces(o))3||l+2>=a)return!1;if(60!==e.src.charCodeAt(l))return!1;if(33===(o=e.src.charCodeAt(l+1))||63===o){if(n)return!0}else{if(47!==o&&!function(e){var r=32|e;return r>=97&&r<=122}(o))return!1;if(47===o){if(!(s=e.src.slice(l,a).match(F)))return!1}else if(!(s=e.src.slice(l,a).match(Z)))return!1;if(!0!==H[s[1].toLowerCase()])return!1;if(n)return!0}for(i=r+1;it)return!1;if(a=r+1,e.tShift[a]=e.eMarks[a])return!1;if(124!==(o=e.src.charCodeAt(i))&&45!==o&&58!==o)return!1;if(s=J(e,r+1),!/^[-:| ]+$/.test(s))return!1;if((c=s.split("|"))<=2)return!1;for(u=[],l=0;l=0;if(p=r+1,e.isEmpty(p)&&++p>t)return!1;if(e.tShift[p]=e.options.maxNesting)return!1;c=e.tokens.length,e.tokens.push({type:"dl_open",lines:a=[r,0],level:e.level++}),i=r,s=p;e:for(;;){for(v=!0,b=!1,e.tokens.push({type:"dt_open",lines:[i,i],level:e.level++}),e.tokens.push({type:"inline",content:e.getLines(i,i+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[i,i],children:[]}),e.tokens.push({type:"dt_close",level:--e.level});;){if(e.tokens.push({type:"dd_open",lines:l=[p,0],level:e.level++}),g=e.tight,h=e.ddIndent,u=e.blkIndent,d=e.tShift[s],f=e.parentType,e.blkIndent=e.ddIndent=e.tShift[s]+2,e.tShift[s]=o-e.bMarks[s],e.tight=!0,e.parentType="deflist",e.parser.tokenize(e,s,t,!0),e.tight&&!b||(v=!1),b=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=d,e.tight=g,e.parentType=f,e.blkIndent=u,e.ddIndent=h,e.tokens.push({type:"dd_close",level:--e.level}),l[1]=p=e.line,p>=t)break e;if(e.tShift[p]=t)break;if(i=p,e.isEmpty(i))break;if(e.tShift[i]=t)break;if(e.isEmpty(s)&&s++,s>=t)break;if(e.tShift[s]3)){for(o=!1,s=0,i=l.length;s=t))&&!(e.tShift[i]=0&&(e=e.replace(Q,(function(r,t){var n;return 10===e.charCodeAt(t)?(s=t+1,i=0,r):(n=" ".slice((t-s-i)%4),i=t-s+1,n)}))),o=new j(e,this,r,t,n),this.tokenize(o,o.line,o.lineMax)};for(var te=[],ne=0;ne<256;ne++)te.push(0);function oe(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function se(e,r){var t,n,o,s=r,i=!0,l=!0,a=e.posMax,c=e.src.charCodeAt(r);for(t=r>0?e.src.charCodeAt(r-1):-1;s=a&&(i=!1),(o=s-r)>=4?i=l=!1:(32!==(n=s?@[]^_`{|}~-".split("").forEach((function(e){te[e.charCodeAt(0)]=1}));var ie=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;var le=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;var ae=["coap","doi","javascript","aaa","aaas","about","acap","cap","cid","crid","data","dav","dict","dns","file","ftp","geo","go","gopher","h323","http","https","iax","icap","im","imap","info","ipp","iris","iris.beep","iris.xpc","iris.xpcs","iris.lwz","ldap","mailto","mid","msrp","msrps","mtqp","mupdate","news","nfs","ni","nih","nntp","opaquelocktoken","pop","pres","rtsp","service","session","shttp","sieve","sip","sips","sms","snmp","soap.beep","soap.beeps","tag","tel","telnet","tftp","thismessage","tn3270","tip","tv","urn","vemmi","ws","wss","xcon","xcon-userid","xmlrpc.beep","xmlrpc.beeps","xmpp","z39.50r","z39.50s","adiumxtra","afp","afs","aim","apt","attachment","aw","beshare","bitcoin","bolo","callto","chrome","chrome-extension","com-eventbrite-attendee","content","cvs","dlna-playsingle","dlna-playcontainer","dtn","dvb","ed2k","facetime","feed","finger","fish","gg","git","gizmoproject","gtalk","hcp","icon","ipn","irc","irc6","ircs","itms","jar","jms","keyparc","lastfm","ldaps","magnet","maps","market","message","mms","ms-help","msnim","mumble","mvn","notes","oid","palm","paparazzi","platform","proxy","psyc","query","res","resource","rmi","rsync","rtmp","secondlife","sftp","sgn","skype","smb","soldat","spotify","ssh","steam","svn","teamspeak","things","udp","unreal","ut2004","ventrilo","view-source","webcal","wtai","wyciwyg","xfire","xri","ymsgr"],ce=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,pe=/^<([a-zA-Z.\-]{1,25}):([^<>\x00-\x20]*)>/;function ue(e,r){return e=e.source,r=r||"",function t(n,o){return n?(o=o.source||o,e=e.replace(n,o),t):new RegExp(e,r)}}var he=ue(/(?:unquoted|single_quoted|double_quoted)/)("unquoted",/[^"'=<>`\x00-\x20]+/)("single_quoted",/'[^']*'/)("double_quoted",/"[^"]*"/)(),fe=ue(/(?:\s+attr_name(?:\s*=\s*attr_value)?)/)("attr_name",/[a-zA-Z_:][a-zA-Z0-9:._-]*/)("attr_value",he)(),de=ue(/<[A-Za-z][A-Za-z0-9]*attribute*\s*\/?>/)("attribute",fe)(),ge=ue(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)("open_tag",de)("close_tag",/<\/[A-Za-z][A-Za-z0-9]*\s*>/)("comment",/|/)("processing",/<[?].*?[?]>/)("declaration",/]*>/)("cdata",//)();var be=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,ve=/^&([a-z][a-z0-9]{1,31});/i;var me=[["text",function(e,r){for(var t=e.pos;t=0&&32===e.pending.charCodeAt(t))if(t>=1&&32===e.pending.charCodeAt(t-1)){for(var s=t-2;s>=0;s--)if(32!==e.pending.charCodeAt(s)){e.pending=e.pending.substring(0,s+1);break}e.push({type:"hardbreak",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:"softbreak",level:e.level});else e.push({type:"softbreak",level:e.level});for(o++;o=l)return!1;if(126!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=a>0?e.src.charCodeAt(a-1):-1,i=e.src.charCodeAt(a+2),126===s)return!1;if(126===i)return!1;if(32===i||10===i)return!1;for(n=a+2;na+3)return e.pos+=n-a,r||(e.pending+=e.src.slice(a,n)),!0;for(e.pos=a+2,o=1;e.pos+1=l)return!1;if(43!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=a>0?e.src.charCodeAt(a-1):-1,i=e.src.charCodeAt(a+2),43===s)return!1;if(43===i)return!1;if(32===i||10===i)return!1;for(n=a+2;n=l)return!1;if(61!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=a>0?e.src.charCodeAt(a-1):-1,i=e.src.charCodeAt(a+2),61===s)return!1;if(61===i)return!1;if(32===i||10===i)return!1;for(n=a+2;n=e.options.maxNesting)return!1;for(e.pos=p+t,l=[t];e.pos=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos=e.options.maxNesting)return!1;if(t=f+1,(n=w(e,f))<0)return!1;if((l=n+1)=h)return!1;for(f=l,S(e,l)?(s=e.linkContent,l=e.pos):s="",f=l;l=h||41!==e.src.charCodeAt(l))return e.pos=u,!1;l++}else{if(e.linkLevel>0)return!1;for(;l=0?o=e.src.slice(f,l++):l=f-1),o||(void 0===o&&(l=n+1),o=e.src.slice(t,n)),!(a=e.env.references[L(o)]))return e.pos=u,!1;s=a.href,i=a.title}return r||(e.pos=t,e.posMax=n,p?e.push({type:"image",src:s,title:i,alt:e.src.substr(t,n-t),level:e.level}):(e.push({type:"link_open",href:s,title:i,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:"link_close",level:--e.level}))),e.pos=l,e.posMax=h,!0}],["footnote_inline",function(e,r){var t,n,o,s,i=e.posMax,l=e.pos;return!(l+2>=i)&&(94===e.src.charCodeAt(l)&&(91===e.src.charCodeAt(l+1)&&(!(e.level>=e.options.maxNesting)&&(t=l+2,!((n=w(e,l+1))<0)&&(r||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),o=e.env.footnotes.list.length,e.pos=t,e.posMax=n,e.push({type:"footnote_ref",id:o,level:e.level}),e.linkLevel++,s=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[o]={tokens:e.tokens.splice(s)},e.linkLevel--),e.pos=n+1,e.posMax=i,!0)))))}],["footnote_ref",function(e,r){var t,n,o,s,i=e.posMax,l=e.pos;if(l+3>i)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(l))return!1;if(94!==e.src.charCodeAt(l+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(n=l+2;n=i)&&(n++,t=e.src.slice(l+2,n-1),void 0!==e.env.footnotes.refs[":"+t]&&(r||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[":"+t]<0?(o=e.env.footnotes.list.length,e.env.footnotes.list[o]={label:t,count:0},e.env.footnotes.refs[":"+t]=o):o=e.env.footnotes.refs[":"+t],s=e.env.footnotes.list[o].count,e.env.footnotes.list[o].count++,e.push({type:"footnote_ref",id:o,subId:s,level:e.level})),e.pos=n,e.posMax=i,!0)))}],["autolink",function(e,r){var t,n,o,s,i,l=e.pos;return 60===e.src.charCodeAt(l)&&(!((t=e.src.slice(l)).indexOf(">")<0)&&((n=t.match(pe))?!(ae.indexOf(n[1].toLowerCase())<0)&&(i=C(s=n[0].slice(1,-1)),!!e.parser.validateLink(s)&&(r||(e.push({type:"link_open",href:i,level:e.level}),e.push({type:"text",content:s,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=n[0].length,!0)):!!(o=t.match(ce))&&(i=C("mailto:"+(s=o[0].slice(1,-1))),!!e.parser.validateLink(i)&&(r||(e.push({type:"link_open",href:i,level:e.level}),e.push({type:"text",content:s,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=o[0].length,!0))))}],["htmltag",function(e,r){var t,n,o,s=e.pos;return!!e.options.html&&(o=e.posMax,!(60!==e.src.charCodeAt(s)||s+2>=o)&&(!(33!==(t=e.src.charCodeAt(s+1))&&63!==t&&47!==t&&!function(e){var r=32|e;return r>=97&&r<=122}(t))&&(!!(n=e.src.slice(s).match(ge))&&(r||e.push({type:"htmltag",content:e.src.slice(s,s+n[0].length),level:e.level}),e.pos+=n[0].length,!0))))}],["entity",function(e,r){var t,o,s=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(s))return!1;if(s+10)e.pos=t;else{for(r=0;r=s)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},ke.prototype.parse=function(e,r,t,n){var o=new x(e,this,r,t,n);this.tokenize(o)};var _e={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","replacements","smartquotes","references","abbr2","footnote_tail"]},block:{rules:["blockquote","code","fences","footnote","heading","hr","htmlblock","lheading","list","paragraph","table"]},inline:{rules:["autolink","backticks","del","emphasis","entity","escape","footnote_ref","htmltag","links","newline","text"]}}},full:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","abbr2"]},block:{rules:["blockquote","code","fences","heading","hr","htmlblock","lheading","list","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","htmltag","links","newline","text"]}}}};function qe(e,r,t){this.src=r,this.env=t,this.options=e.options,this.tokens=[],this.inlineMode=!1,this.inline=e.inline,this.block=e.block,this.renderer=e.renderer,this.typographer=e.typographer}function xe(e,r){"string"!=typeof e&&(r=e,e="default"),r&&null!=r.linkify&&console.warn("linkify option is removed. Use linkify plugin instead:\n\nimport Remarkable from 'remarkable';\nimport linkify from 'remarkable/linkify';\nnew Remarkable().use(linkify)\n"),this.inline=new ke,this.block=new K,this.core=new G,this.renderer=new _,this.ruler=new q,this.options={},this.configure(_e[e]),this.set(r||{})}xe.prototype.set=function(e){s(this.options,e)},xe.prototype.configure=function(e){var r=this;if(!e)throw new Error("Wrong `remarkable` preset, check name/content");e.options&&r.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&r[t].ruler.enable(e.components[t].rules,!0)}))},xe.prototype.use=function(e,r){return e(this,r),this},xe.prototype.parse=function(e,r){var t=new qe(this,e,r);return this.core.process(t),t.tokens},xe.prototype.render=function(e,r){return r=r||{},this.renderer.render(this.parse(e,r),this.options,r)},xe.prototype.parseInline=function(e,r){var t=new qe(this,e,r);return t.inlineMode=!0,this.core.process(t),t.tokens},xe.prototype.renderInline=function(e,r){return r=r||{},this.renderer.render(this.parseInline(e,r),this.options,r)};Math.random().toString(36).slice(2,8);function we(e){return e.replace(/[&<"]/g,e=>({"&":"&","<":"<",'"':"""}[e]))}function Ae(e,r){return`<${e}${r?Object.entries(r).map(([e,r])=>{if(null!=r&&!1!==r)return e=" "+we(e),!0===r?e:`${e}="${we(r)}"`}).filter(Boolean).join(""):""}>`}function Ce(e){return``}function Se(e,r,t){return null==r?Ae(e,t):Ae(e,t)+(r||"")+Ce(e)}function Ee(e,r){return r.code&&(e=Se("code",e)),r.del&&(e=Se("del",e)),r.em&&(e=Se("em",e)),r.strong&&(e=Se("strong",e)),e}const Le=new xe;function Me(e){const r=[];let t={};for(const n of e.children)if("text"===n.type)r.push(Ee(we(n.content),t));else if("code"===n.type)r.push(Se("code",Ee(we(n.content),t)));else if("softbreak"===n.type)r.push("
      ");else if(n.type.endsWith("_open")){const e=n.type.slice(0,-5);"link"===e?r.push(Ae("a",{href:n.href,title:n.title,target:"_blank",rel:"noopener noreferrer"})):t=Object.assign({},t,{[e]:!0})}else if(n.type.endsWith("_close")){const e=n.type.slice(0,-6);"link"===e?r.push(Ce("a")):t=Object.assign({},t,{[e]:!1})}return r.join("")}function Te(e){const r={t:"root",d:0,v:"",c:[]},t=[r];let n=0;for(const r of e){let e=t[t.length-1];if(r.type.endsWith("_open")){const i=r.type.slice(0,-5),l={};var o;if("heading"===i)for(n=r.hLevel;(null==(s=e)?void 0:s.d)>=n;){var s;t.pop(),e=t[t.length-1]}else n=Math.max(n,(null==(o=e)?void 0:o.d)||0)+1,"ordered_list"===i&&(l.start=r.order);const a={t:i,d:n,p:l,v:"",c:[]};e.c.push(a),t.push(a)}else{if(!e)continue;r.type===e.t+"_close"?"heading"===e.t?n=e.d:(t.pop(),n=0):"inline"===r.type?e.v=`${e.v||""}${Me(r)}`:"fence"===r.type&&e.c.push({t:r.type,d:n+1,v:`
      ${we(r.content)}
      `,c:[]})}}return r}Le.block.ruler.enable(["deflist"]),e.buildTree=Te,e.transform=function(e){var r;let t=Te(Le.parse(e||"",{}));return function e(r,t=0){if("heading"===r.t)r.c=r.c.filter(e=>"paragraph"!==e.t);else if("list_item"===r.t){var n;r.c=r.c.filter(e=>!["paragraph","fence"].includes(e.t)||(r.v||(r.v=e.v),!1)),null!=(null==(n=r.p)?void 0:n.index)&&(r.v=`${r.p.index}. ${r.v}`)}else if("ordered_list"===r.t){var o,s;let e=null!=(o=null==(s=r.p)?void 0:s.start)?o:1;r.c.forEach(r=>{"list_item"===r.t&&(r.p=Object.assign({},r.p,{index:e}),e+=1)})}0===r.c.length?delete r.c:(1!==r.c.length||r.c[0].v||(r.c=r.c[0].c),r.c.forEach(r=>e(r,t+1))),r.d=t,delete r.p}(t),1===(null==(r=t.c)?void 0:r.length)&&(t=t.c[0]),t}})); diff --git a/www/lib/markmap/view.min.js b/www/lib/markmap/view.min.js index 392a57fa0..4154da69f 100644 --- a/www/lib/markmap/view.min.js +++ b/www/lib/markmap/view.min.js @@ -1,2 +1,3 @@ /*! markmap-lib v0.7.11 | MIT License */ +// SPDX-License-Identifier: MIT define(["exports"],(function(t){"use strict";function n(t,n){return tn?1:t>=n?0:NaN}var e,r;1===(e=n).length&&(r=e,e=function(t,e){return n(r(t),e)});function i(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o=e)for(r=e;++or&&(r=e)}else for(;++o=e)for(r=e;++or&&(r=e);return r}function o(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o=e)for(r=e;++oe&&(r=e)}else for(;++o=e)for(r=e;++oe&&(r=e);return r}var a={value:function(){}};function s(){for(var t,n=0,e=arguments.length,r={};n=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}function c(t,n){for(var e,r=0,i=t.length;r0)for(var e,r,i=new Array(e),o=0;o=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),p.hasOwnProperty(n)?{space:p[n],local:t}:t}function m(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===f&&n.documentElement.namespaceURI===f?n.createElement(t):n.createElementNS(e,t)}}function g(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function y(t){var n=d(t);return(n.local?g:m)(n)}function v(){}function _(t){return null==t?v:function(){return this.querySelector(t)}}function w(){return[]}function x(t){return null==t?w:function(){return this.querySelectorAll(t)}}function b(t){return function(){return this.matches(t)}}function z(t){return new Array(t.length)}function k(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}k.prototype={constructor:k,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function M(t,n,e,r,i,o){for(var a,s=0,u=n.length,l=o.length;sn?1:t>=n?0:NaN}function A(t){return function(){this.removeAttribute(t)}}function N(t){return function(){this.removeAttributeNS(t.space,t.local)}}function X(t,n){return function(){this.setAttribute(t,n)}}function $(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function j(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function C(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function T(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function O(t){return function(){this.style.removeProperty(t)}}function P(t,n,e){return function(){this.style.setProperty(t,n,e)}}function R(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function I(t,n){return t.style.getPropertyValue(n)||T(t).getComputedStyle(t,null).getPropertyValue(n)}function q(t){return function(){delete this[t]}}function Y(t,n){return function(){this[t]=n}}function B(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function D(t){return t.trim().split(/^|\s+/)}function H(t){return t.classList||new L(t)}function L(t){this._node=t,this._names=D(t.getAttribute("class")||"")}function V(t,n){for(var e=H(t),r=-1,i=n.length;++r=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var ut={},lt=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(ut={mouseenter:"mouseover",mouseleave:"mouseout"}));function ct(t,n,e){return t=ht(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function ht(t,n,e){return function(r){var i=lt;lt=r;try{t.call(this,this.__data__,n,e)}finally{lt=i}}}function ft(t){return t.trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function pt(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r=w&&(w=_+1);!(v=g[w])&&++w=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=S);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?O:"function"==typeof n?R:P)(t,n,null==e?"":e)):I(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?q:"function"==typeof n?B:Y)(t,n)):this.node()[t]},classed:function(t,n){var e=D(t+"");if(arguments.length<2){for(var r=H(this.node()),i=-1,o=e.length;++i>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?Ft(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?Ft(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Pt.exec(t))?new Jt(n[1],n[2],n[3],1):(n=Rt.exec(t))?new Jt(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=It.exec(t))?Ft(n[1],n[2],n[3],n[4]):(n=qt.exec(t))?Ft(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Yt.exec(t))?tn(n[1],n[2]/100,n[3]/100,1):(n=Bt.exec(t))?tn(n[1],n[2]/100,n[3]/100,n[4]):Dt.hasOwnProperty(t)?Ut(Dt[t]):"transparent"===t?new Jt(NaN,NaN,NaN,0):null}function Ut(t){return new Jt(t>>16&255,t>>8&255,255&t,1)}function Ft(t,n,e,r){return r<=0&&(t=n=e=NaN),new Jt(t,n,e,r)}function Gt(t){return t instanceof $t||(t=Vt(t)),t?new Jt((t=t.rgb()).r,t.g,t.b,t.opacity):new Jt}function Zt(t,n,e,r){return 1===arguments.length?Gt(t):new Jt(t,n,e,null==r?1:r)}function Jt(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Kt(){return"#"+Wt(this.r)+Wt(this.g)+Wt(this.b)}function Qt(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function Wt(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function tn(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new en(t,n,e,r)}function nn(t){if(t instanceof en)return new en(t.h,t.s,t.l,t.opacity);if(t instanceof $t||(t=Vt(t)),!t)return new en;if(t instanceof en)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,s=o-i,u=(o+i)/2;return s?(a=n===o?(e-r)/s+6*(e0&&u<1?0:a,new en(a,s,u,t.opacity)}function en(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function rn(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function on(t){return function(){return t}}function an(t){return 1==(t=+t)?sn:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):on(isNaN(n)?e:n)}}function sn(t,n){var e=n-t;return e?function(t,n){return function(e){return t+e*n}}(t,e):on(isNaN(t)?n:t)}Nt($t,Vt,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Ht,formatHex:Ht,formatHsl:function(){return nn(this).formatHsl()},formatRgb:Lt,toString:Lt}),Nt(Jt,Zt,Xt($t,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Jt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Jt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Kt,formatHex:Kt,formatRgb:Qt,toString:Qt})),Nt(en,(function(t,n,e,r){return 1===arguments.length?nn(t):new en(t,n,e,null==r?1:r)}),Xt($t,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new en(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new en(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Jt(rn(t>=240?t-240:t+120,i,r),rn(t,i,r),rn(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var un=function t(n){var e=an(n);function r(t,n){var r=e((t=Zt(t)).r,(n=Zt(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=sn(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function ln(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var cn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hn=new RegExp(cn.source,"g");function fn(t,n){var e,r,i,o=cn.lastIndex=hn.lastIndex=0,a=-1,s=[],u=[];for(t+="",n+="";(e=cn.exec(t))&&(r=hn.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),s[a]?s[a]+=i:s[++a]=i),(e=e[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,u.push({i:a,x:ln(e,r)})),o=hn.lastIndex;return o180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:ln(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,s,u),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:ln(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,s,u),function(t,n,e,r,o,a){if(t!==e||n!==r){var s=o.push(i(o)+"scale(",null,",",null,")");a.push({i:s-4,x:ln(t,e)},{i:s-2,x:ln(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,u),o=a=null,function(t){for(var n,e=-1,r=u.length;++e=0&&n._call.call(null,t),n=n._next;--An}()}finally{An=0,function(){var t,n,e=En,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:En=n);Sn=t,Dn(r)}(),jn=0}}function Bn(){var t=Tn.now(),n=t-$n;n>1e3&&(Cn-=n,$n=t)}function Dn(t){An||(Nn&&(Nn=clearTimeout(Nn)),t-jn>24?(t<1/0&&(Nn=setTimeout(Yn,t-Tn.now()-Cn)),Xn&&(Xn=clearInterval(Xn))):(Xn||($n=Tn.now(),Xn=setInterval(Bn,1e3)),An=1,On(Yn)))}function Hn(t,n,e){var r=new In;return n=null==n?0:+n,r.restart((function(e){r.stop(),t(e+n)}),n,e),r}In.prototype=qn.prototype={constructor:In,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?Pn():+e)+(null==n?0:+n),this._next||Sn===this||(Sn?Sn._next=this:En=this,Sn=this),this._call=t,this._time=e,Dn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Dn())}};var Ln=s("start","end","cancel","interrupt"),Vn=[];function Un(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(u){var l,c,h,f;if(1!==e.state)return s();for(l in i)if((f=i[l]).name===e.name){if(3===f.state)return Hn(o);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[l]):+l0)throw new Error("too late; already scheduled");return e}function Gn(t,n){var e=Zn(t,n);if(e.state>3)throw new Error("too late; already running");return e}function Zn(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Jn(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function Kn(t,n){var e,r;return function(){var i=Gn(this,t),o=i.tween;if(o!==e)for(var a=0,s=(r=e=o).length;a=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?Fn:Gn;return function(){var a=o(this,t),s=a.on;s!==r&&(i=(r=s).copy()).on(n,e),a.on=i}}var ye=wt.prototype.constructor;function ve(t){return function(){this.style.removeProperty(t)}}function _e(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function we(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&_e(t,o,e)),r}return o._value=n,o}function xe(t){return function(n){this.textContent=t.call(this,n)}}function be(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&xe(r)),n}return r._value=t,r}var ze=0;function ke(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Me(){return++ze}var Ee=wt.prototype;ke.prototype=function(t){return wt().transition(t)}.prototype={constructor:ke,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=_(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a1e-6)if(Math.abs(c*s-u*l)>1e-6&&i){var f=e-o,p=r-a,d=s*s+u*u,m=f*f+p*p,g=Math.sqrt(d),y=Math.sqrt(h),v=i*Math.tan((Ne-Math.acos((d+h-m)/(2*g*y)))/2),_=v/y,w=v/g;Math.abs(_-1)>1e-6&&(this._+="L"+(t+_*l)+","+(n+_*c)),this._+="A"+i+","+i+",0,0,"+ +(c*f>l*p)+","+(this._x1=t+w*s)+","+(this._y1=n+w*u)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,o=!!o;var a=(e=+e)*Math.cos(r),s=e*Math.sin(r),u=t+a,l=n+s,c=1^o,h=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+u+","+l:(Math.abs(this._x1-u)>1e-6||Math.abs(this._y1-l)>1e-6)&&(this._+="L"+u+","+l),e&&(h<0&&(h=h%Xe+Xe),h>$e?this._+="A"+e+","+e+",0,1,"+c+","+(t-a)+","+(n-s)+"A"+e+","+e+",0,1,"+c+","+(this._x1=u)+","+(this._y1=l):h>1e-6&&(this._+="A"+e+","+e+",0,"+ +(h>=Ne)+","+c+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};function Te(){}function Oe(t,n){var e=new Te;if(t instanceof Te)t.each((function(t,n){e.set(n,t)}));else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i=0;)n+=e[r].value;else n=1;t.value=n}function qe(t,n){var e,r,i,o,a,s=new He(t),u=+t.value&&(s.value=t.value),l=[s];for(null==n&&(n=Ye);e=l.pop();)if(u&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)l.push(r=e.children[o]=new He(i[o])),r.parent=e,r.depth=e.depth+1;return s.eachBefore(De)}function Ye(t){return t.children}function Be(t){t.data=t.data.data}function De(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function He(t){this.data=t,this.depth=this.height=0,this.parent=null}function Le(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}Pe.prototype=function(t,n){var e=new Pe;if(t instanceof Pe)t.each((function(t){e.add(t)}));else if(t){var r=-1,i=t.length;if(null==n)for(;++r=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each((function(n){t.push(n)})),t},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return qe(this).eachBefore(Be)}};var Ve=Array.prototype.slice,Ue={name:"implicit"};function Fe(){var t=Oe(),n=[],e=[],r=Ue;function i(i){var o=i+"",a=t.get(o);if(!a){if(r!==Ue)return r;t.set(o,a=n.push(i))}return e[(a-1)%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=Oe();for(var r,o,a=-1,s=e.length;++ar?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function gr(){var t,n,e=cr,r=hr,i=mr,o=pr,a=dr,u=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],c=250,h=Mn,f=s("start","zoom","end"),p=0;function d(t){t.property("__zoom",fr).on("wheel.zoom",x).on("mousedown.zoom",b).on("dblclick.zoom",z).filter(a).on("touchstart.zoom",k).on("touchmove.zoom",M).on("touchend.zoom touchcancel.zoom",E).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(t,n){return(n=Math.max(u[0],Math.min(u[1],n)))===t.k?t:new or(n,t.x,t.y)}function g(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new or(t.k,r,i)}function y(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function v(t,n,e){t.on("start.zoom",(function(){_(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){_(this,arguments).end()})).tween("zoom",(function(){var t=this,i=arguments,o=_(t,i),a=r.apply(t,i),s=null==e?y(a):"function"==typeof e?e.apply(t,i):e,u=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),l=t.__zoom,c="function"==typeof n?n.apply(t,i):n,f=h(l.invert(s).concat(u/l.k),c.invert(s).concat(u/c.k));return function(t){if(1===t)t=c;else{var n=f(t),e=u/n[2];t=new or(e,s[0]-n[0]*e,s[1]-n[1]*e)}o.zoom(null,t)}}))}function _(t,n,e){return!e&&t.__zooming||new w(t,n)}function w(t,n){this.that=t,this.args=n,this.active=0,this.extent=r.apply(t,n),this.taps=0}function x(){if(e.apply(this,arguments)){var t=_(this,arguments),n=this.__zoom,r=Math.max(u[0],Math.min(u[1],n.k*Math.pow(2,o.apply(this,arguments)))),a=kt(this);if(t.wheel)t.mouse[0][0]===a[0]&&t.mouse[0][1]===a[1]||(t.mouse[1]=n.invert(t.mouse[0]=a)),clearTimeout(t.wheel);else{if(n.k===r)return;t.mouse=[a,n.invert(a)],Jn(this),t.start()}lr(),t.wheel=setTimeout(s,150),t.zoom("mouse",i(g(m(n,r),t.mouse[0],t.mouse[1]),t.extent,l))}function s(){t.wheel=null,t.end()}}function b(){if(!n&&e.apply(this,arguments)){var t=_(this,arguments,!0),r=xt(lt.view).on("mousemove.zoom",u,!0).on("mouseup.zoom",c,!0),o=kt(this),a=lt.clientX,s=lt.clientY;St(lt.view),ur(),t.mouse=[o,this.__zoom.invert(o)],Jn(this),t.start()}function u(){if(lr(),!t.moved){var n=lt.clientX-a,e=lt.clientY-s;t.moved=n*n+e*e>p}t.zoom("mouse",i(g(t.that.__zoom,t.mouse[0]=kt(t.that),t.mouse[1]),t.extent,l))}function c(){r.on("mousemove.zoom mouseup.zoom",null),At(lt.view,t.moved),lr(),t.end()}}function z(){if(e.apply(this,arguments)){var t=this.__zoom,n=kt(this),o=t.invert(n),a=t.k*(lt.shiftKey?.5:2),s=i(g(m(t,a),n,o),r.apply(this,arguments),l);lr(),c>0?xt(this).transition().duration(c).call(v,s,n):xt(this).call(d.transform,s)}}function k(){if(e.apply(this,arguments)){var n,r,i,o,a=lt.touches,s=a.length,u=_(this,arguments,lt.changedTouches.length===s);for(ur(),r=0;rt.children,nodeSize:t=>t.data.size,spacing:0});function vr(t){const n=Object.assign({},yr,t);function e(t){const e=n[t];return"function"==typeof e?e:()=>e}function r(t){const n=o(function(){const t=i(),n=e("nodeSize"),r=e("spacing");return class extends t{constructor(t){super(t),Object.assign(this,{x:0,y:0,relX:0,prelim:0,shift:0,change:0,lExt:this,lExtRelX:0,lThr:null,rExt:this,rExtRelX:0,rThr:null})}get size(){return n(this.data)}spacing(t){return r(this.data,t.data)}get x(){return this.data.x}set x(t){this.data.x=t}get y(){return this.data.y}set y(t){this.data.y=t}update(){return _r(this),wr(this),this}}}(),t,t=>t.children);return n.update(),n.data}function i(){const t=e("nodeSize"),n=e("spacing");return class e extends qe.prototype.constructor{constructor(t){super(t)}copy(){const t=o(this.constructor,this,t=>t.children);return t.each(t=>t.data=t.data.data),t}get size(){return t(this)}spacing(t){return n(this,t)}get nodes(){return this.descendants()}get xSize(){return this.size[0]}get ySize(){return this.size[1]}get top(){return this.y}get bottom(){return this.y+this.ySize}get left(){return this.x-this.xSize/2}get right(){return this.x+this.xSize/2}get root(){const t=this.ancestors();return t[t.length-1]}get numChildren(){return this.hasChildren?this.children.length:0}get hasChildren(){return!this.noChildren}get noChildren(){return null===this.children}get firstChild(){return this.hasChildren?this.children[0]:null}get lastChild(){return this.hasChildren?this.children[this.numChildren-1]:null}get extents(){return(this.children||[]).reduce((t,n)=>e.maxExtents(t,n.extents),this.nodeExtents)}get nodeExtents(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}static maxExtents(t,n){return{top:Math.min(t.top,n.top),bottom:Math.max(t.bottom,n.bottom),left:Math.min(t.left,n.left),right:Math.max(t.right,n.right)}}}}function o(t,n,e){const r=(n,i)=>{const o=new t(n);Object.assign(o,{parent:i,depth:null===i?0:i.depth+1,height:0,length:1});const a=e(n)||[];return o.children=0===a.length?null:a.map(t=>r(t,o)),o.children&&Object.assign(o,o.children.reduce((t,n)=>({height:Math.max(t.height,n.height+1),length:t.length+n.length}),o)),o};return r(n,null)}return Object.assign(r,{nodeSize(t){return arguments.length?(n.nodeSize=t,r):n.nodeSize},spacing(t){return arguments.length?(n.spacing=t,r):n.spacing},children(t){return arguments.length?(n.children=t,r):n.children},hierarchy(t,e){const r=void 0===e?n.children:e;return o(i(),t,r)},dump(t){const n=e("nodeSize"),r=t=>e=>{const i=t+" ",o=t+" ",{x:a,y:s}=e,u=n(e),l=e.children||[],c=0===l.length?" ":`,${i}children: [${o}${l.map(r(o)).join(o)}${i}],${t}`;return`{ size: [${u.join(", ")}],${i}x: ${a}, y: ${s}${c}},`};return r("\n")(t)}}),r}vr.version="2.1.1";const _r=(t,n=0)=>(t.y=n,(t.children||[]).reduce((n,e)=>{const[r,i]=n;_r(e,t.y+t.ySize);const o=(0===r?e.lExt:e.rExt).bottom;0!==r&&br(t,r,i);return[r+1,Xr(o,r,i)]},[0,null]),xr(t),Nr(t),t),wr=(t,n,e)=>{void 0===n&&(n=-t.relX-t.prelim,e=0);const r=n+t.relX;return t.relX=r+t.prelim-e,t.prelim=0,t.x=e+t.relX,(t.children||[]).forEach(n=>wr(n,r,t.x)),t},xr=t=>{(t.children||[]).reduce((t,n)=>{const[e,r]=t,i=e+n.shift,o=r+i+n.change;return n.relX+=o,[i,o]},[0,0])},br=(t,n,e)=>{const r=t.children[n-1],i=t.children[n];let o=r,a=r.relX,s=i,u=i.relX,l=!0;for(;o&&s;){o.bottom>e.lowY&&(e=e.next);const r=a+o.prelim-(u+s.prelim)+o.xSize/2+s.xSize/2+o.spacing(s);(r>0||r<0&&l)&&(u+=r,zr(i,r),kr(t,n,e.index,r)),l=!1;const c=o.bottom,h=s.bottom;c<=h&&(o=Er(o),o&&(a+=o.relX)),c>=h&&(s=Mr(s),s&&(u+=s.relX))}!o&&s?Sr(t,n,s,u):o&&!s&&Ar(t,n,o,a)},zr=(t,n)=>{t.relX+=n,t.lExtRelX+=n,t.rExtRelX+=n},kr=(t,n,e,r)=>{const i=t.children[n],o=n-e;if(o>1){const n=r/o;t.children[e+1].shift+=n,i.shift-=n,i.change-=r-n}},Mr=t=>t.hasChildren?t.firstChild:t.lThr,Er=t=>t.hasChildren?t.lastChild:t.rThr,Sr=(t,n,e,r)=>{const i=t.firstChild,o=i.lExt,a=t.children[n];o.lThr=e;const s=r-e.relX-i.lExtRelX;o.relX+=s,o.prelim-=s,i.lExt=a.lExt,i.lExtRelX=a.lExtRelX},Ar=(t,n,e,r)=>{const i=t.children[n],o=i.rExt,a=t.children[n-1];o.rThr=e;const s=r-e.relX-i.rExtRelX;o.relX+=s,o.prelim-=s,i.rExt=a.rExt,i.rExtRelX=a.rExtRelX},Nr=t=>{if(t.hasChildren){const n=t.firstChild,e=t.lastChild,r=(n.prelim+n.relX-n.xSize/2+e.relX+e.prelim+e.xSize/2)/2;Object.assign(t,{prelim:r,lExt:n.lExt,lExtRelX:n.lExtRelX,rExt:e.rExt,rExtRelX:e.rExtRelX})}},Xr=(t,n,e)=>{for(;null!==e&&t>=e.lowY;)e=e.next;return{lowY:t,index:n,next:e}},$r=Math.random().toString(36).slice(2,8);let jr=0;function Cr(){}function Tr(t,n,e="c"){const r=(t,i)=>n(t,()=>{var n;null==(n=t[e])||n.forEach(n=>{r(n,t)})},i);r(t)}function Or(t){if(Array.from)return Array.from(t);const n=[];for(let e=0;e{t&&e.indexOf(t)<0&&e.push(t)}),e.join(" ")}function Rr(t){if("string"==typeof t){const n=t;t=t=>t.tagName===n}const n=t;return function(){let t=Or(this.childNodes);return n&&(t=t.filter(t=>n(t))),t}}function Ir(t,n,e){const r=document.createElement(t);return n&&Object.entries(n).forEach(([t,n])=>{r[t]=n}),e&&Object.entries(e).forEach(([t,n])=>{r.setAttribute(t,n)}),r}const qr=function(t){const n={};return function(...e){const r=""+e[0];let i=n[r];return i||(i={value:t(...e)},n[r]=i),i.value}}(t=>{document.head.append(Ir("link",{rel:"preload",as:"script",href:t}))});function Yr(t,n){if("script"===t.type)return new Promise((n,e)=>{document.head.append(Ir("script",Object.assign({},t.data,{onload:n,onerror:e})))});if("iife"===t.type){const{fn:e,getParams:r}=t.data;e(...(null==r?void 0:r(n))||[])}}function Br(t){"style"===t.type?document.head.append(Ir("style",{textContent:t.data})):"stylesheet"===t.type&&document.head.append(Ir("link",Object.assign({rel:"stylesheet"},t.data)))}async function Dr(t,n,e){e=Object.assign({},e),await Promise.all(n.map(t=>(function(t){for(const n of t)Br(n)}(t.styles),async function(t,n){const e=t.filter(t=>"script"===t.type);e.length>1&&e.forEach(t=>qr(t.data.src));for(const e of t)await Yr(e,n)}(t.scripts,e))));for(const{initialize:r}of n)r&&r(t,e)}const Hr={styles:[],scripts:[{type:"iife",data:{fn:t=>{t.options=Object.assign({skipHtmlTags:{"[-]":["code","pre"]}},t.options),t.startup=Object.assign({typeset:!1},t.startup),window.MathJax=t},getParams:t=>[Object.assign({},t.mathJax)]}},{type:"script",data:{src:"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"}}],initialize:function(t,n){t.transformHtml.tap((t,n)=>{var e,r;null==(e=(r=window.MathJax).typeset)||e.call(r,n)})}},Lr={};const Vr={styles:[{type:"stylesheet",data:{href:"https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism.css"}}],scripts:[{type:"iife",data:{fn:()=>{window.Prism={manual:!0}}}},{type:"script",data:{src:"https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-core.min.js"}},{type:"script",data:{src:"https://cdn.jsdelivr.net/npm/prismjs@1/plugins/autoloader/prism-autoloader.min.js"}}],initialize:function(t,n){t.transformHtml.tap((t,n)=>{const{Prism:e}=window;!async function(t,n){if(!n.length)return;const{Prism:e}=window;try{await new Promise((t,r)=>{e.plugins.autoloader.loadLanguages(n,t,r)})}catch(t){Lr[t]=!0}t.setData(),t.fit()}(t,function(t,n){if(t.flatMap)return t.flatMap(n);const e=[];for(let r=0;rOr(t.querySelectorAll("code[class*=language-]"))).map(t=>{const n=t.className.match(/(?:^|\s)language-(\S+)|$/)[1];if(e.languages[n])e.highlightElement(t);else if(!Lr[n])return n}).filter(Boolean))})}};var Ur=Object.freeze({__proto__:null,mathJax:Hr,prism:Vr});function Fr(t){const n=t.data;return Math.max(6-2*n.d,1.5)}class Gr{constructor(t,n){var e;this.options=void 0,this.state=void 0,this.svg=void 0,this.styleNode=void 0,this.g=void 0,this.zoom=void 0,["handleZoom","handleClick"].forEach(t=>{this[t]=this[t].bind(this)}),this.svg=t.datum?t:xt(t),this.styleNode=this.svg.append("style"),this.zoom=gr().on("zoom",this.handleZoom),this.options=Object.assign({duration:500,nodeFont:"300 16px/20px sans-serif",nodeMinHeight:16,spacingVertical:5,spacingHorizontal:80,autoFit:!1,fitRatio:.95,color:(e=Fe(Ge),t=>e(t.p.i)),paddingX:8},n),this.state={id:this.options.id||(jr+=1,`mm-${$r}-${jr}`)},this.g=this.svg.append("g").attr("class",this.state.id+"-g"),this.updateStyle(),this.svg.call(this.zoom)}getStyleContent(){const{style:t,nodeFont:n}=this.options,{id:e}=this.state;return`.${e} a { color: #0097e6; }\n.${e} a:hover { color: #00a8ff; }\n.${e}-g > path { fill: none; }\n.${e}-fo > div { font: ${n}; white-space: nowrap; }\n.${e}-fo code { padding: .2em .4em; font-size: calc(1em - 2px); color: #555; background-color: #f0f0f0; border-radius: 2px; }\n.${e}-fo del { text-decoration: line-through; }\n.${e}-fo em { font-style: italic; }\n.${e}-fo strong { font-weight: 600; }\n.${e}-fo pre { margin: 0; }\n.${e}-fo pre[class*=language-] { padding: 0; }\n.${e}-g > g { cursor: pointer; }\n${"function"==typeof t?t(e):""}\n`}updateStyle(){this.svg.attr("class",Pr(this.svg.attr("class"),this.state.id)),this.styleNode.text(this.getStyleContent())}handleZoom(){const{transform:t}=lt;this.g.attr("transform",t)}handleClick(t){var n;const{data:e}=t;e.p=Object.assign({},e.p,{f:!(null==(n=e.p)?void 0:n.f)}),this.renderData(t.data)}initializeData(t){let n=0;const{nodeFont:e,color:r,nodeMinHeight:i}=this.options,{id:o}=this.state,a=document.createElement("div"),s=o+"-container";a.className=Pr(a.className,o+"-fo",s);const u=document.createElement("style");u.textContent=`\n${this.getStyleContent()}\n.${s} {\n position: absolute;\n width: 0;\n height: 0;\n top: -100px;\n left: -100px;\n overflow: hidden;\n font: ${e};\n}\n.${s} > div {\n display: inline-block;\n}\n`,document.body.append(u,a),Tr(t,(t,e)=>{var i;t.c=null==(i=t.c)?void 0:i.map(t=>Object.assign({},t)),n+=1;const o=document.createElement("div");o.innerHTML=t.v,a.append(o),t.p=Object.assign({},t.p,{i:n,el:o}),r(t),e()});const l=Or(a.childNodes);this.constructor.transformHtml.call(this,l),Tr(t,(t,n,e)=>{var r;const o=t.p.el.getBoundingClientRect();t.v=t.p.el.innerHTML,t.p.s=[Math.ceil(o.width),Math.max(Math.ceil(o.height),i)],t.p.k=`${(null==e||null==(r=e.p)?void 0:r.i)||""}.${t.p.i}:${t.v}`,n()}),a.remove(),u.remove()}setOptions(t){Object.assign(this.options,t)}setData(t,n){t||(t=Object.assign({},this.state.data)),this.state.data=t,this.initializeData(t),n&&this.setOptions(n),this.renderData()}renderData(t){var n,e;if(!this.state.data)return;const{spacingHorizontal:r,paddingX:a,spacingVertical:s,autoFit:u,color:l}=this.options,{id:c}=this.state,h=vr().children(t=>{var n;return!(null==(n=t.p)?void 0:n.f)&&t.c}).nodeSize(t=>{const[n,e]=t.data.p.s;return[e,n+(n?2*a:0)+r]}).spacing((t,n)=>t.parent===n.parent?s:2*s),f=h.hierarchy(this.state.data);h(f),function(t,n){Tr(t,(t,e)=>{t.ySizeInner=t.ySize-n,t.y+=n,e()},"children")}(f,r);const p=f.descendants().reverse(),d=f.links(),m=er(),g=o(p,t=>t.x-t.xSize/2),y=i(p,t=>t.x+t.xSize/2),v=o(p,t=>t.y),_=i(p,t=>t.y+t.ySizeInner);Object.assign(this.state,{minX:g,maxX:y,minY:v,maxY:_}),u&&this.fit();const w=t&&p.find(n=>n.data===t)||f,x=null!=(n=w.data.p.x0)?n:w.x,b=null!=(e=w.data.p.y0)?e:w.y,z=this.g.selectAll(Rr("g")).data(p,t=>t.data.p.k),k=z.enter().append("g").attr("transform",t=>`translate(${b+w.ySizeInner-t.ySizeInner},${x+w.xSize/2-t.xSize})`).on("click",this.handleClick),M=this.transition(z.exit());M.select("rect").attr("width",0).attr("x",t=>t.ySizeInner),M.select("foreignObject").style("opacity",0),M.attr("transform",t=>`translate(${w.y+w.ySizeInner-t.ySizeInner},${w.x+w.xSize/2-t.xSize})`).remove();const E=z.merge(k);this.transition(E).attr("transform",t=>`translate(${t.y},${t.x-t.xSize/2})`);const S=E.selectAll(Rr("rect")).data(t=>[t],t=>t.data.p.k).join(t=>t.append("rect").attr("x",t=>t.ySizeInner).attr("y",t=>t.xSize-Fr(t)/2).attr("width",0).attr("height",Fr),t=>t,t=>t.remove());this.transition(S).attr("x",-1).attr("width",t=>t.ySizeInner+2).attr("fill",t=>l(t.data));const A=E.selectAll(Rr("circle")).data(t=>t.data.c?[t]:[],t=>t.data.p.k).join(t=>t.append("circle").attr("stroke-width","1.5").attr("cx",t=>t.ySizeInner).attr("cy",t=>t.xSize).attr("r",0),t=>t,t=>t.remove());this.transition(A).attr("r",6).attr("stroke",t=>l(t.data)).attr("fill",t=>{var n;return(null==(n=t.data.p)?void 0:n.f)?l(t.data):"#fff"});const N=E.selectAll(Rr("foreignObject")).data(t=>[t],t=>t.data.p.k).join(t=>{const n=t.append("foreignObject").attr("class",c+"-fo").attr("x",a).attr("y",0).style("opacity",0).attr("height",t=>t.xSize);return n.append("xhtml:div").select((function(t){const n=t.data.p.el.cloneNode(!0);return this.replaceWith(n),n})).attr("xmlns","http://www.w3.org/1999/xhtml"),n},t=>t,t=>t.remove()).attr("width",t=>Math.max(0,t.ySizeInner-2*a));this.transition(N).style("opacity",1);const X=this.g.selectAll(Rr("path")).data(d,t=>t.target.data.p.k).join(t=>{const n=[b+w.ySizeInner,x+w.xSize/2];return t.insert("path","g").attr("d",m({source:n,target:n}))},t=>t,t=>{const n=[w.y+w.ySizeInner,w.x+w.xSize/2];return this.transition(t).attr("d",m({source:n,target:n})).remove()});this.transition(X).attr("stroke",t=>l(t.target.data)).attr("stroke-width",t=>Fr(t.target)).attr("d",t=>{const n=[t.source.y+t.source.ySizeInner,t.source.x+t.source.xSize/2],e=[t.target.y,t.target.x+t.target.xSize/2];return m({source:n,target:e})}),p.forEach(t=>{t.data.p.x0=t.x,t.data.p.y0=t.y})}transition(t){const{duration:n}=this.options;return t.transition().duration(n)}fit(){const t=this.svg.node(),{width:n,height:e}=t.getBoundingClientRect(),{fitRatio:r}=this.options,{minX:i,maxX:o,minY:a,maxY:s}=this.state,u=s-a,l=o-i,c=Math.min(n/u*r,e/l*r,2),h=ar.translate((n-u*c)/2-a*c,(e-l*c)/2-i*c).scale(c);return this.transition(this.svg).call(this.zoom.transform,h).end().catch(Cr)}rescale(t){const n=this.svg.node(),{width:e,height:r}=n.getBoundingClientRect(),i=e/2,o=r/2,a=sr(n),s=a.translate((i-a.x)*(1-t)/a.k,(o-a.y)*(1-t)/a.k).scale(t);return this.transition(this.svg).call(this.zoom.transform,s).end().catch(Cr)}static create(t,n,e){const r=new Gr(t,n);return e&&(r.setData(e),r.fit()),r}}Gr.transformHtml=new class{constructor(){this.listeners=[]}tap(t){this.listeners.push(t)}call(...t){for(const n of this.listeners)n(...t)}},t.Markmap=Gr,t.loadPlugins=async function(t,n){return t=t.map(t=>{if("string"==typeof t){const n=t;(t=Ur[n])||console.warn("[markmap] Unknown plugin: "+n)}return t}).filter(Boolean),Dr(Gr,t,n)},t.markmap=function(t,n,e){return Gr.create(t,e,n)},t.plugins=Ur})); From d4b01b28408ad279f91fe2f72f2dddf0c7866e43 Mon Sep 17 00:00:00 2001 From: David Benque Date: Mon, 23 Oct 2023 12:26:17 +0100 Subject: [PATCH 11/73] Add licensing info for everything in www/lib --- .reuse/dep5 | 46 +++- LICENSES/CC-BY-SA-3.0.txt | 99 +++++++++ LICENSES/LGPL-3.0-only.txt | 304 +++++++++++++++++++++++++++ www/lib/calendar/date-picker.js | 4 + www/lib/changelog.md | 26 +-- www/lib/datepicker/flatpickr.js | 2 - www/lib/datepicker/flatpickr.min.css | 2 - www/lib/highlight/styles/dark.css | 3 + www/lib/highlight/styles/default.css | 4 + www/lib/highlight/styles/github.css | 3 + www/lib/ical.min.js | 1 + www/lib/ical/README.md | 6 + www/lib/markmap/transform.min.js | 1 - www/lib/markmap/view.min.js | 1 - www/lib/optional/optional.js | 3 + 15 files changed, 485 insertions(+), 20 deletions(-) create mode 100644 LICENSES/CC-BY-SA-3.0.txt create mode 100644 LICENSES/LGPL-3.0-only.txt diff --git a/.reuse/dep5 b/.reuse/dep5 index 30d228250..3f97ae236 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -33,10 +33,54 @@ Files: www/lib/pdfjs/* Copyright: 2017 Mozilla Foundation License: Apache-2.0 -Files: www/lib/rangy +Files: www/lib/codemirror-extra-modes/asciidoc/* +Copyright: (c) 2015, the Asciidoctor Project +License: BSD-3-Clause + +Files: www/lib/datepicker/* +Copyright: 2017 Gregory Petrosyan +License: MIT + +Files: www/lib/diff-dom/* +Copyright: Johannes Wilm, Fidus Writer +License: LGPL-3.0-only + +Files: www/lib/fabric-history.min.js +Copyright: 2008-2015 Printio (Juriy Zaytsev, Maxim Chernyak) +License: MIT + +Files: www/lib/fabric.min.js +Copyright: 2008-2015 Printio (Juriy Zaytsev, Maxim Chernyak) +License: MIT + +Files: www/lib/pdfjs/* +Copyright: 2012 Mozilla Foundation +License: Apache-2.0 + +Files: www/lib/qrcode.min.js +Copyright: Sangmin Shim +License: MIT + +Files: www/lib/rangy/rangy-core.min.js Copyright: 2015, Tim Down License: MIT +Files: www/lib/textFit.min.js +Copyright: 11/2014 by STRML (strml.github.com) +License: MIT + +Files: www/lib/tippy/* +Copyright: 2017 atomiks +License: MIT + +Files: www/lib/turndown.browser.umd.js +Copyright: 2017 Dom Christie +License: MIT + +Files: www/lib/markmap/* +Copyright: 2015 Jakub Dundalek +License: MIT + Files: www/pad/mathjax/* Copyright: 2009-2018 The MathJax Consortium License: Apache-2.0 diff --git a/LICENSES/CC-BY-SA-3.0.txt b/LICENSES/CC-BY-SA-3.0.txt new file mode 100644 index 000000000..39a8591c4 --- /dev/null +++ b/LICENSES/CC-BY-SA-3.0.txt @@ -0,0 +1,99 @@ +Creative Commons Attribution-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. + + b. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. + + c. "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. + + d. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. + + e. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. + + f. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. + + g. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. + + h. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. + + i. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. + + j. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. + + k. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; + + b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; + + c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and, + + d. to Distribute and Publicly Perform Adaptations. + + e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; + + ii. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, + + iii. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. + + b. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. + + c. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. + + d. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + + b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. + + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. + + c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + + d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. + + e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. + + f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. + +Creative Commons Notice + +Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. + +Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of the License. + +Creative Commons may be contacted at http://creativecommons.org/. diff --git a/LICENSES/LGPL-3.0-only.txt b/LICENSES/LGPL-3.0-only.txt new file mode 100644 index 000000000..513d1c01f --- /dev/null +++ b/LICENSES/LGPL-3.0-only.txt @@ -0,0 +1,304 @@ +GNU LESSER 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. + +This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. + +0. Additional Definitions. + +As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. + +"The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. + +An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. + +A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". + +The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. + +The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. + +1. Exception to Section 3 of the GNU GPL. +You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. + +2. Conveying Modified Versions. +If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: + + a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. + +3. Object Code Incorporating Material from Library Header Files. +The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license document. + +4. Combined Works. +You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: + + a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license document. + + c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. + + e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) + +5. Combined Libraries. +You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. + +6. Revised Versions of the GNU Lesser General Public License. +The Free Software Foundation may publish revised and/or new versions of the GNU Lesser 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 Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. + +GNU GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright © 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/www/lib/calendar/date-picker.js b/www/lib/calendar/date-picker.js index 19b6dccb3..fb5eafa60 100644 --- a/www/lib/calendar/date-picker.js +++ b/www/lib/calendar/date-picker.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/lib/datepicker/flatpickr.js', diff --git a/www/lib/changelog.md b/www/lib/changelog.md index fcd256886..fd7a2dded 100644 --- a/www/lib/changelog.md +++ b/www/lib/changelog.md @@ -6,19 +6,19 @@ SPDX-License-Identifier: AGPL-3.0-or-later This file is intended to be used as a log of what third-party source we have vendored, where we got it, and what modifications we have made to it (if any). -* [turndown v7.1.1](https://github.com/mixmark-io/turndown/releases/tag/v7.1.1) built from unmodified source as per its build scripts. -* [less.min.js v3.11.1](https://github.com/less/less.js/releases/tag/v3.11.1) with a minor modification to produce slightly more compact CSS -* [textFit.min.js v2.4.0 ](https://github.com/STRML/textFit/releases/tag/v2.4.0) to ensure that app names fit inside their icon containers on the home page -* [highlightjs v10.2.0](https://github.com/highlightjs/highlight.js/) for syntax highlighting in our code editor -* [our fork of tippy.js v1.2.0](https://github.com/xwiki-labs/tippyjs) for adding tooltips. -* [jscolor v2.0.5](https://jscolor.com/) for providing a consistent color picker across all browsers -* [jquery.ui 1.12.1](https://jqueryui.com/) for its 'autocomplete' extension which is used for our tag picker -* [pdfjs](https://mozilla.github.io/pdf.js/) with some minor modifications to prevent CSP errors -* [mermaid 10.2.4](https://github.com/mermaid-js/mermaid/releases/tag/v10.2.4) extends our markdown integration to support a variety of diagram types -* [Fabricjs 4.6.0](https://github.com/fabricjs/fabric.js) and [Fabric-history](https://github.com/lyzerk/fabric-history) for the whiteboard app -* [qrcode.js](https://github.com/davidshimjs/qrcodejs) from [this commit](https://github.com/davidshimjs/qrcodejs/commit/06c7a5e134f116402699f03cda5819e10a0e5787) since the repo doesn't use tags -* [Requirejs optional module plugin](https://stackoverflow.com/a/27422370) * [asciidoc.js 2.0.0](https://github.com/asciidoctor/codemirror-asciidoc/releases/tag/2.0.0) with slight changes to match the format of other codemirror modes * [Asciidoctor.js 2.2.6](https://github.com/asciidoctor/asciidoctor.js/releases/tag/v2.2.6) for AsciiDoc rendering +* [diffDOM 2.1.0](https://github.com/fiduswriter/diffDOM) with minor modifications +* [Fabricjs 4.6.0](https://github.com/fabricjs/fabric.js) and [Fabric-history](https://github.com/lyzerk/fabric-history) for the whiteboard app +* [highlightjs v10.2.0](https://github.com/highlightjs/highlight.js/) for syntax highlighting in our code editor +* [jquery.ui 1.12.1](https://jqueryui.com/) for its 'autocomplete' extension which is used for our tag picker +* [jscolor v2.0.5](https://jscolor.com/) for providing a consistent color picker across all browsers +* [less.min.js v3.11.1](https://github.com/less/less.js/releases/tag/v3.11.1) with a minor modification to produce slightly more compact CSS +* [mermaid 10.2.4](https://github.com/mermaid-js/mermaid/releases/tag/v10.2.4) extends our markdown integration to support a variety of diagram types +* [our fork of tippy.js v1.2.0](https://github.com/xwiki-labs/tippyjs) for adding tooltips. +* [pdfjs](https://mozilla.github.io/pdf.js/) with some minor modifications to prevent CSP errors +* [qrcode.js](https://github.com/davidshimjs/qrcodejs) from [this commit](https://github.com/davidshimjs/qrcodejs/commit/06c7a5e134f116402699f03cda5819e10a0e5787) since the repo doesn't use tags * [Rangy 1.3.0](https://github.com/timdown/rangy/tree/1.3.0) for cursor management. NOTE: [A CVE](https://github.com/advisories/GHSA-65rp-mhqf-8gj3) exists for this version but CryptPad isn't affected - +* [Requirejs optional module plugin](https://stackoverflow.com/a/27422370) +* [textFit.min.js v2.4.0 ](https://github.com/STRML/textFit/releases/tag/v2.4.0) to ensure that app names fit inside their icon containers on the home page +* [turndown v7.1.1](https://github.com/mixmark-io/turndown/releases/tag/v7.1.1) built from unmodified source as per its build scripts. diff --git a/www/lib/datepicker/flatpickr.js b/www/lib/datepicker/flatpickr.js index b97c30179..345297fa1 100644 --- a/www/lib/datepicker/flatpickr.js +++ b/www/lib/datepicker/flatpickr.js @@ -1,4 +1,2 @@ -// SPDX-License-Identifier: MIT - /* flatpickr v4.6.9,, @license MIT */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).flatpickr=t()}(this,(function(){"use strict";var e=function(){return(e=Object.assign||function(e){for(var t,n=1,a=arguments.length;n",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},i={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var t=e%100;if(t>3&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},o=function(e,t){return void 0===t&&(t=2),("000"+e).slice(-1*t)},r=function(e){return!0===e?1:0};function l(e,t){var n;return function(){var a=this;clearTimeout(n),n=setTimeout((function(){return e.apply(a,arguments)}),t)}}var c=function(e){return e instanceof Array?e:[e]};function d(e,t,n){if(!0===n)return e.classList.add(t);e.classList.remove(t)}function s(e,t,n){var a=window.document.createElement(e);return t=t||"",n=n||"",a.className=t,void 0!==n&&(a.textContent=n),a}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function f(e,t){return t(e)?e:e.parentNode?f(e.parentNode,t):void 0}function m(e,t){var n=s("div","numInputWrapper"),a=s("input","numInput "+e),i=s("span","arrowUp"),o=s("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?a.type="number":(a.type="text",a.pattern="\\d*"),void 0!==t)for(var r in t)a.setAttribute(r,t[r]);return n.appendChild(a),n.appendChild(i),n.appendChild(o),n}function g(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(t){return e.target}}var p=function(){},h=function(e,t,n){return n.months[t?"shorthand":"longhand"][e]},v={D:p,F:function(e,t,n){e.setMonth(n.months.longhand.indexOf(t))},G:function(e,t){e.setHours(parseFloat(t))},H:function(e,t){e.setHours(parseFloat(t))},J:function(e,t){e.setDate(parseFloat(t))},K:function(e,t,n){e.setHours(e.getHours()%12+12*r(new RegExp(n.amPM[1],"i").test(t)))},M:function(e,t,n){e.setMonth(n.months.shorthand.indexOf(t))},S:function(e,t){e.setSeconds(parseFloat(t))},U:function(e,t){return new Date(1e3*parseFloat(t))},W:function(e,t,n){var a=parseInt(t),i=new Date(e.getFullYear(),0,2+7*(a-1),0,0,0,0);return i.setDate(i.getDate()-i.getDay()+n.firstDayOfWeek),i},Y:function(e,t){e.setFullYear(parseFloat(t))},Z:function(e,t){return new Date(t)},d:function(e,t){e.setDate(parseFloat(t))},h:function(e,t){e.setHours(parseFloat(t))},i:function(e,t){e.setMinutes(parseFloat(t))},j:function(e,t){e.setDate(parseFloat(t))},l:p,m:function(e,t){e.setMonth(parseFloat(t)-1)},n:function(e,t){e.setMonth(parseFloat(t)-1)},s:function(e,t){e.setSeconds(parseFloat(t))},u:function(e,t){return new Date(parseFloat(t))},w:p,y:function(e,t){e.setFullYear(2e3+parseFloat(t))}},D={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},w={Z:function(e){return e.toISOString()},D:function(e,t,n){return t.weekdays.shorthand[w.w(e,t,n)]},F:function(e,t,n){return h(w.n(e,t,n)-1,!1,t)},G:function(e,t,n){return o(w.h(e,t,n))},H:function(e){return o(e.getHours())},J:function(e,t){return void 0!==t.ordinal?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:function(e,t){return t.amPM[r(e.getHours()>11)]},M:function(e,t){return h(e.getMonth(),!0,t)},S:function(e){return o(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,t,n){return n.getWeek(e)},Y:function(e){return o(e.getFullYear(),4)},d:function(e){return o(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return o(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:function(e){return o(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var t=e.config,n=void 0===t?a:t,o=e.l10n,r=void 0===o?i:o,l=e.isMobile,c=void 0!==l&&l;return function(e,t,a){var i=a||r;return void 0===n.formatDate||c?t.split("").map((function(t,a,o){return w[t]&&"\\"!==o[a-1]?w[t](e,i,n):"\\"!==t?t:""})).join(""):n.formatDate(e,t,i)}},C=function(e){var t=e.config,n=void 0===t?a:t,o=e.l10n,r=void 0===o?i:o;return function(e,t,i,o){if(0===e||e){var l,c=o||r,d=e;if(e instanceof Date)l=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)l=new Date(e);else if("string"==typeof e){var s=t||(n||a).dateFormat,u=String(e).trim();if("today"===u)l=new Date,i=!0;else if(/Z$/.test(u)||/GMT$/.test(u))l=new Date(e);else if(n&&n.parseDate)l=n.parseDate(e,s);else{l=n&&n.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var f=void 0,m=[],g=0,p=0,h="";g=0?new Date:new Date(w.config.minDate.getTime()),n=x(w.config);t.setHours(n.hours,n.minutes,n.seconds,t.getMilliseconds()),w.selectedDates=[t],w.latestSelectedDateObj=t}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var t="keydown"===e.type,n=g(e),a=n;void 0!==w.amPM&&n===w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]);var i=parseFloat(a.getAttribute("min")),l=parseFloat(a.getAttribute("max")),c=parseFloat(a.getAttribute("step")),d=parseInt(a.value,10),s=e.delta||(t?38===e.which?1:-1:0),u=d+c*s;if(void 0!==a.value&&2===a.value.length){var f=a===w.hourElement,m=a===w.minuteElement;ul&&(u=a===w.hourElement?u-l-r(!w.amPM):i,m&&j(void 0,1,w.hourElement)),w.amPM&&f&&(1===c?u+d===23:Math.abs(u-d)>c)&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]),a.value=o(u)}}(e);var a=w._input.value;S(),be(),w._input.value!==a&&w._debouncedChange()}function S(){if(void 0!==w.hourElement&&void 0!==w.minuteElement){var e,t,n=(parseInt(w.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(w.minuteElement.value,10)||0)%60,i=void 0!==w.secondElement?(parseInt(w.secondElement.value,10)||0)%60:0;void 0!==w.amPM&&(e=n,t=w.amPM.textContent,n=e%12+12*r(t===w.l10n.amPM[1]));var o=void 0!==w.config.minTime||w.config.minDate&&w.minDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.minDate,!0);if(void 0!==w.config.maxTime||w.config.maxDate&&w.maxDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.maxDate,!0)){var l=void 0!==w.config.maxTime?w.config.maxTime:w.config.maxDate;(n=Math.min(n,l.getHours()))===l.getHours()&&(a=Math.min(a,l.getMinutes())),a===l.getMinutes()&&(i=Math.min(i,l.getSeconds()))}if(o){var c=void 0!==w.config.minTime?w.config.minTime:w.config.minDate;(n=Math.max(n,c.getHours()))===c.getHours()&&a=12)]),void 0!==w.secondElement&&(w.secondElement.value=o(n)))}function F(e){var t=g(e),n=parseInt(t.value)+(e.delta||0);(n/1e3>1||"Enter"===e.key&&!/[^\d]/.test(n.toString()))&&Q(n)}function A(e,t,n,a){return t instanceof Array?t.forEach((function(t){return A(e,t,n,a)})):e instanceof Array?e.forEach((function(e){return A(e,t,n,a)})):(e.addEventListener(t,n,a),void w._handlers.push({remove:function(){return e.removeEventListener(t,n)}}))}function N(){pe("onChange")}function P(e,t){var n=void 0!==e?w.parseDate(e):w.latestSelectedDateObj||(w.config.minDate&&w.config.minDate>w.now?w.config.minDate:w.config.maxDate&&w.config.maxDate=0&&M(e,w.selectedDates[1])<=0)}(t)&&!ve(t)&&o.classList.add("inRange"),w.weekNumbers&&1===w.config.showMonths&&"prevMonthDay"!==e&&n%7==1&&w.weekNumbers.insertAdjacentHTML("beforeend",""+w.config.getWeek(t)+""),pe("onDayCreate",o),o}function L(e){e.focus(),"range"===w.config.mode&&ae(e)}function W(e){for(var t=e>0?0:w.config.showMonths-1,n=e>0?w.config.showMonths:-1,a=t;a!=n;a+=e)for(var i=w.daysContainer.children[a],o=e>0?0:i.children.length-1,r=e>0?i.children.length:-1,l=o;l!=r;l+=e){var c=i.children[l];if(-1===c.className.indexOf("hidden")&&X(c.dateObj))return c}}function R(e,t){var n=ee(document.activeElement||document.body),a=void 0!==e?e:n?document.activeElement:void 0!==w.selectedDateElem&&ee(w.selectedDateElem)?w.selectedDateElem:void 0!==w.todayDateElem&&ee(w.todayDateElem)?w.todayDateElem:W(t>0?1:-1);void 0===a?w._input.focus():n?function(e,t){for(var n=-1===e.className.indexOf("Month")?e.dateObj.getMonth():w.currentMonth,a=t>0?w.config.showMonths:-1,i=t>0?1:-1,o=n-w.currentMonth;o!=a;o+=i)for(var r=w.daysContainer.children[o],l=n-w.currentMonth===o?e.$i+t:t<0?r.children.length-1:0,c=r.children.length,d=l;d>=0&&d0?c:-1);d+=i){var s=r.children[d];if(-1===s.className.indexOf("hidden")&&X(s.dateObj)&&Math.abs(e.$i-d)>=Math.abs(t))return L(s)}w.changeMonth(i),R(W(i),0)}(a,t):L(a)}function B(e,t){for(var n=(new Date(e,t,1).getDay()-w.l10n.firstDayOfWeek+7)%7,a=w.utils.getDaysInMonth((t-1+12)%12,e),i=w.utils.getDaysInMonth(t,e),o=window.document.createDocumentFragment(),r=w.config.showMonths>1,l=r?"prevMonthDay hidden":"prevMonthDay",c=r?"nextMonthDay hidden":"nextMonthDay",d=a+1-n,u=0;d<=a;d++,u++)o.appendChild(H(l,new Date(e,t-1,d),d,u));for(d=1;d<=i;d++,u++)o.appendChild(H("",new Date(e,t,d),d,u));for(var f=i+1;f<=42-n&&(1===w.config.showMonths||u%7!=0);f++,u++)o.appendChild(H(c,new Date(e,t+1,f%i),f,u));var m=s("div","dayContainer");return m.appendChild(o),m}function J(){if(void 0!==w.daysContainer){u(w.daysContainer),w.weekNumbers&&u(w.weekNumbers);for(var e=document.createDocumentFragment(),t=0;t1||"dropdown"!==w.config.monthSelectorType)){var e=function(e){return!(void 0!==w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&ew.config.maxDate.getMonth())};w.monthsDropdownContainer.tabIndex=-1,w.monthsDropdownContainer.innerHTML="";for(var t=0;t<12;t++)if(e(t)){var n=s("option","flatpickr-monthDropdown-month");n.value=new Date(w.currentYear,t).getMonth().toString(),n.textContent=h(t,w.config.shorthandCurrentMonth,w.l10n),n.tabIndex=-1,w.currentMonth===t&&(n.selected=!0),w.monthsDropdownContainer.appendChild(n)}}}function U(){var e,t=s("div","flatpickr-month"),n=window.document.createDocumentFragment();w.config.showMonths>1||"static"===w.config.monthSelectorType?e=s("span","cur-month"):(w.monthsDropdownContainer=s("select","flatpickr-monthDropdown-months"),w.monthsDropdownContainer.setAttribute("aria-label",w.l10n.monthAriaLabel),A(w.monthsDropdownContainer,"change",(function(e){var t=g(e),n=parseInt(t.value,10);w.changeMonth(n-w.currentMonth),pe("onMonthChange")})),K(),e=w.monthsDropdownContainer);var a=m("cur-year",{tabindex:"-1"}),i=a.getElementsByTagName("input")[0];i.setAttribute("aria-label",w.l10n.yearAriaLabel),w.config.minDate&&i.setAttribute("min",w.config.minDate.getFullYear().toString()),w.config.maxDate&&(i.setAttribute("max",w.config.maxDate.getFullYear().toString()),i.disabled=!!w.config.minDate&&w.config.minDate.getFullYear()===w.config.maxDate.getFullYear());var o=s("div","flatpickr-current-month");return o.appendChild(e),o.appendChild(a),n.appendChild(o),t.appendChild(n),{container:t,yearElement:i,monthElement:e}}function q(){u(w.monthNav),w.monthNav.appendChild(w.prevMonthNav),w.config.showMonths&&(w.yearElements=[],w.monthElements=[]);for(var e=w.config.showMonths;e--;){var t=U();w.yearElements.push(t.yearElement),w.monthElements.push(t.monthElement),w.monthNav.appendChild(t.container)}w.monthNav.appendChild(w.nextMonthNav)}function $(){w.weekdayContainer?u(w.weekdayContainer):w.weekdayContainer=s("div","flatpickr-weekdays");for(var e=w.config.showMonths;e--;){var t=s("div","flatpickr-weekdaycontainer");w.weekdayContainer.appendChild(t)}return z(),w.weekdayContainer}function z(){if(w.weekdayContainer){var e=w.l10n.firstDayOfWeek,n=t(w.l10n.weekdays.shorthand);e>0&&e\n "+n.join("")+"\n \n "}}function G(e,t){void 0===t&&(t=!0);var n=t?e:e-w.currentMonth;n<0&&!0===w._hidePrevMonthArrow||n>0&&!0===w._hideNextMonthArrow||(w.currentMonth+=n,(w.currentMonth<0||w.currentMonth>11)&&(w.currentYear+=w.currentMonth>11?1:-1,w.currentMonth=(w.currentMonth+12)%12,pe("onYearChange"),K()),J(),pe("onMonthChange"),De())}function V(e){return!(!w.config.appendTo||!w.config.appendTo.contains(e))||w.calendarContainer.contains(e)}function Z(e){if(w.isOpen&&!w.config.inline){var t=g(e),n=V(t),a=t===w.input||t===w.altInput||w.element.contains(t)||e.path&&e.path.indexOf&&(~e.path.indexOf(w.input)||~e.path.indexOf(w.altInput)),i="blur"===e.type?a&&e.relatedTarget&&!V(e.relatedTarget):!a&&!n&&!V(e.relatedTarget),o=!w.config.ignoredFocusElements.some((function(e){return e.contains(t)}));i&&o&&(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement&&""!==w.input.value&&void 0!==w.input.value&&I(),w.close(),w.config&&"range"===w.config.mode&&1===w.selectedDates.length&&(w.clear(!1),w.redraw()))}}function Q(e){if(!(!e||w.config.minDate&&ew.config.maxDate.getFullYear())){var t=e,n=w.currentYear!==t;w.currentYear=t||w.currentYear,w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth=Math.min(w.config.maxDate.getMonth(),w.currentMonth):w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&(w.currentMonth=Math.max(w.config.minDate.getMonth(),w.currentMonth)),n&&(w.redraw(),pe("onYearChange"),K())}}function X(e,t){var n;void 0===t&&(t=!0);var a=w.parseDate(e,void 0,t);if(w.config.minDate&&a&&M(a,w.config.minDate,void 0!==t?t:!w.minDateHasTime)<0||w.config.maxDate&&a&&M(a,w.config.maxDate,void 0!==t?t:!w.maxDateHasTime)>0)return!1;if(!w.config.enable&&0===w.config.disable.length)return!0;if(void 0===a)return!1;for(var i=!!w.config.enable,o=null!==(n=w.config.enable)&&void 0!==n?n:w.config.disable,r=0,l=void 0;r=l.from.getTime()&&a.getTime()<=l.to.getTime())return i}return!i}function ee(e){return void 0!==w.daysContainer&&(-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&w.daysContainer.contains(e))}function te(e){!(e.target===w._input)||!(w.selectedDates.length>0||w._input.value.length>0)||e.relatedTarget&&V(e.relatedTarget)||w.setDate(w._input.value,!0,e.target===w.altInput?w.config.altFormat:w.config.dateFormat)}function ne(e){var t=g(e),n=w.config.wrap?p.contains(t):t===w._input,a=w.config.allowInput,i=w.isOpen&&(!a||!n),o=w.config.inline&&n&&!a;if(13===e.keyCode&&n){if(a)return w.setDate(w._input.value,!0,t===w.altInput?w.config.altFormat:w.config.dateFormat),t.blur();w.open()}else if(V(t)||i||o){var r=!!w.timeContainer&&w.timeContainer.contains(t);switch(e.keyCode){case 13:r?(e.preventDefault(),I(),se()):ue(e);break;case 27:e.preventDefault(),se();break;case 8:case 46:n&&!w.config.allowInput&&(e.preventDefault(),w.clear());break;case 37:case 39:if(r||n)w.hourElement&&w.hourElement.focus();else if(e.preventDefault(),void 0!==w.daysContainer&&(!1===a||document.activeElement&&ee(document.activeElement))){var l=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),G(l),R(W(1),0)):R(void 0,l)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;w.daysContainer&&void 0!==t.$i||t===w.input||t===w.altInput?e.ctrlKey?(e.stopPropagation(),Q(w.currentYear-c),R(W(1),0)):r||R(void 0,7*c):t===w.currentYearElement?Q(w.currentYear-c):w.config.enableTime&&(!r&&w.hourElement&&w.hourElement.focus(),I(e),w._debouncedChange());break;case 9:if(r){var d=[w.hourElement,w.minuteElement,w.secondElement,w.amPM].concat(w.pluginElements).filter((function(e){return e})),s=d.indexOf(t);if(-1!==s){var u=d[s+(e.shiftKey?-1:1)];e.preventDefault(),(u||w._input).focus()}}else!w.config.noCalendar&&w.daysContainer&&w.daysContainer.contains(t)&&e.shiftKey&&(e.preventDefault(),w._input.focus())}}if(void 0!==w.amPM&&t===w.amPM)switch(e.key){case w.l10n.amPM[0].charAt(0):case w.l10n.amPM[0].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[0],S(),be();break;case w.l10n.amPM[1].charAt(0):case w.l10n.amPM[1].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[1],S(),be()}(n||V(t))&&pe("onKeyDown",e)}function ae(e){if(1===w.selectedDates.length&&(!e||e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled"))){for(var t=e?e.dateObj.getTime():w.days.firstElementChild.dateObj.getTime(),n=w.parseDate(w.selectedDates[0],void 0,!0).getTime(),a=Math.min(t,w.selectedDates[0].getTime()),i=Math.max(t,w.selectedDates[0].getTime()),o=!1,r=0,l=0,c=a;ca&&cr)?r=c:c>n&&(!l||c0&&m0&&m>l;return g?(f.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach((function(e){f.classList.remove(e)})),"continue"):o&&!g?"continue":(["startRange","inRange","endRange","notAllowed"].forEach((function(e){f.classList.remove(e)})),void(void 0!==e&&(e.classList.add(t<=w.selectedDates[0].getTime()?"startRange":"endRange"),nt&&m===n&&f.classList.add("endRange"),m>=r&&(0===l||m<=l)&&(d=n,u=t,(c=m)>Math.min(d,u)&&c0||n.getMinutes()>0||n.getSeconds()>0),w.selectedDates&&(w.selectedDates=w.selectedDates.filter((function(e){return X(e)})),w.selectedDates.length||"min"!==e||_(n),be()),w.daysContainer&&(de(),void 0!==n?w.currentYearElement[e]=n.getFullYear().toString():w.currentYearElement.removeAttribute(e),w.currentYearElement.disabled=!!a&&void 0!==n&&a.getFullYear()===n.getFullYear())}}function re(){return w.config.wrap?p.querySelector("[data-input]"):p}function le(){"object"!=typeof w.config.locale&&void 0===T.l10ns[w.config.locale]&&w.config.errorHandler(new Error("flatpickr: invalid locale "+w.config.locale)),w.l10n=e(e({},T.l10ns.default),"object"==typeof w.config.locale?w.config.locale:"default"!==w.config.locale?T.l10ns[w.config.locale]:void 0),D.K="("+w.l10n.amPM[0]+"|"+w.l10n.amPM[1]+"|"+w.l10n.amPM[0].toLowerCase()+"|"+w.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},v),JSON.parse(JSON.stringify(p.dataset||{}))).time_24hr&&void 0===T.defaultConfig.time_24hr&&(w.config.time_24hr=w.l10n.time_24hr),w.formatDate=b(w),w.parseDate=C({config:w.config,l10n:w.l10n})}function ce(e){if("function"!=typeof w.config.position){if(void 0!==w.calendarContainer){pe("onPreCalendarPosition");var t=e||w._positionElement,n=Array.prototype.reduce.call(w.calendarContainer.children,(function(e,t){return e+t.offsetHeight}),0),a=w.calendarContainer.offsetWidth,i=w.config.position.split(" "),o=i[0],r=i.length>1?i[1]:null,l=t.getBoundingClientRect(),c=window.innerHeight-l.bottom,s="above"===o||"below"!==o&&cn,u=window.pageYOffset+l.top+(s?-n-2:t.offsetHeight+2);if(d(w.calendarContainer,"arrowTop",!s),d(w.calendarContainer,"arrowBottom",s),!w.config.inline){var f=window.pageXOffset+l.left,m=!1,g=!1;"center"===r?(f-=(a-l.width)/2,m=!0):"right"===r&&(f-=a-l.width,g=!0),d(w.calendarContainer,"arrowLeft",!m&&!g),d(w.calendarContainer,"arrowCenter",m),d(w.calendarContainer,"arrowRight",g);var p=window.document.body.offsetWidth-(window.pageXOffset+l.right),h=f+a>window.document.body.offsetWidth,v=p+a>window.document.body.offsetWidth;if(d(w.calendarContainer,"rightMost",h),!w.config.static)if(w.calendarContainer.style.top=u+"px",h)if(v){var D=function(){for(var e=null,t=0;tw.currentMonth+w.config.showMonths-1)&&"range"!==w.config.mode;if(w.selectedDateElem=n,"single"===w.config.mode)w.selectedDates=[a];else if("multiple"===w.config.mode){var o=ve(a);o?w.selectedDates.splice(parseInt(o),1):w.selectedDates.push(a)}else"range"===w.config.mode&&(2===w.selectedDates.length&&w.clear(!1,!1),w.latestSelectedDateObj=a,w.selectedDates.push(a),0!==M(a,w.selectedDates[0],!0)&&w.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()})));if(S(),i){var r=w.currentYear!==a.getFullYear();w.currentYear=a.getFullYear(),w.currentMonth=a.getMonth(),r&&(pe("onYearChange"),K()),pe("onMonthChange")}if(De(),J(),be(),i||"range"===w.config.mode||1!==w.config.showMonths?void 0!==w.selectedDateElem&&void 0===w.hourElement&&w.selectedDateElem&&w.selectedDateElem.focus():L(n),void 0!==w.hourElement&&void 0!==w.hourElement&&w.hourElement.focus(),w.config.closeOnSelect){var l="single"===w.config.mode&&!w.config.enableTime,c="range"===w.config.mode&&2===w.selectedDates.length&&!w.config.enableTime;(l||c)&&se()}N()}}w.parseDate=C({config:w.config,l10n:w.l10n}),w._handlers=[],w.pluginElements=[],w.loadedPlugins=[],w._bind=A,w._setHoursFromDate=_,w._positionCalendar=ce,w.changeMonth=G,w.changeYear=Q,w.clear=function(e,t){void 0===e&&(e=!0);void 0===t&&(t=!0);w.input.value="",void 0!==w.altInput&&(w.altInput.value="");void 0!==w.mobileInput&&(w.mobileInput.value="");w.selectedDates=[],w.latestSelectedDateObj=void 0,!0===t&&(w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth());if(!0===w.config.enableTime){var n=x(w.config),a=n.hours,i=n.minutes,o=n.seconds;O(a,i,o)}w.redraw(),e&&pe("onChange")},w.close=function(){w.isOpen=!1,w.isMobile||(void 0!==w.calendarContainer&&w.calendarContainer.classList.remove("open"),void 0!==w._input&&w._input.classList.remove("active"));pe("onClose")},w._createElement=s,w.destroy=function(){void 0!==w.config&&pe("onDestroy");for(var e=w._handlers.length;e--;)w._handlers[e].remove();if(w._handlers=[],w.mobileInput)w.mobileInput.parentNode&&w.mobileInput.parentNode.removeChild(w.mobileInput),w.mobileInput=void 0;else if(w.calendarContainer&&w.calendarContainer.parentNode)if(w.config.static&&w.calendarContainer.parentNode){var t=w.calendarContainer.parentNode;if(t.lastChild&&t.removeChild(t.lastChild),t.parentNode){for(;t.firstChild;)t.parentNode.insertBefore(t.firstChild,t);t.parentNode.removeChild(t)}}else w.calendarContainer.parentNode.removeChild(w.calendarContainer);w.altInput&&(w.input.type="text",w.altInput.parentNode&&w.altInput.parentNode.removeChild(w.altInput),delete w.altInput);w.input&&(w.input.type=w.input._type,w.input.classList.remove("flatpickr-input"),w.input.removeAttribute("readonly"));["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete w[e]}catch(e){}}))},w.isEnabled=X,w.jumpToDate=P,w.open=function(e,t){void 0===t&&(t=w._positionElement);if(!0===w.isMobile){if(e){e.preventDefault();var n=g(e);n&&n.blur()}return void 0!==w.mobileInput&&(w.mobileInput.focus(),w.mobileInput.click()),void pe("onOpen")}if(w._input.disabled||w.config.inline)return;var a=w.isOpen;w.isOpen=!0,a||(w.calendarContainer.classList.add("open"),w._input.classList.add("active"),pe("onOpen"),ce(t));!0===w.config.enableTime&&!0===w.config.noCalendar&&(!1!==w.config.allowInput||void 0!==e&&w.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return w.hourElement.select()}),50))},w.redraw=de,w.set=function(e,t){if(null!==e&&"object"==typeof e)for(var a in Object.assign(w.config,e),e)void 0!==fe[a]&&fe[a].forEach((function(e){return e()}));else w.config[e]=t,void 0!==fe[e]?fe[e].forEach((function(e){return e()})):n.indexOf(e)>-1&&(w.config[e]=c(t));w.redraw(),be(!0)},w.setDate=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=w.config.dateFormat);if(0!==e&&!e||e instanceof Array&&0===e.length)return w.clear(t);me(e,n),w.latestSelectedDateObj=w.selectedDates[w.selectedDates.length-1],w.redraw(),P(void 0,t),_(),0===w.selectedDates.length&&w.clear(!1);be(t),t&&pe("onChange")},w.toggle=function(e){if(!0===w.isOpen)return w.close();w.open(e)};var fe={locale:[le,z],showMonths:[q,k,$],minDate:[P],maxDate:[P],clickOpens:[function(){!0===w.config.clickOpens?(A(w._input,"focus",w.open),A(w._input,"click",w.open)):(w._input.removeEventListener("focus",w.open),w._input.removeEventListener("click",w.open))}]};function me(e,t){var n=[];if(e instanceof Array)n=e.map((function(e){return w.parseDate(e,t)}));else if(e instanceof Date||"number"==typeof e)n=[w.parseDate(e,t)];else if("string"==typeof e)switch(w.config.mode){case"single":case"time":n=[w.parseDate(e,t)];break;case"multiple":n=e.split(w.config.conjunction).map((function(e){return w.parseDate(e,t)}));break;case"range":n=e.split(w.l10n.rangeSeparator).map((function(e){return w.parseDate(e,t)}))}else w.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));w.selectedDates=w.config.allowInvalidPreload?n:n.filter((function(e){return e instanceof Date&&X(e,!1)})),"range"===w.config.mode&&w.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()}))}function ge(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?w.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:w.parseDate(e.from,void 0),to:w.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function pe(e,t){if(void 0!==w.config){var n=w.config[e];if(void 0!==n&&n.length>0)for(var a=0;n[a]&&a1||"static"===w.config.monthSelectorType?w.monthElements[t].textContent=h(n.getMonth(),w.config.shorthandCurrentMonth,w.l10n)+" ":w.monthsDropdownContainer.value=n.getMonth().toString(),e.value=n.getFullYear().toString()})),w._hidePrevMonthArrow=void 0!==w.config.minDate&&(w.currentYear===w.config.minDate.getFullYear()?w.currentMonth<=w.config.minDate.getMonth():w.currentYearw.config.maxDate.getMonth():w.currentYear>w.config.maxDate.getFullYear()))}function we(e){return w.selectedDates.map((function(t){return w.formatDate(t,e)})).filter((function(e,t,n){return"range"!==w.config.mode||w.config.enableTime||n.indexOf(e)===t})).join("range"!==w.config.mode?w.config.conjunction:w.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==w.mobileInput&&w.mobileFormatStr&&(w.mobileInput.value=void 0!==w.latestSelectedDateObj?w.formatDate(w.latestSelectedDateObj,w.mobileFormatStr):""),w.input.value=we(w.config.dateFormat),void 0!==w.altInput&&(w.altInput.value=we(w.config.altFormat)),!1!==e&&pe("onValueUpdate")}function Ce(e){var t=g(e),n=w.prevMonthNav.contains(t),a=w.nextMonthNav.contains(t);n||a?G(n?-1:1):w.yearElements.indexOf(t)>=0?t.select():t.classList.contains("arrowUp")?w.changeYear(w.currentYear+1):t.classList.contains("arrowDown")&&w.changeYear(w.currentYear-1)}return function(){w.element=w.input=p,w.isOpen=!1,function(){var t=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],i=e(e({},JSON.parse(JSON.stringify(p.dataset||{}))),v),o={};w.config.parseDate=i.parseDate,w.config.formatDate=i.formatDate,Object.defineProperty(w.config,"enable",{get:function(){return w.config._enable},set:function(e){w.config._enable=ge(e)}}),Object.defineProperty(w.config,"disable",{get:function(){return w.config._disable},set:function(e){w.config._disable=ge(e)}});var r="time"===i.mode;if(!i.dateFormat&&(i.enableTime||r)){var l=T.defaultConfig.dateFormat||a.dateFormat;o.dateFormat=i.noCalendar||r?"H:i"+(i.enableSeconds?":S":""):l+" H:i"+(i.enableSeconds?":S":"")}if(i.altInput&&(i.enableTime||r)&&!i.altFormat){var d=T.defaultConfig.altFormat||a.altFormat;o.altFormat=i.noCalendar||r?"h:i"+(i.enableSeconds?":S K":" K"):d+" h:i"+(i.enableSeconds?":S":"")+" K"}Object.defineProperty(w.config,"minDate",{get:function(){return w.config._minDate},set:oe("min")}),Object.defineProperty(w.config,"maxDate",{get:function(){return w.config._maxDate},set:oe("max")});var s=function(e){return function(t){w.config["min"===e?"_minTime":"_maxTime"]=w.parseDate(t,"H:i:S")}};Object.defineProperty(w.config,"minTime",{get:function(){return w.config._minTime},set:s("min")}),Object.defineProperty(w.config,"maxTime",{get:function(){return w.config._maxTime},set:s("max")}),"time"===i.mode&&(w.config.noCalendar=!0,w.config.enableTime=!0);Object.assign(w.config,o,i);for(var u=0;u-1?w.config[m]=c(f[m]).map(E).concat(w.config[m]):void 0===i[m]&&(w.config[m]=f[m])}i.altInputClass||(w.config.altInputClass=re().className+" "+w.config.altInputClass);pe("onParseConfig")}(),le(),function(){if(w.input=re(),!w.input)return void w.config.errorHandler(new Error("Invalid input element specified"));w.input._type=w.input.type,w.input.type="text",w.input.classList.add("flatpickr-input"),w._input=w.input,w.config.altInput&&(w.altInput=s(w.input.nodeName,w.config.altInputClass),w._input=w.altInput,w.altInput.placeholder=w.input.placeholder,w.altInput.disabled=w.input.disabled,w.altInput.required=w.input.required,w.altInput.tabIndex=w.input.tabIndex,w.altInput.type="text",w.input.setAttribute("type","hidden"),!w.config.static&&w.input.parentNode&&w.input.parentNode.insertBefore(w.altInput,w.input.nextSibling));w.config.allowInput||w._input.setAttribute("readonly","readonly");w._positionElement=w.config.positionElement||w._input}(),function(){w.selectedDates=[],w.now=w.parseDate(w.config.now)||new Date;var e=w.config.defaultDate||("INPUT"!==w.input.nodeName&&"TEXTAREA"!==w.input.nodeName||!w.input.placeholder||w.input.value!==w.input.placeholder?w.input.value:null);e&&me(e,w.config.dateFormat);w._initialDate=w.selectedDates.length>0?w.selectedDates[0]:w.config.minDate&&w.config.minDate.getTime()>w.now.getTime()?w.config.minDate:w.config.maxDate&&w.config.maxDate.getTime()0&&(w.latestSelectedDateObj=w.selectedDates[0]);void 0!==w.config.minTime&&(w.config.minTime=w.parseDate(w.config.minTime,"H:i"));void 0!==w.config.maxTime&&(w.config.maxTime=w.parseDate(w.config.maxTime,"H:i"));w.minDateHasTime=!!w.config.minDate&&(w.config.minDate.getHours()>0||w.config.minDate.getMinutes()>0||w.config.minDate.getSeconds()>0),w.maxDateHasTime=!!w.config.maxDate&&(w.config.maxDate.getHours()>0||w.config.maxDate.getMinutes()>0||w.config.maxDate.getSeconds()>0)}(),w.utils={getDaysInMonth:function(e,t){return void 0===e&&(e=w.currentMonth),void 0===t&&(t=w.currentYear),1===e&&(t%4==0&&t%100!=0||t%400==0)?29:w.l10n.daysInMonth[e]}},w.isMobile||function(){var e=window.document.createDocumentFragment();if(w.calendarContainer=s("div","flatpickr-calendar"),w.calendarContainer.tabIndex=-1,!w.config.noCalendar){if(e.appendChild((w.monthNav=s("div","flatpickr-months"),w.yearElements=[],w.monthElements=[],w.prevMonthNav=s("span","flatpickr-prev-month"),w.prevMonthNav.innerHTML=w.config.prevArrow,w.nextMonthNav=s("span","flatpickr-next-month"),w.nextMonthNav.innerHTML=w.config.nextArrow,q(),Object.defineProperty(w,"_hidePrevMonthArrow",{get:function(){return w.__hidePrevMonthArrow},set:function(e){w.__hidePrevMonthArrow!==e&&(d(w.prevMonthNav,"flatpickr-disabled",e),w.__hidePrevMonthArrow=e)}}),Object.defineProperty(w,"_hideNextMonthArrow",{get:function(){return w.__hideNextMonthArrow},set:function(e){w.__hideNextMonthArrow!==e&&(d(w.nextMonthNav,"flatpickr-disabled",e),w.__hideNextMonthArrow=e)}}),w.currentYearElement=w.yearElements[0],De(),w.monthNav)),w.innerContainer=s("div","flatpickr-innerContainer"),w.config.weekNumbers){var t=function(){w.calendarContainer.classList.add("hasWeeks");var e=s("div","flatpickr-weekwrapper");e.appendChild(s("span","flatpickr-weekday",w.l10n.weekAbbreviation));var t=s("div","flatpickr-weeks");return e.appendChild(t),{weekWrapper:e,weekNumbers:t}}(),n=t.weekWrapper,a=t.weekNumbers;w.innerContainer.appendChild(n),w.weekNumbers=a,w.weekWrapper=n}w.rContainer=s("div","flatpickr-rContainer"),w.rContainer.appendChild($()),w.daysContainer||(w.daysContainer=s("div","flatpickr-days"),w.daysContainer.tabIndex=-1),J(),w.rContainer.appendChild(w.daysContainer),w.innerContainer.appendChild(w.rContainer),e.appendChild(w.innerContainer)}w.config.enableTime&&e.appendChild(function(){w.calendarContainer.classList.add("hasTime"),w.config.noCalendar&&w.calendarContainer.classList.add("noCalendar");var e=x(w.config);w.timeContainer=s("div","flatpickr-time"),w.timeContainer.tabIndex=-1;var t=s("span","flatpickr-time-separator",":"),n=m("flatpickr-hour",{"aria-label":w.l10n.hourAriaLabel});w.hourElement=n.getElementsByTagName("input")[0];var a=m("flatpickr-minute",{"aria-label":w.l10n.minuteAriaLabel});w.minuteElement=a.getElementsByTagName("input")[0],w.hourElement.tabIndex=w.minuteElement.tabIndex=-1,w.hourElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getHours():w.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),w.minuteElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getMinutes():e.minutes),w.hourElement.setAttribute("step",w.config.hourIncrement.toString()),w.minuteElement.setAttribute("step",w.config.minuteIncrement.toString()),w.hourElement.setAttribute("min",w.config.time_24hr?"0":"1"),w.hourElement.setAttribute("max",w.config.time_24hr?"23":"12"),w.hourElement.setAttribute("maxlength","2"),w.minuteElement.setAttribute("min","0"),w.minuteElement.setAttribute("max","59"),w.minuteElement.setAttribute("maxlength","2"),w.timeContainer.appendChild(n),w.timeContainer.appendChild(t),w.timeContainer.appendChild(a),w.config.time_24hr&&w.timeContainer.classList.add("time24hr");if(w.config.enableSeconds){w.timeContainer.classList.add("hasSeconds");var i=m("flatpickr-second");w.secondElement=i.getElementsByTagName("input")[0],w.secondElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getSeconds():e.seconds),w.secondElement.setAttribute("step",w.minuteElement.getAttribute("step")),w.secondElement.setAttribute("min","0"),w.secondElement.setAttribute("max","59"),w.secondElement.setAttribute("maxlength","2"),w.timeContainer.appendChild(s("span","flatpickr-time-separator",":")),w.timeContainer.appendChild(i)}w.config.time_24hr||(w.amPM=s("span","flatpickr-am-pm",w.l10n.amPM[r((w.latestSelectedDateObj?w.hourElement.value:w.config.defaultHour)>11)]),w.amPM.title=w.l10n.toggleTitle,w.amPM.tabIndex=-1,w.timeContainer.appendChild(w.amPM));return w.timeContainer}());d(w.calendarContainer,"rangeMode","range"===w.config.mode),d(w.calendarContainer,"animate",!0===w.config.animate),d(w.calendarContainer,"multiMonth",w.config.showMonths>1),w.calendarContainer.appendChild(e);var i=void 0!==w.config.appendTo&&void 0!==w.config.appendTo.nodeType;if((w.config.inline||w.config.static)&&(w.calendarContainer.classList.add(w.config.inline?"inline":"static"),w.config.inline&&(!i&&w.element.parentNode?w.element.parentNode.insertBefore(w.calendarContainer,w._input.nextSibling):void 0!==w.config.appendTo&&w.config.appendTo.appendChild(w.calendarContainer)),w.config.static)){var l=s("div","flatpickr-wrapper");w.element.parentNode&&w.element.parentNode.insertBefore(l,w.element),l.appendChild(w.element),w.altInput&&l.appendChild(w.altInput),l.appendChild(w.calendarContainer)}w.config.static||w.config.inline||(void 0!==w.config.appendTo?w.config.appendTo:window.document.body).appendChild(w.calendarContainer)}(),function(){w.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(w.element.querySelectorAll("[data-"+e+"]"),(function(t){return A(t,"click",w[e])}))}));if(w.isMobile)return void function(){var e=w.config.enableTime?w.config.noCalendar?"time":"datetime-local":"date";w.mobileInput=s("input",w.input.className+" flatpickr-mobile"),w.mobileInput.tabIndex=1,w.mobileInput.type=e,w.mobileInput.disabled=w.input.disabled,w.mobileInput.required=w.input.required,w.mobileInput.placeholder=w.input.placeholder,w.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",w.selectedDates.length>0&&(w.mobileInput.defaultValue=w.mobileInput.value=w.formatDate(w.selectedDates[0],w.mobileFormatStr));w.config.minDate&&(w.mobileInput.min=w.formatDate(w.config.minDate,"Y-m-d"));w.config.maxDate&&(w.mobileInput.max=w.formatDate(w.config.maxDate,"Y-m-d"));w.input.getAttribute("step")&&(w.mobileInput.step=String(w.input.getAttribute("step")));w.input.type="hidden",void 0!==w.altInput&&(w.altInput.type="hidden");try{w.input.parentNode&&w.input.parentNode.insertBefore(w.mobileInput,w.input.nextSibling)}catch(e){}A(w.mobileInput,"change",(function(e){w.setDate(g(e).value,!1,w.mobileFormatStr),pe("onChange"),pe("onClose")}))}();var e=l(ie,50);w._debouncedChange=l(N,300),w.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&A(w.daysContainer,"mouseover",(function(e){"range"===w.config.mode&&ae(g(e))}));A(window.document.body,"keydown",ne),w.config.inline||w.config.static||A(window,"resize",e);void 0!==window.ontouchstart?A(window.document,"touchstart",Z):A(window.document,"mousedown",Z);A(window.document,"focus",Z,{capture:!0}),!0===w.config.clickOpens&&(A(w._input,"focus",w.open),A(w._input,"click",w.open));void 0!==w.daysContainer&&(A(w.monthNav,"click",Ce),A(w.monthNav,["keyup","increment"],F),A(w.daysContainer,"click",ue));if(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement){var t=function(e){return g(e).select()};A(w.timeContainer,["increment"],I),A(w.timeContainer,"blur",I,{capture:!0}),A(w.timeContainer,"click",Y),A([w.hourElement,w.minuteElement],["focus","click"],t),void 0!==w.secondElement&&A(w.secondElement,"focus",(function(){return w.secondElement&&w.secondElement.select()})),void 0!==w.amPM&&A(w.amPM,"click",(function(e){I(e),N()}))}w.config.allowInput&&A(w._input,"blur",te)}(),(w.selectedDates.length||w.config.noCalendar)&&(w.config.enableTime&&_(w.config.noCalendar?w.latestSelectedDateObj:void 0),be(!1)),k();var t=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!w.isMobile&&t&&ce(),pe("onReady")}(),w}function k(e,t){for(var n=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),a=[],i=0;i Zeno Rocha */ + /* Dracula Theme v1.2.0 diff --git a/www/lib/highlight/styles/default.css b/www/lib/highlight/styles/default.css index f1bfade31..f6854b295 100644 --- a/www/lib/highlight/styles/default.css +++ b/www/lib/highlight/styles/default.css @@ -1,3 +1,7 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* SPDX-FileCopyrightText: (c) Ivan Sagalaev */ + + /* Original highlight.js style (c) Ivan Sagalaev diff --git a/www/lib/highlight/styles/github.css b/www/lib/highlight/styles/github.css index 791932b87..938e0a8e6 100644 --- a/www/lib/highlight/styles/github.css +++ b/www/lib/highlight/styles/github.css @@ -1,3 +1,6 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* SPDX-FileCopyrightText: (c) Vasily Polovnyov */ + /* github.com style (c) Vasily Polovnyov diff --git a/www/lib/ical.min.js b/www/lib/ical.min.js index 569b869f5..6522790ab 100644 --- a/www/lib/ical.min.js +++ b/www/lib/ical.min.js @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MPL-2.0 +// SPDX-FileCopyrightText: Portions Copyright (C) Philipp Kewisch "object"==typeof module?ICAL=module.exports:"object"!=typeof ICAL&&(this.ICAL={}),ICAL.foldLength=75,ICAL.newLineChar="\r\n",ICAL.helpers={updateTimezones:function(t){var e,r,n,i,a,s;if(!t||"vcalendar"!==t.name)return t;for(e=t.getAllSubcomponents(),r=[],n={},a=0;a>18&63,r=a>>12&63,n=a>>6&63,i=63&a,c[u++]=s.charAt(e)+s.charAt(r)+s.charAt(n)+s.charAt(i),o>16&255,r=s>>8&255,n=255&s,c[h++]=64==i?String.fromCharCode(e):64==a?String.fromCharCode(e,r):String.fromCharCode(e,r,n),u=this.changes.length)break}var s=this.changes[n];if(s.utcOffset-s.prevUtcOffset<0&&0=this.changes.length?this.changes.length-1:e},_ensureCoverage:function(t){if(-1==ICAL.Timezone._minimumExpansionYear){var e=ICAL.Time.now();ICAL.Timezone._minimumExpansionYear=e.year}var r=t;if(rICAL.Timezone.MAX_YEAR&&(r=ICAL.Timezone.MAX_YEAR),!this.changes.length||this.expandedUntilYeart)&&l);)n.year=l.year,n.month=l.month,n.day=l.day,n.hour=l.hour,n.minute=l.minute,n.second=l.second,n.isDate=l.isDate,ICAL.Timezone.adjust_change(n,0,0,0,-n.prevUtcOffset),r.push(n)}}else(n=s()).year=i.year,n.month=i.month,n.day=i.day,n.hour=i.hour,n.minute=i.minute,n.second=i.second,ICAL.Timezone.adjust_change(n,0,0,0,-n.prevUtcOffset),r.push(n);return r},toString:function(){return this.tznames?this.tznames:this.tzid}},ICAL.Timezone._compare_change_fn=function(t,e){return t.yeare.year?1:t.monthe.month?1:t.daye.day?1:t.houre.hour?1:t.minutee.minute?1:t.seconde.second?1:0},ICAL.Timezone.convert_time=function(t,e,r){if(t.isDate||e.tzid==r.tzid||e==ICAL.Timezone.localTimezone||r==ICAL.Timezone.localTimezone)return t.zone=r,t;var n=e.utcOffset(t);return t.adjust(0,0,0,-n),n=r.utcOffset(t),t.adjust(0,0,0,n),null},ICAL.Timezone.fromData=function(t){return(new ICAL.Timezone).fromData(t)},ICAL.Timezone.utcTimezone=ICAL.Timezone.fromData({tzid:"UTC"}),ICAL.Timezone.localTimezone=ICAL.Timezone.fromData({tzid:"floating"}),ICAL.Timezone.adjust_change=function(t,e,r,n,i){return ICAL.Time.prototype.adjust.call(t,e,r,n,i,t)},ICAL.Timezone._minimumExpansionYear=-1,ICAL.Timezone.MAX_YEAR=2035,ICAL.Timezone.EXTRA_COVERAGE=5}(),ICAL.TimezoneService=function(){var r,t={get count(){return Object.keys(r).length},reset:function(){r=Object.create(null);var t=ICAL.Timezone.utcTimezone;r.Z=t,r.UTC=t,r.GMT=t},has:function(t){return!!r[t]},get:function(t){return r[t]},register:function(t,e){if(t instanceof ICAL.Component&&"vtimezone"===t.name&&(t=(e=new ICAL.Timezone(t)).tzid),!(e instanceof ICAL.Timezone))throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component");r[t]=e},remove:function(t){return delete r[t]}};return t.reset(),t}(),function(){function t(e){Object.defineProperty(ICAL.Time.prototype,e,{get:function(){return this._pendingNormalization&&(this._normalize(),this._pendingNormalization=!1),this._time[e]},set:function(t){return"isDate"===e&&t&&!this._time.isDate&&this.adjust(0,0,0,0),this._cachedUnixTime=null,this._pendingNormalization=!0,this._time[e]=t}})}ICAL.Time=function(t,e){var r=(this.wrappedJSObject=this)._time=Object.create(null);r.year=0,r.month=1,r.day=1,r.hour=0,r.minute=0,r.second=0,r.isDate=!1,this.fromData(t,e)},ICAL.Time._dowCache={},ICAL.Time._wnCache={},ICAL.Time.prototype={icalclass:"icaltime",_cachedUnixTime:null,get icaltype(){return this.isDate?"date":"date-time"},zone:null,_pendingNormalization:!1,clone:function(){return new ICAL.Time(this._time,this.zone)},reset:function(){this.fromData(ICAL.Time.epochTime),this.zone=ICAL.Timezone.utcTimezone},resetTo:function(t,e,r,n,i,a,s){this.fromData({year:t,month:e,day:r,hour:n,minute:i,second:a,zone:s})},fromJSDate:function(t,e){return t?e?(this.zone=ICAL.Timezone.utcTimezone,this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()):(this.zone=ICAL.Timezone.localTimezone,this.year=t.getFullYear(),this.month=t.getMonth()+1,this.day=t.getDate(),this.hour=t.getHours(),this.minute=t.getMinutes(),this.second=t.getSeconds()):this.reset(),this._cachedUnixTime=null,this},fromData:function(t,e){if(t)for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if("icaltype"===r)continue;this[r]=t[r]}if(e&&(this.zone=e),!t||"isDate"in t?t&&"isDate"in t&&(this.isDate=t.isDate):this.isDate=!("hour"in t),t&&"timezone"in t){var n=ICAL.TimezoneService.get(t.timezone);this.zone=n||ICAL.Timezone.localTimezone}return t&&"zone"in t&&(this.zone=t.zone),this.zone||(this.zone=ICAL.Timezone.localTimezone),this._cachedUnixTime=null,this},dayOfWeek:function(t){var e=t||ICAL.Time.SUNDAY,r=(this.year<<12)+(this.month<<8)+(this.day<<3)+e;if(r in ICAL.Time._dowCache)return ICAL.Time._dowCache[r];var n=this.day,i=this.month+(this.month<3?12:0),a=this.year-(this.month<3?1:0),s=n+a+ICAL.helpers.trunc(26*(i+1)/10)+ICAL.helpers.trunc(a/4);return s=((s+=6*ICAL.helpers.trunc(a/100)+ICAL.helpers.trunc(a/400))+7-e)%7+1,ICAL.Time._dowCache[r]=s},dayOfYear:function(){var t=ICAL.Time.isLeapYear(this.year)?1:0;return ICAL.Time.daysInYearPassedMonth[t][this.month-1]+this.day},startOfWeek:function(t){var e=t||ICAL.Time.SUNDAY,r=this.clone();return r.day-=(this.dayOfWeek()+7-e)%7,r.isDate=!0,r.hour=0,r.minute=0,r.second=0,r},endOfWeek:function(t){var e=t||ICAL.Time.SUNDAY,r=this.clone();return r.day+=(7-this.dayOfWeek()+e-ICAL.Time.SUNDAY)%7,r.isDate=!0,r.hour=0,r.minute=0,r.second=0,r},startOfMonth:function(){var t=this.clone();return t.day=1,t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t},endOfMonth:function(){var t=this.clone();return t.day=ICAL.Time.daysInMonth(t.month,t.year),t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t},startOfYear:function(){var t=this.clone();return t.day=1,t.month=1,t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t},endOfYear:function(){var t=this.clone();return t.day=31,t.month=12,t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t},startDoyWeek:function(t){var e=t||ICAL.Time.SUNDAY,r=this.dayOfWeek()-e;return r<0&&(r+=7),this.dayOfYear()-r},getDominicalLetter:function(){return ICAL.Time.getDominicalLetter(this.year)},nthWeekDay:function(t,e){var r,n=ICAL.Time.daysInMonth(this.month,this.year),i=e,a=0,s=this.clone();if(0<=i){s.day=1,0!=i&&i--,a=s.day;var o=t-s.dayOfWeek();o<0&&(o+=7),a+=o,a-=t,r=t}else{s.day=n,i++,(r=s.dayOfWeek()-t)<0&&(r+=7),r=n-r}return a+(r+=7*i)},isNthWeekDay:function(t,e){var r=this.dayOfWeek();return 0===e&&r===t||this.nthWeekDay(t,e)===this.day},weekNumber:function(t){var e,r=(this.year<<12)+(this.month<<8)+(this.day<<3)+t;if(r in ICAL.Time._wnCache)return ICAL.Time._wnCache[r];var n=this.clone();n.isDate=!0;var i=this.year;12==n.month&&25ICAL.Time.daysInYearPassedMonth[a][12])return a=ICAL.Time.isLeapYear(r)?1:0,n-=ICAL.Time.daysInYearPassedMonth[a][12],r++,ICAL.Time.fromDayOfYear(n,r);i.year=r,i.isDate=!0;for(var s=11;0<=s;s--)if(n>ICAL.Time.daysInYearPassedMonth[a][s]){i.month=s+1,i.day=n-ICAL.Time.daysInYearPassedMonth[a][s];break}return i.auto_normalize=!0,i},ICAL.Time.fromStringv2=function(t){return new ICAL.Time({year:parseInt(t.substr(0,4),10),month:parseInt(t.substr(5,2),10),day:parseInt(t.substr(8,2),10),isDate:!0})},ICAL.Time.fromDateString=function(t){return new ICAL.Time({year:ICAL.helpers.strictParseInt(t.substr(0,4)),month:ICAL.helpers.strictParseInt(t.substr(5,2)),day:ICAL.helpers.strictParseInt(t.substr(8,2)),isDate:!0})},ICAL.Time.fromDateTimeString=function(t,e){if(t.length<19)throw new Error('invalid date-time value: "'+t+'"');var r;return t[19]&&"Z"===t[19]?r="Z":e&&(r=e.getParameter("tzid")),new ICAL.Time({year:ICAL.helpers.strictParseInt(t.substr(0,4)),month:ICAL.helpers.strictParseInt(t.substr(5,2)),day:ICAL.helpers.strictParseInt(t.substr(8,2)),hour:ICAL.helpers.strictParseInt(t.substr(11,2)),minute:ICAL.helpers.strictParseInt(t.substr(14,2)),second:ICAL.helpers.strictParseInt(t.substr(17,2)),timezone:r})},ICAL.Time.fromString=function(t,e){return 10ICAL.Time.THURSDAY&&(r.day+=7),i>ICAL.Time.THURSDAY&&(r.day-=7),r.day-=n-i,r},ICAL.Time.getDominicalLetter=function(t){var e="GFEDCBA",r=(t+(t/4|0)+(t/400|0)-(t/100|0)-1)%7;return ICAL.Time.isLeapYear(t)?e[(6+r)%7]+e[r]:e[r]},ICAL.Time.epochTime=ICAL.Time.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:"Z"}),ICAL.Time._cmp_attr=function(t,e,r){return t[r]>e[r]?1:t[r] '+e);if(void 0!==r&&rs||0==this.last.day)throw new Error("Malformed values in BYDAY part")}else if(this.has_by_data("BYMONTHDAY")&&this.last.day<0){s=ICAL.Time.daysInMonth(this.last.month,this.last.year);this.last.day=s+this.last.day+1}},next:function(){var t,e=this.last?this.last.clone():null;if(this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&0i)){if(n<0)n=i+(n+1);else if(0===n)continue;-1===a.indexOf(n)&&a.push(n)}return a.sort(function(t,e){return t-e})},_byDayAndMonthDay:function(t){var e,r,n,i,a=this.by_data.BYDAY,s=0,o=a.length,u=0,h=this,c=this.last.day;function l(){for(i=ICAL.Time.daysInMonth(h.last.month,h.last.year),e=h.normalizeByMonthDayRules(h.last.year,h.last.month,h.by_data.BYMONTHDAY),n=e.length;e[s]<=c&&(!t||e[s]!=c)&&s=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month());e=ICAL.Time.daysInMonth(this.last.month,this.last.year);(a=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY])<0&&(a=e+a+1),ee?t=0:this.last.day=this.by_data.BYMONTHDAY[0]}return t},next_weekday_by_week:function(){var t=0;if(0==this.next_hour())return t;if(!this.has_by_data("BYDAY"))return 1;for(;;){var e=new ICAL.Time;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,t=1);var r=this.by_data.BYDAY[this.by_indices.BYDAY],n=this.ruleDayOfWeek(r)[1];(n-=this.rule.wkst)<0&&(n+=7),e.year=this.last.year,e.month=this.last.month,e.day=this.last.day;var i=e.startDoyWeek(this.rule.wkst);if(!(n+i<1)||t){var a=ICAL.Time.fromDayOfYear(i+n,this.last.year);return this.last.year=a.year,this.last.month=a.month,this.last.day=a.day,t}}},next_year:function(){if(0==this.next_hour())return 0;if(++this.days_index==this.days.length)for(this.days_index=0;this.increment_year(this.rule.interval),this.expand_year_days(this.last.year),0==this.days.length;);return this._nextByYearDay(),1},_nextByYearDay:function(){var t=this.days[this.days_index],e=this.last.year;t<1&&(t+=1,e+=1);var r=ICAL.Time.fromDayOfYear(t,e);this.last.day=r.day,this.last.month=r.month},ruleDayOfWeek:function(t,e){var r=t.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);return r?[parseInt(r[1]||0,10),t=ICAL.Recur.icalDayToNumericDay(r[2],e)]:[0,0]},next_generic:function(t,e,r,n,i){var a=t in this.by_data,s=this.rule.freq==e,o=0;if(i&&0==this[i]())return o;if(a){this.by_indices[t]++;this.by_indices[t];var u=this.by_data[t];this.by_indices[t]==u.length&&(this.by_indices[t]=0,o=1),this.last[r]=u[this.by_indices[t]]}else s&&this["increment_"+r](this.rule.interval);return a&&o&&s&&this["increment_"+n](1),o},increment_monthday:function(t){for(var e=0;er&&(this.last.day-=r,this.increment_month())}},increment_month:function(){if(this.last.day=1,this.has_by_data("BYMONTH"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{"MONTHLY"==this.rule.freq?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;var t=ICAL.helpers.trunc(this.last.month/12);this.last.month%=12,this.last.month++,0!=t&&this.increment_year(t)}},increment_year:function(t){this.last.year+=t},increment_generic:function(t,e,r,n){this.last[e]+=t;var i=ICAL.helpers.trunc(this.last[e]/r);this.last[e]%=r,0!=i&&this["increment_"+n](i)},has_by_data:function(t){return t in this.rule.parts},expand_year_days:function(t){var e=new ICAL.Time;this.days=[];var r={},n=["BYDAY","BYWEEKNO","BYMONTHDAY","BYMONTH","BYYEARDAY"];for(var i in n)if(n.hasOwnProperty(i)){var a=n[i];a in this.rule.parts&&(r[a]=this.rule.parts[a])}if("BYMONTH"in r&&"BYWEEKNO"in r){var s=1,o={};e.year=t,e.isDate=!0;for(var u=0;ue[0]?1:e[0]>t[0]?-1:0}return t.prototype={THISANDFUTURE:"THISANDFUTURE",exceptions:null,strictExceptions:!1,relateException:function(t){if(this.isRecurrenceException())throw new Error("cannot relate exception to exceptions");if(t instanceof ICAL.Component&&(t=new ICAL.Event(t)),this.strictExceptions&&t.uid!==this.uid)throw new Error("attempted to relate unrelated exception");var e=t.recurrenceId.toString();if((this.exceptions[e]=t).modifiesFuture()){var r=[t.recurrenceId.toUnixTime(),e],n=ICAL.helpers.binsearchInsert(this.rangeExceptions,r,i);this.rangeExceptions.splice(n,0,r)}},modifiesFuture:function(){return!!this.component.hasProperty("recurrence-id")&&this.component.getFirstProperty("recurrence-id").getParameter("range")===this.THISANDFUTURE},findRangeException:function(t){if(!this.rangeExceptions.length)return null;var e=t.toUnixTime(),r=ICAL.helpers.binsearchInsert(this.rangeExceptions,[e],i);if(--r<0)return null;var n=this.rangeExceptions[r];return e and contributors + +SPDX-License-Identifier: AGPL-3.0-or-later +--> + `cryptpad/www/lib/ical.min.js` was imported from https://github.com/mozilla-comm/ical.js and is available under the terms of the Mozilla Public License Version 2.0, included in this folder. diff --git a/www/lib/markmap/transform.min.js b/www/lib/markmap/transform.min.js index 3458923f5..dea3b437b 100644 --- a/www/lib/markmap/transform.min.js +++ b/www/lib/markmap/transform.min.js @@ -1,3 +1,2 @@ /*! markmap-lib v0.7.11 | MIT License */ -// SPDX-License-Identifier: MIT define(["exports"],(function(e){"use strict";var r={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",GT:">",Gt:"≫",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",LT:"<",Lt:"≪",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"},t=Object.prototype.hasOwnProperty;function n(e){return o=e,(n=r)&&t.call(n,o)?r[e]:e;var n,o}var o=Object.prototype.hasOwnProperty;function s(e){var r=[].slice.call(arguments,1);return r.forEach((function(r){if(r){if("object"!=typeof r)throw new TypeError(r+"must be object");Object.keys(r).forEach((function(t){e[t]=r[t]}))}})),e}var i=/\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;function l(e){return e.indexOf("\\")<0?e:e.replace(i,"$1")}function a(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function c(e){if(e>65535){var r=55296+((e-=65536)>>10),t=56320+(1023&e);return String.fromCharCode(r,t)}return String.fromCharCode(e)}var p=/&([a-z#][a-z0-9]{1,31});/gi,u=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;function h(e,r){var t=0,o=n(r);return r!==o?o:35===r.charCodeAt(0)&&u.test(r)&&a(t="x"===r[1].toLowerCase()?parseInt(r.slice(2),16):parseInt(r.slice(1),10))?c(t):e}function f(e){return e.indexOf("&")<0?e:e.replace(p,h)}var d=/[&<>"]/,g=/[&<>"]/g,b={"&":"&","<":"<",">":">",'"':"""};function v(e){return b[e]}function m(e){return d.test(e)?e.replace(g,v):e}var k={};k.blockquote_open=function(){return"
      \n"},k.blockquote_close=function(e,r){return"
      "+y(e,r)},k.code=function(e,r){return e[r].block?"
      "+m(e[r].content)+"
      "+y(e,r):""+m(e[r].content)+""},k.fence=function(e,r,t,n,s){var i,a,c,p,u=e[r],h="",d=t.langPrefix;if(u.params){if(a=(i=u.params.split(/\s+/g)).join(" "),c=s.rules.fence_custom,p=i[0],c&&o.call(c,p))return s.rules.fence_custom[i[0]](e,r,t,n,s);h=' class="'+d+m(f(l(a)))+'"'}return"
      "+(t.highlight&&t.highlight.apply(t.highlight,[u.content].concat(i))||m(u.content))+"
      "+y(e,r)},k.fence_custom={},k.heading_open=function(e,r){return""},k.heading_close=function(e,r){return"\n"},k.hr=function(e,r,t){return(t.xhtmlOut?"
      ":"
      ")+y(e,r)},k.bullet_list_open=function(){return"
        \n"},k.bullet_list_close=function(e,r){return"
      "+y(e,r)},k.list_item_open=function(){return"
    • "},k.list_item_close=function(){return"
    • \n"},k.ordered_list_open=function(e,r){var t=e[r];return"1?' start="'+t.order+'"':"")+">\n"},k.ordered_list_close=function(e,r){return""+y(e,r)},k.paragraph_open=function(e,r){return e[r].tight?"":"

      "},k.paragraph_close=function(e,r){var t=!(e[r].tight&&r&&"inline"===e[r-1].type&&!e[r-1].content);return(e[r].tight?"":"

      ")+(t?y(e,r):"")},k.link_open=function(e,r,t){var n=e[r].title?' title="'+m(f(e[r].title))+'"':"",o=t.linkTarget?' target="'+t.linkTarget+'"':"";return'"},k.link_close=function(){return""},k.image=function(e,r,t){var n=' src="'+m(e[r].src)+'"',o=e[r].title?' title="'+m(f(e[r].title))+'"':"";return""},k.table_open=function(){return"\n"},k.table_close=function(){return"
      \n"},k.thead_open=function(){return"\n"},k.thead_close=function(){return"\n"},k.tbody_open=function(){return"\n"},k.tbody_close=function(){return"\n"},k.tr_open=function(){return""},k.tr_close=function(){return"\n"},k.th_open=function(e,r){var t=e[r];return""},k.th_close=function(){return""},k.td_open=function(e,r){var t=e[r];return""},k.td_close=function(){return""},k.strong_open=function(){return""},k.strong_close=function(){return""},k.em_open=function(){return""},k.em_close=function(){return""},k.del_open=function(){return""},k.del_close=function(){return""},k.ins_open=function(){return""},k.ins_close=function(){return""},k.mark_open=function(){return""},k.mark_close=function(){return""},k.sub=function(e,r){return""+m(e[r].content)+""},k.sup=function(e,r){return""+m(e[r].content)+""},k.hardbreak=function(e,r,t){return t.xhtmlOut?"
      \n":"
      \n"},k.softbreak=function(e,r,t){return t.breaks?t.xhtmlOut?"
      \n":"
      \n":"\n"},k.text=function(e,r){return m(e[r].content)},k.htmlblock=function(e,r){return e[r].content},k.htmltag=function(e,r){return e[r].content},k.abbr_open=function(e,r){return''},k.abbr_close=function(){return""},k.footnote_ref=function(e,r){var t=Number(e[r].id+1).toString(),n="fnref"+t;return e[r].subId>0&&(n+=":"+e[r].subId),'['+t+"]"},k.footnote_block_open=function(e,r,t){return(t.xhtmlOut?'
      \n':'
      \n')+'
      \n
        \n'},k.footnote_block_close=function(){return"
      \n
      \n"},k.footnote_open=function(e,r){return'
    • '},k.footnote_close=function(){return"
    • \n"},k.footnote_anchor=function(e,r){var t="fnref"+Number(e[r].id+1).toString();return e[r].subId>0&&(t+=":"+e[r].subId),' '},k.dl_open=function(){return"
      \n"},k.dt_open=function(){return"
      "},k.dd_open=function(){return"
      "},k.dl_close=function(){return"
      \n"},k.dt_close=function(){return"\n"},k.dd_close=function(){return"\n"};var y=k.getBreak=function(e,r){return(r=function e(r,t){return++t>=r.length-2?t:"paragraph_open"===r[t].type&&r[t].tight&&"inline"===r[t+1].type&&0===r[t+1].content.length&&"paragraph_close"===r[t+2].type&&r[t+2].tight?e(r,t+2):t}(e,r))1)break;if(41===t&&--n<0)break;r++}return s!==r&&(o=l(e.src.slice(s,r)),!!e.parser.validateLink(o)&&(e.linkContent=o,e.pos=r,!0))}function E(e,r){var t,n=r,o=e.posMax,s=e.src.charCodeAt(r);if(34!==s&&39!==s&&40!==s)return!1;for(r++,40===s&&(s=41);r=e.length)&&!z.test(e[r])}function V(e,r,t){return e.substr(0,r)+t+e.substr(r+1)}var B=[["block",function(e){e.inlineMode?e.tokens.push({type:"inline",content:e.src.replace(/\n/g," ").trim(),level:0,lines:[0,1],children:[]}):e.block.parse(e.src,e.options,e.env,e.tokens)}],["abbr",function(e){var r,t,n,o,s=e.tokens;if(!e.inlineMode)for(r=1,t=s.length-1;r0?i[r].count:1,n=0;n=0;r--)if("text"===(s=o[r]).type){for(a=0,i=s.content,p.lastIndex=0,c=s.level,l=[];u=p.exec(i);)p.lastIndex>a&&l.push({type:"text",content:i.slice(a,u.index+u[1].length),level:c}),l.push({type:"abbr_open",title:e.env.abbreviations[":"+u[2]],level:c++}),l.push({type:"text",content:u[2],level:c}),l.push({type:"abbr_close",level:--c}),a=p.lastIndex-u[3].length;l.length&&(a=0;s--)if("inline"===e.tokens[s].type)for(r=(o=e.tokens[s].children).length-1;r>=0;r--)"text"===(t=o[r]).type&&(n=t.content,n=(i=n).indexOf("(")<0?i:i.replace(I,(function(e,r){return N[r.toLowerCase()]})),D.test(n)&&(n=n.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),t.content=n)}],["smartquotes",function(e){var r,t,n,o,s,i,l,a,c,p,u,h,f,d,g,b,v;if(e.options.typographer)for(v=[],g=e.tokens.length-1;g>=0;g--)if("inline"===e.tokens[g].type)for(b=e.tokens[g].children,v.length=0,r=0;r=0&&!(v[f].level<=l);f--);v.length=f+1,s=0,i=(n=t.content).length;e:for(;s=0&&(p=v[f],!(v[f].level=(o=e.eMarks[r])||42!==(t=e.src.charCodeAt(n++))&&45!==t&&43!==t||n=o)return-1;if((t=e.src.charCodeAt(n++))<48||t>57)return-1;for(;;){if(n>=o)return-1;if(!((t=e.src.charCodeAt(n++))>=48&&t<=57)){if(41===t||46===t)break;return-1}}return n=this.eMarks[e]},j.prototype.skipEmptyLines=function(e){for(var r=this.lineMax;et;)if(r!==this.src.charCodeAt(--e))return e+1;return e},j.prototype.getLines=function(e,r,t,n){var o,s,i,l,a,c=e;if(e>=r)return"";if(c+1===r)return s=this.bMarks[c]+Math.min(this.tShift[c],t),i=n?this.eMarks[c]+1:this.eMarks[c],this.src.slice(s,i);for(l=new Array(r-e),o=0;ct&&(a=t),a<0&&(a=0),s=this.bMarks[c]+a,i=c+1]/,F=/^<\/([a-zA-Z]{1,15})[\s>]/;function J(e,r){var t=e.bMarks[r]+e.blkIndent,n=e.eMarks[r];return e.src.substr(t,n-t)}function Y(e,r){var t,n,o=e.bMarks[r]+e.tShift[r],s=e.eMarks[r];return o>=s||126!==(n=e.src.charCodeAt(o++))&&58!==n||o===(t=e.skipSpaces(o))||t>=s?-1:t}var W=[["code",function(e,r,t){var n,o;if(e.tShift[r]-e.blkIndent<4)return!1;for(o=n=r+1;n=4))break;o=++n}return e.line=n,e.tokens.push({type:"code",content:e.getLines(r,o,4+e.blkIndent,!0),block:!0,lines:[r,e.line],level:e.level}),!0}],["fences",function(e,r,t,n){var o,s,i,l,a,c=!1,p=e.bMarks[r]+e.tShift[r],u=e.eMarks[r];if(p+3>u)return!1;if(126!==(o=e.src.charCodeAt(p))&&96!==o)return!1;if(a=p,(s=(p=e.skipChars(p,o))-a)<3)return!1;if((i=e.src.slice(p,u).trim()).indexOf("`")>=0)return!1;if(n)return!0;for(l=r;!(++l>=t)&&!((p=a=e.bMarks[l]+e.tShift[l])<(u=e.eMarks[l])&&e.tShift[l]=4||(p=e.skipChars(p,o))-ab)return!1;if(62!==e.src.charCodeAt(g++))return!1;if(e.level>=e.options.maxNesting)return!1;if(n)return!0;for(32===e.src.charCodeAt(g)&&g++,a=e.blkIndent,e.blkIndent=0,l=[e.bMarks[r]],e.bMarks[r]=g,s=(g=g=b,i=[e.tShift[r]],e.tShift[r]=g-e.bMarks[r],u=e.parser.ruler.getRules("blockquote"),o=r+1;o=(b=e.eMarks[o]));o++)if(62!==e.src.charCodeAt(g++)){if(s)break;for(d=!1,h=0,f=u.length;h=b,i.push(e.tShift[o]),e.tShift[o]=g-e.bMarks[o];for(c=e.parentType,e.parentType="blockquote",e.tokens.push({type:"blockquote_open",lines:p=[r,0],level:e.level++}),e.parser.tokenize(e,r,o),e.tokens.push({type:"blockquote_close",level:--e.level}),e.parentType=c,p[1]=e.line,h=0;ha)return!1;if(42!==(o=e.src.charCodeAt(l++))&&45!==o&&95!==o)return!1;for(s=1;l=0)g=!0;else{if(!((u=P(e,r))>=0))return!1;g=!1}if(e.level>=e.options.maxNesting)return!1;if(d=e.src.charCodeAt(u-1),n)return!0;for(v=e.tokens.length,g?(p=e.bMarks[r]+e.tShift[r],f=Number(e.src.substr(p,u-p-1)),e.tokens.push({type:"ordered_list_open",order:f,lines:k=[r,0],level:e.level++})):e.tokens.push({type:"bullet_list_open",lines:k=[r,0],level:e.level++}),o=r,m=!1,_=e.parser.ruler.getRules("list");!(!(o=e.eMarks[o]?1:b-u)>4&&(h=1),h<1&&(h=1),s=u-e.bMarks[o]+h,e.tokens.push({type:"list_item_open",lines:y=[r,0],level:e.level++}),l=e.blkIndent,a=e.tight,i=e.tShift[r],c=e.parentType,e.tShift[r]=b-e.bMarks[r],e.blkIndent=s,e.tight=!0,e.parentType="list",e.parser.tokenize(e,r,t,!0),e.tight&&!m||(A=!1),m=e.line-r>1&&e.isEmpty(e.line-1),e.blkIndent=l,e.tShift[r]=i,e.tight=a,e.parentType=c,e.tokens.push({type:"list_item_close",level:--e.level}),o=r=e.line,y[1]=o,b=e.bMarks[r],o>=t)||e.isEmpty(o)||e.tShift[o]p)return!1;if(91!==e.src.charCodeAt(c))return!1;if(94!==e.src.charCodeAt(c+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(l=c+2;l=p||58!==e.src.charCodeAt(++l))&&(n||(l++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),a=e.src.slice(c+2,l-2),e.env.footnotes.refs[":"+a]=-1,e.tokens.push({type:"footnote_reference_open",label:a,level:e.level++}),o=e.bMarks[r],s=e.tShift[r],i=e.parentType,e.tShift[r]=e.skipSpaces(l)-l,e.bMarks[r]=l,e.blkIndent+=4,e.parentType="footnote",e.tShift[r]=a)return!1;if(35!==(o=e.src.charCodeAt(l))||l>=a)return!1;for(s=1,o=e.src.charCodeAt(++l);35===o&&l6||ll&&32===e.src.charCodeAt(i-1)&&(a=i),e.line=r+1,e.tokens.push({type:"heading_open",hLevel:s,lines:[r,e.line],level:e.level}),l=t)&&(!(e.tShift[i]3)&&(!((o=e.bMarks[i]+e.tShift[i])>=(s=e.eMarks[i]))&&((45===(n=e.src.charCodeAt(o))||61===n)&&(o=e.skipChars(o,n),!((o=e.skipSpaces(o))3||l+2>=a)return!1;if(60!==e.src.charCodeAt(l))return!1;if(33===(o=e.src.charCodeAt(l+1))||63===o){if(n)return!0}else{if(47!==o&&!function(e){var r=32|e;return r>=97&&r<=122}(o))return!1;if(47===o){if(!(s=e.src.slice(l,a).match(F)))return!1}else if(!(s=e.src.slice(l,a).match(Z)))return!1;if(!0!==H[s[1].toLowerCase()])return!1;if(n)return!0}for(i=r+1;it)return!1;if(a=r+1,e.tShift[a]=e.eMarks[a])return!1;if(124!==(o=e.src.charCodeAt(i))&&45!==o&&58!==o)return!1;if(s=J(e,r+1),!/^[-:| ]+$/.test(s))return!1;if((c=s.split("|"))<=2)return!1;for(u=[],l=0;l=0;if(p=r+1,e.isEmpty(p)&&++p>t)return!1;if(e.tShift[p]=e.options.maxNesting)return!1;c=e.tokens.length,e.tokens.push({type:"dl_open",lines:a=[r,0],level:e.level++}),i=r,s=p;e:for(;;){for(v=!0,b=!1,e.tokens.push({type:"dt_open",lines:[i,i],level:e.level++}),e.tokens.push({type:"inline",content:e.getLines(i,i+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[i,i],children:[]}),e.tokens.push({type:"dt_close",level:--e.level});;){if(e.tokens.push({type:"dd_open",lines:l=[p,0],level:e.level++}),g=e.tight,h=e.ddIndent,u=e.blkIndent,d=e.tShift[s],f=e.parentType,e.blkIndent=e.ddIndent=e.tShift[s]+2,e.tShift[s]=o-e.bMarks[s],e.tight=!0,e.parentType="deflist",e.parser.tokenize(e,s,t,!0),e.tight&&!b||(v=!1),b=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=d,e.tight=g,e.parentType=f,e.blkIndent=u,e.ddIndent=h,e.tokens.push({type:"dd_close",level:--e.level}),l[1]=p=e.line,p>=t)break e;if(e.tShift[p]=t)break;if(i=p,e.isEmpty(i))break;if(e.tShift[i]=t)break;if(e.isEmpty(s)&&s++,s>=t)break;if(e.tShift[s]3)){for(o=!1,s=0,i=l.length;s=t))&&!(e.tShift[i]=0&&(e=e.replace(Q,(function(r,t){var n;return 10===e.charCodeAt(t)?(s=t+1,i=0,r):(n=" ".slice((t-s-i)%4),i=t-s+1,n)}))),o=new j(e,this,r,t,n),this.tokenize(o,o.line,o.lineMax)};for(var te=[],ne=0;ne<256;ne++)te.push(0);function oe(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function se(e,r){var t,n,o,s=r,i=!0,l=!0,a=e.posMax,c=e.src.charCodeAt(r);for(t=r>0?e.src.charCodeAt(r-1):-1;s=a&&(i=!1),(o=s-r)>=4?i=l=!1:(32!==(n=s?@[]^_`{|}~-".split("").forEach((function(e){te[e.charCodeAt(0)]=1}));var ie=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;var le=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;var ae=["coap","doi","javascript","aaa","aaas","about","acap","cap","cid","crid","data","dav","dict","dns","file","ftp","geo","go","gopher","h323","http","https","iax","icap","im","imap","info","ipp","iris","iris.beep","iris.xpc","iris.xpcs","iris.lwz","ldap","mailto","mid","msrp","msrps","mtqp","mupdate","news","nfs","ni","nih","nntp","opaquelocktoken","pop","pres","rtsp","service","session","shttp","sieve","sip","sips","sms","snmp","soap.beep","soap.beeps","tag","tel","telnet","tftp","thismessage","tn3270","tip","tv","urn","vemmi","ws","wss","xcon","xcon-userid","xmlrpc.beep","xmlrpc.beeps","xmpp","z39.50r","z39.50s","adiumxtra","afp","afs","aim","apt","attachment","aw","beshare","bitcoin","bolo","callto","chrome","chrome-extension","com-eventbrite-attendee","content","cvs","dlna-playsingle","dlna-playcontainer","dtn","dvb","ed2k","facetime","feed","finger","fish","gg","git","gizmoproject","gtalk","hcp","icon","ipn","irc","irc6","ircs","itms","jar","jms","keyparc","lastfm","ldaps","magnet","maps","market","message","mms","ms-help","msnim","mumble","mvn","notes","oid","palm","paparazzi","platform","proxy","psyc","query","res","resource","rmi","rsync","rtmp","secondlife","sftp","sgn","skype","smb","soldat","spotify","ssh","steam","svn","teamspeak","things","udp","unreal","ut2004","ventrilo","view-source","webcal","wtai","wyciwyg","xfire","xri","ymsgr"],ce=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,pe=/^<([a-zA-Z.\-]{1,25}):([^<>\x00-\x20]*)>/;function ue(e,r){return e=e.source,r=r||"",function t(n,o){return n?(o=o.source||o,e=e.replace(n,o),t):new RegExp(e,r)}}var he=ue(/(?:unquoted|single_quoted|double_quoted)/)("unquoted",/[^"'=<>`\x00-\x20]+/)("single_quoted",/'[^']*'/)("double_quoted",/"[^"]*"/)(),fe=ue(/(?:\s+attr_name(?:\s*=\s*attr_value)?)/)("attr_name",/[a-zA-Z_:][a-zA-Z0-9:._-]*/)("attr_value",he)(),de=ue(/<[A-Za-z][A-Za-z0-9]*attribute*\s*\/?>/)("attribute",fe)(),ge=ue(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)("open_tag",de)("close_tag",/<\/[A-Za-z][A-Za-z0-9]*\s*>/)("comment",/|/)("processing",/<[?].*?[?]>/)("declaration",/]*>/)("cdata",//)();var be=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,ve=/^&([a-z][a-z0-9]{1,31});/i;var me=[["text",function(e,r){for(var t=e.pos;t=0&&32===e.pending.charCodeAt(t))if(t>=1&&32===e.pending.charCodeAt(t-1)){for(var s=t-2;s>=0;s--)if(32!==e.pending.charCodeAt(s)){e.pending=e.pending.substring(0,s+1);break}e.push({type:"hardbreak",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:"softbreak",level:e.level});else e.push({type:"softbreak",level:e.level});for(o++;o=l)return!1;if(126!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=a>0?e.src.charCodeAt(a-1):-1,i=e.src.charCodeAt(a+2),126===s)return!1;if(126===i)return!1;if(32===i||10===i)return!1;for(n=a+2;na+3)return e.pos+=n-a,r||(e.pending+=e.src.slice(a,n)),!0;for(e.pos=a+2,o=1;e.pos+1=l)return!1;if(43!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=a>0?e.src.charCodeAt(a-1):-1,i=e.src.charCodeAt(a+2),43===s)return!1;if(43===i)return!1;if(32===i||10===i)return!1;for(n=a+2;n=l)return!1;if(61!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=a>0?e.src.charCodeAt(a-1):-1,i=e.src.charCodeAt(a+2),61===s)return!1;if(61===i)return!1;if(32===i||10===i)return!1;for(n=a+2;n=e.options.maxNesting)return!1;for(e.pos=p+t,l=[t];e.pos=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos=e.options.maxNesting)return!1;if(t=f+1,(n=w(e,f))<0)return!1;if((l=n+1)=h)return!1;for(f=l,S(e,l)?(s=e.linkContent,l=e.pos):s="",f=l;l=h||41!==e.src.charCodeAt(l))return e.pos=u,!1;l++}else{if(e.linkLevel>0)return!1;for(;l=0?o=e.src.slice(f,l++):l=f-1),o||(void 0===o&&(l=n+1),o=e.src.slice(t,n)),!(a=e.env.references[L(o)]))return e.pos=u,!1;s=a.href,i=a.title}return r||(e.pos=t,e.posMax=n,p?e.push({type:"image",src:s,title:i,alt:e.src.substr(t,n-t),level:e.level}):(e.push({type:"link_open",href:s,title:i,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:"link_close",level:--e.level}))),e.pos=l,e.posMax=h,!0}],["footnote_inline",function(e,r){var t,n,o,s,i=e.posMax,l=e.pos;return!(l+2>=i)&&(94===e.src.charCodeAt(l)&&(91===e.src.charCodeAt(l+1)&&(!(e.level>=e.options.maxNesting)&&(t=l+2,!((n=w(e,l+1))<0)&&(r||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),o=e.env.footnotes.list.length,e.pos=t,e.posMax=n,e.push({type:"footnote_ref",id:o,level:e.level}),e.linkLevel++,s=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[o]={tokens:e.tokens.splice(s)},e.linkLevel--),e.pos=n+1,e.posMax=i,!0)))))}],["footnote_ref",function(e,r){var t,n,o,s,i=e.posMax,l=e.pos;if(l+3>i)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(l))return!1;if(94!==e.src.charCodeAt(l+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(n=l+2;n=i)&&(n++,t=e.src.slice(l+2,n-1),void 0!==e.env.footnotes.refs[":"+t]&&(r||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[":"+t]<0?(o=e.env.footnotes.list.length,e.env.footnotes.list[o]={label:t,count:0},e.env.footnotes.refs[":"+t]=o):o=e.env.footnotes.refs[":"+t],s=e.env.footnotes.list[o].count,e.env.footnotes.list[o].count++,e.push({type:"footnote_ref",id:o,subId:s,level:e.level})),e.pos=n,e.posMax=i,!0)))}],["autolink",function(e,r){var t,n,o,s,i,l=e.pos;return 60===e.src.charCodeAt(l)&&(!((t=e.src.slice(l)).indexOf(">")<0)&&((n=t.match(pe))?!(ae.indexOf(n[1].toLowerCase())<0)&&(i=C(s=n[0].slice(1,-1)),!!e.parser.validateLink(s)&&(r||(e.push({type:"link_open",href:i,level:e.level}),e.push({type:"text",content:s,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=n[0].length,!0)):!!(o=t.match(ce))&&(i=C("mailto:"+(s=o[0].slice(1,-1))),!!e.parser.validateLink(i)&&(r||(e.push({type:"link_open",href:i,level:e.level}),e.push({type:"text",content:s,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=o[0].length,!0))))}],["htmltag",function(e,r){var t,n,o,s=e.pos;return!!e.options.html&&(o=e.posMax,!(60!==e.src.charCodeAt(s)||s+2>=o)&&(!(33!==(t=e.src.charCodeAt(s+1))&&63!==t&&47!==t&&!function(e){var r=32|e;return r>=97&&r<=122}(t))&&(!!(n=e.src.slice(s).match(ge))&&(r||e.push({type:"htmltag",content:e.src.slice(s,s+n[0].length),level:e.level}),e.pos+=n[0].length,!0))))}],["entity",function(e,r){var t,o,s=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(s))return!1;if(s+10)e.pos=t;else{for(r=0;r=s)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},ke.prototype.parse=function(e,r,t,n){var o=new x(e,this,r,t,n);this.tokenize(o)};var _e={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","replacements","smartquotes","references","abbr2","footnote_tail"]},block:{rules:["blockquote","code","fences","footnote","heading","hr","htmlblock","lheading","list","paragraph","table"]},inline:{rules:["autolink","backticks","del","emphasis","entity","escape","footnote_ref","htmltag","links","newline","text"]}}},full:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","abbr2"]},block:{rules:["blockquote","code","fences","heading","hr","htmlblock","lheading","list","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","htmltag","links","newline","text"]}}}};function qe(e,r,t){this.src=r,this.env=t,this.options=e.options,this.tokens=[],this.inlineMode=!1,this.inline=e.inline,this.block=e.block,this.renderer=e.renderer,this.typographer=e.typographer}function xe(e,r){"string"!=typeof e&&(r=e,e="default"),r&&null!=r.linkify&&console.warn("linkify option is removed. Use linkify plugin instead:\n\nimport Remarkable from 'remarkable';\nimport linkify from 'remarkable/linkify';\nnew Remarkable().use(linkify)\n"),this.inline=new ke,this.block=new K,this.core=new G,this.renderer=new _,this.ruler=new q,this.options={},this.configure(_e[e]),this.set(r||{})}xe.prototype.set=function(e){s(this.options,e)},xe.prototype.configure=function(e){var r=this;if(!e)throw new Error("Wrong `remarkable` preset, check name/content");e.options&&r.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&r[t].ruler.enable(e.components[t].rules,!0)}))},xe.prototype.use=function(e,r){return e(this,r),this},xe.prototype.parse=function(e,r){var t=new qe(this,e,r);return this.core.process(t),t.tokens},xe.prototype.render=function(e,r){return r=r||{},this.renderer.render(this.parse(e,r),this.options,r)},xe.prototype.parseInline=function(e,r){var t=new qe(this,e,r);return t.inlineMode=!0,this.core.process(t),t.tokens},xe.prototype.renderInline=function(e,r){return r=r||{},this.renderer.render(this.parseInline(e,r),this.options,r)};Math.random().toString(36).slice(2,8);function we(e){return e.replace(/[&<"]/g,e=>({"&":"&","<":"<",'"':"""}[e]))}function Ae(e,r){return`<${e}${r?Object.entries(r).map(([e,r])=>{if(null!=r&&!1!==r)return e=" "+we(e),!0===r?e:`${e}="${we(r)}"`}).filter(Boolean).join(""):""}>`}function Ce(e){return``}function Se(e,r,t){return null==r?Ae(e,t):Ae(e,t)+(r||"")+Ce(e)}function Ee(e,r){return r.code&&(e=Se("code",e)),r.del&&(e=Se("del",e)),r.em&&(e=Se("em",e)),r.strong&&(e=Se("strong",e)),e}const Le=new xe;function Me(e){const r=[];let t={};for(const n of e.children)if("text"===n.type)r.push(Ee(we(n.content),t));else if("code"===n.type)r.push(Se("code",Ee(we(n.content),t)));else if("softbreak"===n.type)r.push("
      ");else if(n.type.endsWith("_open")){const e=n.type.slice(0,-5);"link"===e?r.push(Ae("a",{href:n.href,title:n.title,target:"_blank",rel:"noopener noreferrer"})):t=Object.assign({},t,{[e]:!0})}else if(n.type.endsWith("_close")){const e=n.type.slice(0,-6);"link"===e?r.push(Ce("a")):t=Object.assign({},t,{[e]:!1})}return r.join("")}function Te(e){const r={t:"root",d:0,v:"",c:[]},t=[r];let n=0;for(const r of e){let e=t[t.length-1];if(r.type.endsWith("_open")){const i=r.type.slice(0,-5),l={};var o;if("heading"===i)for(n=r.hLevel;(null==(s=e)?void 0:s.d)>=n;){var s;t.pop(),e=t[t.length-1]}else n=Math.max(n,(null==(o=e)?void 0:o.d)||0)+1,"ordered_list"===i&&(l.start=r.order);const a={t:i,d:n,p:l,v:"",c:[]};e.c.push(a),t.push(a)}else{if(!e)continue;r.type===e.t+"_close"?"heading"===e.t?n=e.d:(t.pop(),n=0):"inline"===r.type?e.v=`${e.v||""}${Me(r)}`:"fence"===r.type&&e.c.push({t:r.type,d:n+1,v:`
      ${we(r.content)}
      `,c:[]})}}return r}Le.block.ruler.enable(["deflist"]),e.buildTree=Te,e.transform=function(e){var r;let t=Te(Le.parse(e||"",{}));return function e(r,t=0){if("heading"===r.t)r.c=r.c.filter(e=>"paragraph"!==e.t);else if("list_item"===r.t){var n;r.c=r.c.filter(e=>!["paragraph","fence"].includes(e.t)||(r.v||(r.v=e.v),!1)),null!=(null==(n=r.p)?void 0:n.index)&&(r.v=`${r.p.index}. ${r.v}`)}else if("ordered_list"===r.t){var o,s;let e=null!=(o=null==(s=r.p)?void 0:s.start)?o:1;r.c.forEach(r=>{"list_item"===r.t&&(r.p=Object.assign({},r.p,{index:e}),e+=1)})}0===r.c.length?delete r.c:(1!==r.c.length||r.c[0].v||(r.c=r.c[0].c),r.c.forEach(r=>e(r,t+1))),r.d=t,delete r.p}(t),1===(null==(r=t.c)?void 0:r.length)&&(t=t.c[0]),t}})); diff --git a/www/lib/markmap/view.min.js b/www/lib/markmap/view.min.js index 4154da69f..392a57fa0 100644 --- a/www/lib/markmap/view.min.js +++ b/www/lib/markmap/view.min.js @@ -1,3 +1,2 @@ /*! markmap-lib v0.7.11 | MIT License */ -// SPDX-License-Identifier: MIT define(["exports"],(function(t){"use strict";function n(t,n){return tn?1:t>=n?0:NaN}var e,r;1===(e=n).length&&(r=e,e=function(t,e){return n(r(t),e)});function i(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o=e)for(r=e;++or&&(r=e)}else for(;++o=e)for(r=e;++or&&(r=e);return r}function o(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o=e)for(r=e;++oe&&(r=e)}else for(;++o=e)for(r=e;++oe&&(r=e);return r}var a={value:function(){}};function s(){for(var t,n=0,e=arguments.length,r={};n=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}function c(t,n){for(var e,r=0,i=t.length;r0)for(var e,r,i=new Array(e),o=0;o=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),p.hasOwnProperty(n)?{space:p[n],local:t}:t}function m(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===f&&n.documentElement.namespaceURI===f?n.createElement(t):n.createElementNS(e,t)}}function g(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function y(t){var n=d(t);return(n.local?g:m)(n)}function v(){}function _(t){return null==t?v:function(){return this.querySelector(t)}}function w(){return[]}function x(t){return null==t?w:function(){return this.querySelectorAll(t)}}function b(t){return function(){return this.matches(t)}}function z(t){return new Array(t.length)}function k(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}k.prototype={constructor:k,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function M(t,n,e,r,i,o){for(var a,s=0,u=n.length,l=o.length;sn?1:t>=n?0:NaN}function A(t){return function(){this.removeAttribute(t)}}function N(t){return function(){this.removeAttributeNS(t.space,t.local)}}function X(t,n){return function(){this.setAttribute(t,n)}}function $(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function j(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function C(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function T(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function O(t){return function(){this.style.removeProperty(t)}}function P(t,n,e){return function(){this.style.setProperty(t,n,e)}}function R(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function I(t,n){return t.style.getPropertyValue(n)||T(t).getComputedStyle(t,null).getPropertyValue(n)}function q(t){return function(){delete this[t]}}function Y(t,n){return function(){this[t]=n}}function B(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function D(t){return t.trim().split(/^|\s+/)}function H(t){return t.classList||new L(t)}function L(t){this._node=t,this._names=D(t.getAttribute("class")||"")}function V(t,n){for(var e=H(t),r=-1,i=n.length;++r=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var ut={},lt=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(ut={mouseenter:"mouseover",mouseleave:"mouseout"}));function ct(t,n,e){return t=ht(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function ht(t,n,e){return function(r){var i=lt;lt=r;try{t.call(this,this.__data__,n,e)}finally{lt=i}}}function ft(t){return t.trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function pt(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r=w&&(w=_+1);!(v=g[w])&&++w=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=S);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?O:"function"==typeof n?R:P)(t,n,null==e?"":e)):I(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?q:"function"==typeof n?B:Y)(t,n)):this.node()[t]},classed:function(t,n){var e=D(t+"");if(arguments.length<2){for(var r=H(this.node()),i=-1,o=e.length;++i>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?Ft(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?Ft(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Pt.exec(t))?new Jt(n[1],n[2],n[3],1):(n=Rt.exec(t))?new Jt(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=It.exec(t))?Ft(n[1],n[2],n[3],n[4]):(n=qt.exec(t))?Ft(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Yt.exec(t))?tn(n[1],n[2]/100,n[3]/100,1):(n=Bt.exec(t))?tn(n[1],n[2]/100,n[3]/100,n[4]):Dt.hasOwnProperty(t)?Ut(Dt[t]):"transparent"===t?new Jt(NaN,NaN,NaN,0):null}function Ut(t){return new Jt(t>>16&255,t>>8&255,255&t,1)}function Ft(t,n,e,r){return r<=0&&(t=n=e=NaN),new Jt(t,n,e,r)}function Gt(t){return t instanceof $t||(t=Vt(t)),t?new Jt((t=t.rgb()).r,t.g,t.b,t.opacity):new Jt}function Zt(t,n,e,r){return 1===arguments.length?Gt(t):new Jt(t,n,e,null==r?1:r)}function Jt(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Kt(){return"#"+Wt(this.r)+Wt(this.g)+Wt(this.b)}function Qt(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function Wt(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function tn(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new en(t,n,e,r)}function nn(t){if(t instanceof en)return new en(t.h,t.s,t.l,t.opacity);if(t instanceof $t||(t=Vt(t)),!t)return new en;if(t instanceof en)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,s=o-i,u=(o+i)/2;return s?(a=n===o?(e-r)/s+6*(e0&&u<1?0:a,new en(a,s,u,t.opacity)}function en(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function rn(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function on(t){return function(){return t}}function an(t){return 1==(t=+t)?sn:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):on(isNaN(n)?e:n)}}function sn(t,n){var e=n-t;return e?function(t,n){return function(e){return t+e*n}}(t,e):on(isNaN(t)?n:t)}Nt($t,Vt,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Ht,formatHex:Ht,formatHsl:function(){return nn(this).formatHsl()},formatRgb:Lt,toString:Lt}),Nt(Jt,Zt,Xt($t,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Jt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Jt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Kt,formatHex:Kt,formatRgb:Qt,toString:Qt})),Nt(en,(function(t,n,e,r){return 1===arguments.length?nn(t):new en(t,n,e,null==r?1:r)}),Xt($t,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new en(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new en(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Jt(rn(t>=240?t-240:t+120,i,r),rn(t,i,r),rn(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var un=function t(n){var e=an(n);function r(t,n){var r=e((t=Zt(t)).r,(n=Zt(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=sn(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function ln(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var cn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hn=new RegExp(cn.source,"g");function fn(t,n){var e,r,i,o=cn.lastIndex=hn.lastIndex=0,a=-1,s=[],u=[];for(t+="",n+="";(e=cn.exec(t))&&(r=hn.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),s[a]?s[a]+=i:s[++a]=i),(e=e[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,u.push({i:a,x:ln(e,r)})),o=hn.lastIndex;return o180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:ln(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,s,u),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:ln(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,s,u),function(t,n,e,r,o,a){if(t!==e||n!==r){var s=o.push(i(o)+"scale(",null,",",null,")");a.push({i:s-4,x:ln(t,e)},{i:s-2,x:ln(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,u),o=a=null,function(t){for(var n,e=-1,r=u.length;++e=0&&n._call.call(null,t),n=n._next;--An}()}finally{An=0,function(){var t,n,e=En,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:En=n);Sn=t,Dn(r)}(),jn=0}}function Bn(){var t=Tn.now(),n=t-$n;n>1e3&&(Cn-=n,$n=t)}function Dn(t){An||(Nn&&(Nn=clearTimeout(Nn)),t-jn>24?(t<1/0&&(Nn=setTimeout(Yn,t-Tn.now()-Cn)),Xn&&(Xn=clearInterval(Xn))):(Xn||($n=Tn.now(),Xn=setInterval(Bn,1e3)),An=1,On(Yn)))}function Hn(t,n,e){var r=new In;return n=null==n?0:+n,r.restart((function(e){r.stop(),t(e+n)}),n,e),r}In.prototype=qn.prototype={constructor:In,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?Pn():+e)+(null==n?0:+n),this._next||Sn===this||(Sn?Sn._next=this:En=this,Sn=this),this._call=t,this._time=e,Dn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Dn())}};var Ln=s("start","end","cancel","interrupt"),Vn=[];function Un(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(u){var l,c,h,f;if(1!==e.state)return s();for(l in i)if((f=i[l]).name===e.name){if(3===f.state)return Hn(o);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[l]):+l0)throw new Error("too late; already scheduled");return e}function Gn(t,n){var e=Zn(t,n);if(e.state>3)throw new Error("too late; already running");return e}function Zn(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Jn(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function Kn(t,n){var e,r;return function(){var i=Gn(this,t),o=i.tween;if(o!==e)for(var a=0,s=(r=e=o).length;a=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?Fn:Gn;return function(){var a=o(this,t),s=a.on;s!==r&&(i=(r=s).copy()).on(n,e),a.on=i}}var ye=wt.prototype.constructor;function ve(t){return function(){this.style.removeProperty(t)}}function _e(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function we(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&_e(t,o,e)),r}return o._value=n,o}function xe(t){return function(n){this.textContent=t.call(this,n)}}function be(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&xe(r)),n}return r._value=t,r}var ze=0;function ke(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Me(){return++ze}var Ee=wt.prototype;ke.prototype=function(t){return wt().transition(t)}.prototype={constructor:ke,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=_(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a1e-6)if(Math.abs(c*s-u*l)>1e-6&&i){var f=e-o,p=r-a,d=s*s+u*u,m=f*f+p*p,g=Math.sqrt(d),y=Math.sqrt(h),v=i*Math.tan((Ne-Math.acos((d+h-m)/(2*g*y)))/2),_=v/y,w=v/g;Math.abs(_-1)>1e-6&&(this._+="L"+(t+_*l)+","+(n+_*c)),this._+="A"+i+","+i+",0,0,"+ +(c*f>l*p)+","+(this._x1=t+w*s)+","+(this._y1=n+w*u)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,o=!!o;var a=(e=+e)*Math.cos(r),s=e*Math.sin(r),u=t+a,l=n+s,c=1^o,h=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+u+","+l:(Math.abs(this._x1-u)>1e-6||Math.abs(this._y1-l)>1e-6)&&(this._+="L"+u+","+l),e&&(h<0&&(h=h%Xe+Xe),h>$e?this._+="A"+e+","+e+",0,1,"+c+","+(t-a)+","+(n-s)+"A"+e+","+e+",0,1,"+c+","+(this._x1=u)+","+(this._y1=l):h>1e-6&&(this._+="A"+e+","+e+",0,"+ +(h>=Ne)+","+c+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};function Te(){}function Oe(t,n){var e=new Te;if(t instanceof Te)t.each((function(t,n){e.set(n,t)}));else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i=0;)n+=e[r].value;else n=1;t.value=n}function qe(t,n){var e,r,i,o,a,s=new He(t),u=+t.value&&(s.value=t.value),l=[s];for(null==n&&(n=Ye);e=l.pop();)if(u&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)l.push(r=e.children[o]=new He(i[o])),r.parent=e,r.depth=e.depth+1;return s.eachBefore(De)}function Ye(t){return t.children}function Be(t){t.data=t.data.data}function De(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function He(t){this.data=t,this.depth=this.height=0,this.parent=null}function Le(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}Pe.prototype=function(t,n){var e=new Pe;if(t instanceof Pe)t.each((function(t){e.add(t)}));else if(t){var r=-1,i=t.length;if(null==n)for(;++r=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each((function(n){t.push(n)})),t},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return qe(this).eachBefore(Be)}};var Ve=Array.prototype.slice,Ue={name:"implicit"};function Fe(){var t=Oe(),n=[],e=[],r=Ue;function i(i){var o=i+"",a=t.get(o);if(!a){if(r!==Ue)return r;t.set(o,a=n.push(i))}return e[(a-1)%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=Oe();for(var r,o,a=-1,s=e.length;++ar?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function gr(){var t,n,e=cr,r=hr,i=mr,o=pr,a=dr,u=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],c=250,h=Mn,f=s("start","zoom","end"),p=0;function d(t){t.property("__zoom",fr).on("wheel.zoom",x).on("mousedown.zoom",b).on("dblclick.zoom",z).filter(a).on("touchstart.zoom",k).on("touchmove.zoom",M).on("touchend.zoom touchcancel.zoom",E).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(t,n){return(n=Math.max(u[0],Math.min(u[1],n)))===t.k?t:new or(n,t.x,t.y)}function g(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new or(t.k,r,i)}function y(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function v(t,n,e){t.on("start.zoom",(function(){_(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){_(this,arguments).end()})).tween("zoom",(function(){var t=this,i=arguments,o=_(t,i),a=r.apply(t,i),s=null==e?y(a):"function"==typeof e?e.apply(t,i):e,u=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),l=t.__zoom,c="function"==typeof n?n.apply(t,i):n,f=h(l.invert(s).concat(u/l.k),c.invert(s).concat(u/c.k));return function(t){if(1===t)t=c;else{var n=f(t),e=u/n[2];t=new or(e,s[0]-n[0]*e,s[1]-n[1]*e)}o.zoom(null,t)}}))}function _(t,n,e){return!e&&t.__zooming||new w(t,n)}function w(t,n){this.that=t,this.args=n,this.active=0,this.extent=r.apply(t,n),this.taps=0}function x(){if(e.apply(this,arguments)){var t=_(this,arguments),n=this.__zoom,r=Math.max(u[0],Math.min(u[1],n.k*Math.pow(2,o.apply(this,arguments)))),a=kt(this);if(t.wheel)t.mouse[0][0]===a[0]&&t.mouse[0][1]===a[1]||(t.mouse[1]=n.invert(t.mouse[0]=a)),clearTimeout(t.wheel);else{if(n.k===r)return;t.mouse=[a,n.invert(a)],Jn(this),t.start()}lr(),t.wheel=setTimeout(s,150),t.zoom("mouse",i(g(m(n,r),t.mouse[0],t.mouse[1]),t.extent,l))}function s(){t.wheel=null,t.end()}}function b(){if(!n&&e.apply(this,arguments)){var t=_(this,arguments,!0),r=xt(lt.view).on("mousemove.zoom",u,!0).on("mouseup.zoom",c,!0),o=kt(this),a=lt.clientX,s=lt.clientY;St(lt.view),ur(),t.mouse=[o,this.__zoom.invert(o)],Jn(this),t.start()}function u(){if(lr(),!t.moved){var n=lt.clientX-a,e=lt.clientY-s;t.moved=n*n+e*e>p}t.zoom("mouse",i(g(t.that.__zoom,t.mouse[0]=kt(t.that),t.mouse[1]),t.extent,l))}function c(){r.on("mousemove.zoom mouseup.zoom",null),At(lt.view,t.moved),lr(),t.end()}}function z(){if(e.apply(this,arguments)){var t=this.__zoom,n=kt(this),o=t.invert(n),a=t.k*(lt.shiftKey?.5:2),s=i(g(m(t,a),n,o),r.apply(this,arguments),l);lr(),c>0?xt(this).transition().duration(c).call(v,s,n):xt(this).call(d.transform,s)}}function k(){if(e.apply(this,arguments)){var n,r,i,o,a=lt.touches,s=a.length,u=_(this,arguments,lt.changedTouches.length===s);for(ur(),r=0;rt.children,nodeSize:t=>t.data.size,spacing:0});function vr(t){const n=Object.assign({},yr,t);function e(t){const e=n[t];return"function"==typeof e?e:()=>e}function r(t){const n=o(function(){const t=i(),n=e("nodeSize"),r=e("spacing");return class extends t{constructor(t){super(t),Object.assign(this,{x:0,y:0,relX:0,prelim:0,shift:0,change:0,lExt:this,lExtRelX:0,lThr:null,rExt:this,rExtRelX:0,rThr:null})}get size(){return n(this.data)}spacing(t){return r(this.data,t.data)}get x(){return this.data.x}set x(t){this.data.x=t}get y(){return this.data.y}set y(t){this.data.y=t}update(){return _r(this),wr(this),this}}}(),t,t=>t.children);return n.update(),n.data}function i(){const t=e("nodeSize"),n=e("spacing");return class e extends qe.prototype.constructor{constructor(t){super(t)}copy(){const t=o(this.constructor,this,t=>t.children);return t.each(t=>t.data=t.data.data),t}get size(){return t(this)}spacing(t){return n(this,t)}get nodes(){return this.descendants()}get xSize(){return this.size[0]}get ySize(){return this.size[1]}get top(){return this.y}get bottom(){return this.y+this.ySize}get left(){return this.x-this.xSize/2}get right(){return this.x+this.xSize/2}get root(){const t=this.ancestors();return t[t.length-1]}get numChildren(){return this.hasChildren?this.children.length:0}get hasChildren(){return!this.noChildren}get noChildren(){return null===this.children}get firstChild(){return this.hasChildren?this.children[0]:null}get lastChild(){return this.hasChildren?this.children[this.numChildren-1]:null}get extents(){return(this.children||[]).reduce((t,n)=>e.maxExtents(t,n.extents),this.nodeExtents)}get nodeExtents(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}static maxExtents(t,n){return{top:Math.min(t.top,n.top),bottom:Math.max(t.bottom,n.bottom),left:Math.min(t.left,n.left),right:Math.max(t.right,n.right)}}}}function o(t,n,e){const r=(n,i)=>{const o=new t(n);Object.assign(o,{parent:i,depth:null===i?0:i.depth+1,height:0,length:1});const a=e(n)||[];return o.children=0===a.length?null:a.map(t=>r(t,o)),o.children&&Object.assign(o,o.children.reduce((t,n)=>({height:Math.max(t.height,n.height+1),length:t.length+n.length}),o)),o};return r(n,null)}return Object.assign(r,{nodeSize(t){return arguments.length?(n.nodeSize=t,r):n.nodeSize},spacing(t){return arguments.length?(n.spacing=t,r):n.spacing},children(t){return arguments.length?(n.children=t,r):n.children},hierarchy(t,e){const r=void 0===e?n.children:e;return o(i(),t,r)},dump(t){const n=e("nodeSize"),r=t=>e=>{const i=t+" ",o=t+" ",{x:a,y:s}=e,u=n(e),l=e.children||[],c=0===l.length?" ":`,${i}children: [${o}${l.map(r(o)).join(o)}${i}],${t}`;return`{ size: [${u.join(", ")}],${i}x: ${a}, y: ${s}${c}},`};return r("\n")(t)}}),r}vr.version="2.1.1";const _r=(t,n=0)=>(t.y=n,(t.children||[]).reduce((n,e)=>{const[r,i]=n;_r(e,t.y+t.ySize);const o=(0===r?e.lExt:e.rExt).bottom;0!==r&&br(t,r,i);return[r+1,Xr(o,r,i)]},[0,null]),xr(t),Nr(t),t),wr=(t,n,e)=>{void 0===n&&(n=-t.relX-t.prelim,e=0);const r=n+t.relX;return t.relX=r+t.prelim-e,t.prelim=0,t.x=e+t.relX,(t.children||[]).forEach(n=>wr(n,r,t.x)),t},xr=t=>{(t.children||[]).reduce((t,n)=>{const[e,r]=t,i=e+n.shift,o=r+i+n.change;return n.relX+=o,[i,o]},[0,0])},br=(t,n,e)=>{const r=t.children[n-1],i=t.children[n];let o=r,a=r.relX,s=i,u=i.relX,l=!0;for(;o&&s;){o.bottom>e.lowY&&(e=e.next);const r=a+o.prelim-(u+s.prelim)+o.xSize/2+s.xSize/2+o.spacing(s);(r>0||r<0&&l)&&(u+=r,zr(i,r),kr(t,n,e.index,r)),l=!1;const c=o.bottom,h=s.bottom;c<=h&&(o=Er(o),o&&(a+=o.relX)),c>=h&&(s=Mr(s),s&&(u+=s.relX))}!o&&s?Sr(t,n,s,u):o&&!s&&Ar(t,n,o,a)},zr=(t,n)=>{t.relX+=n,t.lExtRelX+=n,t.rExtRelX+=n},kr=(t,n,e,r)=>{const i=t.children[n],o=n-e;if(o>1){const n=r/o;t.children[e+1].shift+=n,i.shift-=n,i.change-=r-n}},Mr=t=>t.hasChildren?t.firstChild:t.lThr,Er=t=>t.hasChildren?t.lastChild:t.rThr,Sr=(t,n,e,r)=>{const i=t.firstChild,o=i.lExt,a=t.children[n];o.lThr=e;const s=r-e.relX-i.lExtRelX;o.relX+=s,o.prelim-=s,i.lExt=a.lExt,i.lExtRelX=a.lExtRelX},Ar=(t,n,e,r)=>{const i=t.children[n],o=i.rExt,a=t.children[n-1];o.rThr=e;const s=r-e.relX-i.rExtRelX;o.relX+=s,o.prelim-=s,i.rExt=a.rExt,i.rExtRelX=a.rExtRelX},Nr=t=>{if(t.hasChildren){const n=t.firstChild,e=t.lastChild,r=(n.prelim+n.relX-n.xSize/2+e.relX+e.prelim+e.xSize/2)/2;Object.assign(t,{prelim:r,lExt:n.lExt,lExtRelX:n.lExtRelX,rExt:e.rExt,rExtRelX:e.rExtRelX})}},Xr=(t,n,e)=>{for(;null!==e&&t>=e.lowY;)e=e.next;return{lowY:t,index:n,next:e}},$r=Math.random().toString(36).slice(2,8);let jr=0;function Cr(){}function Tr(t,n,e="c"){const r=(t,i)=>n(t,()=>{var n;null==(n=t[e])||n.forEach(n=>{r(n,t)})},i);r(t)}function Or(t){if(Array.from)return Array.from(t);const n=[];for(let e=0;e{t&&e.indexOf(t)<0&&e.push(t)}),e.join(" ")}function Rr(t){if("string"==typeof t){const n=t;t=t=>t.tagName===n}const n=t;return function(){let t=Or(this.childNodes);return n&&(t=t.filter(t=>n(t))),t}}function Ir(t,n,e){const r=document.createElement(t);return n&&Object.entries(n).forEach(([t,n])=>{r[t]=n}),e&&Object.entries(e).forEach(([t,n])=>{r.setAttribute(t,n)}),r}const qr=function(t){const n={};return function(...e){const r=""+e[0];let i=n[r];return i||(i={value:t(...e)},n[r]=i),i.value}}(t=>{document.head.append(Ir("link",{rel:"preload",as:"script",href:t}))});function Yr(t,n){if("script"===t.type)return new Promise((n,e)=>{document.head.append(Ir("script",Object.assign({},t.data,{onload:n,onerror:e})))});if("iife"===t.type){const{fn:e,getParams:r}=t.data;e(...(null==r?void 0:r(n))||[])}}function Br(t){"style"===t.type?document.head.append(Ir("style",{textContent:t.data})):"stylesheet"===t.type&&document.head.append(Ir("link",Object.assign({rel:"stylesheet"},t.data)))}async function Dr(t,n,e){e=Object.assign({},e),await Promise.all(n.map(t=>(function(t){for(const n of t)Br(n)}(t.styles),async function(t,n){const e=t.filter(t=>"script"===t.type);e.length>1&&e.forEach(t=>qr(t.data.src));for(const e of t)await Yr(e,n)}(t.scripts,e))));for(const{initialize:r}of n)r&&r(t,e)}const Hr={styles:[],scripts:[{type:"iife",data:{fn:t=>{t.options=Object.assign({skipHtmlTags:{"[-]":["code","pre"]}},t.options),t.startup=Object.assign({typeset:!1},t.startup),window.MathJax=t},getParams:t=>[Object.assign({},t.mathJax)]}},{type:"script",data:{src:"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"}}],initialize:function(t,n){t.transformHtml.tap((t,n)=>{var e,r;null==(e=(r=window.MathJax).typeset)||e.call(r,n)})}},Lr={};const Vr={styles:[{type:"stylesheet",data:{href:"https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism.css"}}],scripts:[{type:"iife",data:{fn:()=>{window.Prism={manual:!0}}}},{type:"script",data:{src:"https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-core.min.js"}},{type:"script",data:{src:"https://cdn.jsdelivr.net/npm/prismjs@1/plugins/autoloader/prism-autoloader.min.js"}}],initialize:function(t,n){t.transformHtml.tap((t,n)=>{const{Prism:e}=window;!async function(t,n){if(!n.length)return;const{Prism:e}=window;try{await new Promise((t,r)=>{e.plugins.autoloader.loadLanguages(n,t,r)})}catch(t){Lr[t]=!0}t.setData(),t.fit()}(t,function(t,n){if(t.flatMap)return t.flatMap(n);const e=[];for(let r=0;rOr(t.querySelectorAll("code[class*=language-]"))).map(t=>{const n=t.className.match(/(?:^|\s)language-(\S+)|$/)[1];if(e.languages[n])e.highlightElement(t);else if(!Lr[n])return n}).filter(Boolean))})}};var Ur=Object.freeze({__proto__:null,mathJax:Hr,prism:Vr});function Fr(t){const n=t.data;return Math.max(6-2*n.d,1.5)}class Gr{constructor(t,n){var e;this.options=void 0,this.state=void 0,this.svg=void 0,this.styleNode=void 0,this.g=void 0,this.zoom=void 0,["handleZoom","handleClick"].forEach(t=>{this[t]=this[t].bind(this)}),this.svg=t.datum?t:xt(t),this.styleNode=this.svg.append("style"),this.zoom=gr().on("zoom",this.handleZoom),this.options=Object.assign({duration:500,nodeFont:"300 16px/20px sans-serif",nodeMinHeight:16,spacingVertical:5,spacingHorizontal:80,autoFit:!1,fitRatio:.95,color:(e=Fe(Ge),t=>e(t.p.i)),paddingX:8},n),this.state={id:this.options.id||(jr+=1,`mm-${$r}-${jr}`)},this.g=this.svg.append("g").attr("class",this.state.id+"-g"),this.updateStyle(),this.svg.call(this.zoom)}getStyleContent(){const{style:t,nodeFont:n}=this.options,{id:e}=this.state;return`.${e} a { color: #0097e6; }\n.${e} a:hover { color: #00a8ff; }\n.${e}-g > path { fill: none; }\n.${e}-fo > div { font: ${n}; white-space: nowrap; }\n.${e}-fo code { padding: .2em .4em; font-size: calc(1em - 2px); color: #555; background-color: #f0f0f0; border-radius: 2px; }\n.${e}-fo del { text-decoration: line-through; }\n.${e}-fo em { font-style: italic; }\n.${e}-fo strong { font-weight: 600; }\n.${e}-fo pre { margin: 0; }\n.${e}-fo pre[class*=language-] { padding: 0; }\n.${e}-g > g { cursor: pointer; }\n${"function"==typeof t?t(e):""}\n`}updateStyle(){this.svg.attr("class",Pr(this.svg.attr("class"),this.state.id)),this.styleNode.text(this.getStyleContent())}handleZoom(){const{transform:t}=lt;this.g.attr("transform",t)}handleClick(t){var n;const{data:e}=t;e.p=Object.assign({},e.p,{f:!(null==(n=e.p)?void 0:n.f)}),this.renderData(t.data)}initializeData(t){let n=0;const{nodeFont:e,color:r,nodeMinHeight:i}=this.options,{id:o}=this.state,a=document.createElement("div"),s=o+"-container";a.className=Pr(a.className,o+"-fo",s);const u=document.createElement("style");u.textContent=`\n${this.getStyleContent()}\n.${s} {\n position: absolute;\n width: 0;\n height: 0;\n top: -100px;\n left: -100px;\n overflow: hidden;\n font: ${e};\n}\n.${s} > div {\n display: inline-block;\n}\n`,document.body.append(u,a),Tr(t,(t,e)=>{var i;t.c=null==(i=t.c)?void 0:i.map(t=>Object.assign({},t)),n+=1;const o=document.createElement("div");o.innerHTML=t.v,a.append(o),t.p=Object.assign({},t.p,{i:n,el:o}),r(t),e()});const l=Or(a.childNodes);this.constructor.transformHtml.call(this,l),Tr(t,(t,n,e)=>{var r;const o=t.p.el.getBoundingClientRect();t.v=t.p.el.innerHTML,t.p.s=[Math.ceil(o.width),Math.max(Math.ceil(o.height),i)],t.p.k=`${(null==e||null==(r=e.p)?void 0:r.i)||""}.${t.p.i}:${t.v}`,n()}),a.remove(),u.remove()}setOptions(t){Object.assign(this.options,t)}setData(t,n){t||(t=Object.assign({},this.state.data)),this.state.data=t,this.initializeData(t),n&&this.setOptions(n),this.renderData()}renderData(t){var n,e;if(!this.state.data)return;const{spacingHorizontal:r,paddingX:a,spacingVertical:s,autoFit:u,color:l}=this.options,{id:c}=this.state,h=vr().children(t=>{var n;return!(null==(n=t.p)?void 0:n.f)&&t.c}).nodeSize(t=>{const[n,e]=t.data.p.s;return[e,n+(n?2*a:0)+r]}).spacing((t,n)=>t.parent===n.parent?s:2*s),f=h.hierarchy(this.state.data);h(f),function(t,n){Tr(t,(t,e)=>{t.ySizeInner=t.ySize-n,t.y+=n,e()},"children")}(f,r);const p=f.descendants().reverse(),d=f.links(),m=er(),g=o(p,t=>t.x-t.xSize/2),y=i(p,t=>t.x+t.xSize/2),v=o(p,t=>t.y),_=i(p,t=>t.y+t.ySizeInner);Object.assign(this.state,{minX:g,maxX:y,minY:v,maxY:_}),u&&this.fit();const w=t&&p.find(n=>n.data===t)||f,x=null!=(n=w.data.p.x0)?n:w.x,b=null!=(e=w.data.p.y0)?e:w.y,z=this.g.selectAll(Rr("g")).data(p,t=>t.data.p.k),k=z.enter().append("g").attr("transform",t=>`translate(${b+w.ySizeInner-t.ySizeInner},${x+w.xSize/2-t.xSize})`).on("click",this.handleClick),M=this.transition(z.exit());M.select("rect").attr("width",0).attr("x",t=>t.ySizeInner),M.select("foreignObject").style("opacity",0),M.attr("transform",t=>`translate(${w.y+w.ySizeInner-t.ySizeInner},${w.x+w.xSize/2-t.xSize})`).remove();const E=z.merge(k);this.transition(E).attr("transform",t=>`translate(${t.y},${t.x-t.xSize/2})`);const S=E.selectAll(Rr("rect")).data(t=>[t],t=>t.data.p.k).join(t=>t.append("rect").attr("x",t=>t.ySizeInner).attr("y",t=>t.xSize-Fr(t)/2).attr("width",0).attr("height",Fr),t=>t,t=>t.remove());this.transition(S).attr("x",-1).attr("width",t=>t.ySizeInner+2).attr("fill",t=>l(t.data));const A=E.selectAll(Rr("circle")).data(t=>t.data.c?[t]:[],t=>t.data.p.k).join(t=>t.append("circle").attr("stroke-width","1.5").attr("cx",t=>t.ySizeInner).attr("cy",t=>t.xSize).attr("r",0),t=>t,t=>t.remove());this.transition(A).attr("r",6).attr("stroke",t=>l(t.data)).attr("fill",t=>{var n;return(null==(n=t.data.p)?void 0:n.f)?l(t.data):"#fff"});const N=E.selectAll(Rr("foreignObject")).data(t=>[t],t=>t.data.p.k).join(t=>{const n=t.append("foreignObject").attr("class",c+"-fo").attr("x",a).attr("y",0).style("opacity",0).attr("height",t=>t.xSize);return n.append("xhtml:div").select((function(t){const n=t.data.p.el.cloneNode(!0);return this.replaceWith(n),n})).attr("xmlns","http://www.w3.org/1999/xhtml"),n},t=>t,t=>t.remove()).attr("width",t=>Math.max(0,t.ySizeInner-2*a));this.transition(N).style("opacity",1);const X=this.g.selectAll(Rr("path")).data(d,t=>t.target.data.p.k).join(t=>{const n=[b+w.ySizeInner,x+w.xSize/2];return t.insert("path","g").attr("d",m({source:n,target:n}))},t=>t,t=>{const n=[w.y+w.ySizeInner,w.x+w.xSize/2];return this.transition(t).attr("d",m({source:n,target:n})).remove()});this.transition(X).attr("stroke",t=>l(t.target.data)).attr("stroke-width",t=>Fr(t.target)).attr("d",t=>{const n=[t.source.y+t.source.ySizeInner,t.source.x+t.source.xSize/2],e=[t.target.y,t.target.x+t.target.xSize/2];return m({source:n,target:e})}),p.forEach(t=>{t.data.p.x0=t.x,t.data.p.y0=t.y})}transition(t){const{duration:n}=this.options;return t.transition().duration(n)}fit(){const t=this.svg.node(),{width:n,height:e}=t.getBoundingClientRect(),{fitRatio:r}=this.options,{minX:i,maxX:o,minY:a,maxY:s}=this.state,u=s-a,l=o-i,c=Math.min(n/u*r,e/l*r,2),h=ar.translate((n-u*c)/2-a*c,(e-l*c)/2-i*c).scale(c);return this.transition(this.svg).call(this.zoom.transform,h).end().catch(Cr)}rescale(t){const n=this.svg.node(),{width:e,height:r}=n.getBoundingClientRect(),i=e/2,o=r/2,a=sr(n),s=a.translate((i-a.x)*(1-t)/a.k,(o-a.y)*(1-t)/a.k).scale(t);return this.transition(this.svg).call(this.zoom.transform,s).end().catch(Cr)}static create(t,n,e){const r=new Gr(t,n);return e&&(r.setData(e),r.fit()),r}}Gr.transformHtml=new class{constructor(){this.listeners=[]}tap(t){this.listeners.push(t)}call(...t){for(const n of this.listeners)n(...t)}},t.Markmap=Gr,t.loadPlugins=async function(t,n){return t=t.map(t=>{if("string"==typeof t){const n=t;(t=Ur[n])||console.warn("[markmap] Unknown plugin: "+n)}return t}).filter(Boolean),Dr(Gr,t,n)},t.markmap=function(t,n,e){return Gr.create(t,e,n)},t.plugins=Ur})); diff --git a/www/lib/optional/optional.js b/www/lib/optional/optional.js index 4c4c0b8ca..00767379f 100644 --- a/www/lib/optional/optional.js +++ b/www/lib/optional/optional.js @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: CC-BY-SA-3.0 +// SPDX-FileCopyrightText: 2014 LordOfThePigs https://stackoverflow.com/a/27422370 + define("optional", [], { load : function (moduleName, parentRequire, onload, config){ From 993e4b09bfc86a2964f6eb122990f1442e926d08 Mon Sep 17 00:00:00 2001 From: David Benque Date: Mon, 23 Oct 2023 16:32:06 +0100 Subject: [PATCH 12/73] Add OO licensing info --- .reuse/dep5 | 62 +++++++++++++++++++++------ www/common/onlyoffice/app-oo.less | 6 +++ www/common/onlyoffice/build/build.sh | 4 ++ www/common/onlyoffice/build/update.sh | 4 ++ www/common/onlyoffice/history.js | 4 ++ www/common/onlyoffice/inner.js | 4 ++ www/common/onlyoffice/main.js | 4 ++ www/common/onlyoffice/oocell_base.js | 4 ++ www/common/onlyoffice/oodoc_base.js | 4 ++ www/common/onlyoffice/ooiframe.js | 4 ++ www/common/onlyoffice/ooslide_base.js | 4 ++ 11 files changed, 91 insertions(+), 13 deletions(-) diff --git a/.reuse/dep5 b/.reuse/dep5 index 3f97ae236..7436e4d6b 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -9,22 +9,12 @@ Source: https://cryptpad.org # Copyright: $YEAR $NAME <$CONTACT> # License: ... -# Temporary WIP DIRECTORIES - -# www/common/onlyoffice -# www/components -# www/lib - -Files: www/common/onlyoffice/* -Copyright: ignoring this for now -License: MIT +## Dependencies Files: www/common/theme/* -Copyright: temporary +Copyright: 2017 by Marijn Haverbeke and others License: MIT -## Dependencies - Files: www/lib/mermaid/* Copyright: (c) 2014 - 2021 Knut Sveidqvist License: MIT @@ -89,7 +79,7 @@ Files: www/pad/wordcount/* Copyright: Ingo Herbote License: MIT -# same as CKEditor +### same as CKEditor Files: www/pad/wysiwygarea-plugin.js Copyright: 2003-2017, CKSource - Frederico Knabben. All rights reserved License: GPL-2.0-or-later @@ -97,3 +87,49 @@ License: GPL-2.0-or-later Files: www/pad/icons/* Copyright: unknown License: GPL-2.0-or-later + +## OnlyOffice + +Files: www/common/onlyoffice/AllFonts.js +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/fonts_thumbnail.png +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/fonts_thumbnail@2x.png +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/plugins.json +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/v1/* +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/v2b/* +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/v4/* +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/v5/* +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/v6/* +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/v7/* +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later + +Files: www/common/onlyoffice/x2t/* +Copyright: Ascensio System Limited 2010-2022 +License: AGPL-3.0-or-later \ No newline at end of file diff --git a/www/common/onlyoffice/app-oo.less b/www/common/onlyoffice/app-oo.less index 8238582ed..bfb264e37 100644 --- a/www/common/onlyoffice/app-oo.less +++ b/www/common/onlyoffice/app-oo.less @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors + * + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + @import (reference) "../../customize/src/less2/include/framework.less"; // body diff --git a/www/common/onlyoffice/build/build.sh b/www/common/onlyoffice/build/build.sh index 2df65ddb9..7d52d9d87 100755 --- a/www/common/onlyoffice/build/build.sh +++ b/www/common/onlyoffice/build/build.sh @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + git clone https://github.com/ldubost/web-apps.git git clone https://github.com/ldubost/sdkjs.git cd sdkjs diff --git a/www/common/onlyoffice/build/update.sh b/www/common/onlyoffice/build/update.sh index dfa70b580..0ee1f68e3 100755 --- a/www/common/onlyoffice/build/update.sh +++ b/www/common/onlyoffice/build/update.sh @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +# +# SPDX-License-Identifier: AGPL-3.0-or-later + cd web-apps git pull cd ../sdkjs diff --git a/www/common/onlyoffice/history.js b/www/common/onlyoffice/history.js index c0126023c..7cce229af 100644 --- a/www/common/onlyoffice/history.js +++ b/www/common/onlyoffice/history.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/common-interface.js', diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 6de5d2e68..7fe2584b3 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define([ 'jquery', '/common/toolbar.js', diff --git a/www/common/onlyoffice/main.js b/www/common/onlyoffice/main.js index 2b4f28d89..9da5f22e8 100644 --- a/www/common/onlyoffice/main.js +++ b/www/common/onlyoffice/main.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/common/onlyoffice/oocell_base.js b/www/common/onlyoffice/oocell_base.js index 7e684b8f9..e0e88f9dc 100644 --- a/www/common/onlyoffice/oocell_base.js +++ b/www/common/onlyoffice/oocell_base.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(function () { return function (newOO) { diff --git a/www/common/onlyoffice/oodoc_base.js b/www/common/onlyoffice/oodoc_base.js index 4ae6423b7..9e9744dab 100644 --- a/www/common/onlyoffice/oodoc_base.js +++ b/www/common/onlyoffice/oodoc_base.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(function () { return function () { return 'DOCY;v5;229432;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AQEBFAAAAAADAAAABQQAAAAABgQEAAAAAwEBAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAQMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQEEFAAAAAADAAAABQQAAAAABgQEAAAAAwEBBRQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAQ8AAAAAEAYAAAACBgAAAAARjgMAAABBAAAAAQEAAAAAAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAABAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAUCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAGAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAABwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAA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EgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABkoAAAACBkQAAAAAHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEPAwEBAh0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDwMBAQBBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAhQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZKAAAAAgZEAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDwMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQ8DAQEAbwAAAAEBAAAABAIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACzAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZKAAAAAgZEAAAAAR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDwMBAQMdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQ8DAQEAbwAAAAEBAAAABgIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABvAAAAAQEAAAAHAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAuAUAAAEEAAAANQAwAAIaAAAAUABsAGEAaQBuACAAVABhAGIAbABlACAAMwAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHJQAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABgAAAAAPAAAAABAGAAAAAgYAAAAAEQwFAAAAhgAAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEPAgENAgYAAAAAAIYAAAABAQAAAAECKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBDwIBDQIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAALAAAAABAQAAAAQCCwAAAAABAQkDQEBAEAEBAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZqAAAAAgZkAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADQEBABQQAAAAABgQEAAAAAwEBAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAACwAAAAAQEAAAAFAgsAAAAAAQEJA0BAQBABAQMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGagAAAAIGZAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAANAQEAFBAAAAAAGBAQAAAADAQEATAAAAAEBAAAABgILAAAAAAEBCQNAQEAQAQEDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAATAAAAAEBAAAABwILAAAAAAEBCQNAQEAQAQEDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADkBAAAAQQAAAA1ADEAAhoAAABQ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AAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAcwAAAAEBAAAABAIIAAAAAQEBCQNAQEADFQAAAAEGAAAAAAUBAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABi0AAAABBggAAAAAAQABA////wIGGQAAAAIUAAAAAANAQEAFBAAAAAAGBAQAAAADAQEAogAAAAEBAAAABQIIAAAAAQEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABl8AAAABBggAAAAAAQABA////wIGSwAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAA0BAQAUEAAAAAAYEBAAAAAMBAQBwAAAAAQEAAAAGAggAAAABAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGLQAAAAEGCAAAAAABAAED////AgYZAAAAABQAAAAAA0BAQAUEAAAAAAYEBAAAAAMBAQCiAAAAAQEAAAAHAggAAAABAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGXwAAAAEGCAAAAAABAAED////AgZLAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAANAQEAFBAAAAAAGBAQAAAADAQECFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAAD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ABMEAAAAAAAAAAUAAAAABt4AAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEAAgFnAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAAIBZwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQACAWcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEAAgFnAwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAAIBZwMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQACAWcDAQEPAAAAABAGAAAAAgYAAAAAEZIEAAAAAAEAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGmgAAAAIGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQACAWcDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEAAgFnAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAAIBZwMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQACAWcDAQEAQQAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABAIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbgAAAAEBAAAABQIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABisAAAACBiUAAAADIAAAAAADAAAABQQAAAAABgQMAAAABAYGAAAAAQEAAgGVAwEBAEkAAAABAQAAAAYCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAPAYAAAEEAAAANQA1AAI6AAAARwByAGkAZAAgAFQAYQBiAGwAZQAgADEAIABMAGkAZwBoAHQAIAAtACAAQQBjAGMAZQBuAHQAIAAyAAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAcDAQAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAG3gAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAWcDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgFnAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBZwMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAWcDAQEEIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgFnAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBZwMBAQ8AAAAAEAYAAAACBgAAAAARkgQAAAAAAQAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAaaAAAAAgaUAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBZwMBAQEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAWcDAQECIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgFnAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBZwMBAQBBAAAAAQEAAAABAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABuAAAAAQEAAAAFAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGKwAAAAIGJQAAAAMgAAAAAAMAAAAFBAAAAAAGBAwAAAAEBgYAAAABAQECAZUDAQEASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAA8BgAAAQQAAAA1ADYAAjoAAABHAHIAaQBkACAAVABhAGIAbABlACAAMQAgAEwAaQBnAGgAdAAgAC0AIABBAGMAYwBlAG4AdAAgADMACQEAAAAEAwYAAAA1ADkAOQALBAAAAGMAAAAFAAAAAAYhAAAAAQYAAAAACQYPAAAAJwTwAAAACwEBKQQAAAAAGwYAAAAABwMBAAAPBAAAAAEAAAAQBAAAAAEAAAATBAAAAAAAAAAFAAAAAAbeAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBZwMBAQEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAWcDAQECIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgFnAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBZwMBAQQgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAWcDAQEFIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgFnAwEBDwAAAAAQBgAAAAIGAAAAABGSBAAAAAABAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABpoAAAACBpQAAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgFnAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBZwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAWcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgFnAwEBAEEAAAABAQAAAAECAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAQCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAG4AAAABAQAAAAUCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAAyAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAgIBlQMBAQBJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAADwGAAABBAAAADUANwACOgAAAEcAcgBpAGQAIABUAGEAYgBsAGUAIAAxACAATABpAGcAaAB0ACAALQAgAEEAYwBjAGUAbgB0ACAANAAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHAwEAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABt4AAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgFnAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBZwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAWcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgFnAwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBZwMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAWcDAQEPAAAAABAGAAAAAgYAAAAAEZIEAAAAAAEAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGmgAAAAIGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAWcDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgFnAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBZwMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAWcDAQEAQQAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABAIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbgAAAAEBAAAABQIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABisAAAACBiUAAAADIAAAAAADAAAABQQAAAAABgQMAAAABAYGAAAAAQEDAgGVAwEBAEkAAAABAQAAAAYCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAPAYAAAEEAAAANQA4AAI6AAAARwByAGkAZAAgAFQAYQBiAGwAZQAgADEAIABMAGkAZwBoAHQAIAAtACAAQQBj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IAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgFnAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBZwMBAQQgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAWcDAQEFIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgFnAwEBDwAAAAAQBgAAAAIGAAAAABGSBAAAAAABAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABpoAAAACBpQAAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgFnAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBZwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAWcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgFnAwEBAEEAAAABAQAAAAECAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAQCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAG4AAAABAQAAAAUCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAAyAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBBQIBlQMBAQBJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAE0GAAABBAAAADYAMAACGAAAAEcAcgBpAGQAIABUAGEAYgBsAGUAIAAyAAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAeUAAAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAGbwAAAAMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CAZUDAQEEIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEPAgGVAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBDwIBlQMBAQ8AAAAAEAYAAAACBgAAAAARNAUAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQ8CATQCBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEPAgE0AgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABAIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAxwAAAAEBAAAABQIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABoQAAAABBggAAAAAAQABA////wIGcAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMgAAAAAAMAAAAFBAAAAAAGBAwAAAAEBgYAAAABAQ8CAZUDAQEASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAxwAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABoQAAAABBggAAAAAAQABA////wIGcAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEPAgGVAwEBAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABjBgAAAQQAAAA2ADEAAi4AAABHAHIAaQBkACAAVABhAGIAbABlACAAMgAgAC0AIABBAGMAYwBlAG4AdAAgADEACQEAAAAEAwYAAAA1ADkAOQALBAAAAGMAAAAFAAAAAAYhAAAAAQYAAAAACQYPAAAAJwTwAAAACwEBKQQAAAAAGwYAAAAAB5QAAAAPBAAAAAEAAAAQBAAAAAEAAAATBAAAAAAAAAAFAAAAAAZvAAAAAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAAIB6gMBAQQgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQACAeoDAQEFIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEAAgHqAwEBDwAAAAAQBgAAAAIGAAAAABE0BQAAAIYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBAAIBNAIGAAAAAACGAAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQACATQCBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADHAAAAAQEAAAAFAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGhAAAAAEGCAAAAAABAAED////AgZwAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAyAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAAIB6gMBAQBJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADHAAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGhAAAAAEGCAAAAAABAAED////AgZwAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQACAeoDAQECFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAA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BAAAAAAGBAQAAAAEBgYAAAABAQMCAZoDAQEFIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgGaAwEBDwAAAAAQBgAAAAIGAAAAABE0BQAAAIYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBAwIBNAIGAAAAAACGAAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQMCATQCBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADHAAAAAQEAAAAFAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGhAAAAAEGCAAAAAABAAED////AgZwAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAyAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAwIBmgMBAQBJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADHAAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGhAAAAAEGCAAAAAABAAED////AgZwAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAZoDAQECFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAFQGAAABBAAAADYANQACLgAAAEcAcgBpAGQAIABUAGEAYgBsAGUAIAAyACAALQAgAEEAYwBjAGUAbgB0ACAANQAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHiwAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABmYAAAADHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEEAwEBBB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBAMBAQUdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQQDAQEPAAAAABAGAAAAAgYAAAAAES4FAAAAhgAAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEEAgE0AgYAAAAAAIYAAAABAQAAAAECKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBBAIBNAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAQCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAMQAAAABAQAAAAUCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAaBAAAAAQYIAAAAAAEAAQP///8CBm0AAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADHQAAAAADAAAABQQAAAAABgQMAAAABAYDAAAAAQEEAwEBAEkAAAABAQAAAAYCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAMQAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAaBAAAAAQYIAAAAAAEAAQP///8CBm0AAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBAMBAQIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAVAYAAAEEAAAANgA2AAIuAAAARwByAGkAZAAgAFQAYQBiAGwAZQAgADIAIAAtACAAQQBjAGMAZQBuAHQAIAA2AAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAeLAAAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAGZgAAAAMdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQUDAQEEHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEFAwEBBR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBQMBAQ8AAAAAEAYAAAACBgAAAAARLgUAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQUCATQCBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEFAgE0AgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABAIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAxAAAAAEBAAAABQIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABoEAAAABBggAAAAAAQABA////wIGbQAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMdAAAAAAMAAAAFBAAAAAAGBAwAAAAEBgMAAAABAQUDAQEASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAxAAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABoEAAAABBggAAAAAAQABA////wIGbQAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEFAwEBAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAWBwAAAQQAAAA2ADcAAhgAAABHAHIAaQBkACAAVABhAGIAbABlACAAMwAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHlAAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABm8AAAADIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEPAgGVAwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBDwIBlQMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CAZUDAQEPAAAAABAGAAAAAgYAAAAAEf0FAAAAhgAAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEPAgE0AgYAAAAAAIYAAAABAQAAAAECKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBDwIBNAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAALsAAAABAQAAAAQCCAAAAAEBAQkDQEBAAxUAAAABBgAAAAAFAQAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ1AAAAAQYFAAAAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAALsAAAABAQAAAAUCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ4AAAAAQYIAAAAAAEAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAALgAAAABAQAAAAYCCAAAAAEBAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ1AAAAAQYFAAAAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAALsAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ4AAAAAQYIAAAAAAEAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAALAcAAAEEAAAANgA4AAIuAAAARwByAGkAZAAgAFQAYQBiAGwAZQAgADMAIAAtACAAQQBjAGMAZQBuAHQAIAAxAAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAeUAAAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAGbwAAAAMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQACAeoDAQEEIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEAAgHqAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAAIB6gMBAQ8AAAAAEAYAAAACBgAAAAAR/QUAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQACATQCBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEAAgE0AgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAuwAAAAEBAAAABAIIAAAAAQEBCQNAQEADFQAAAAEGAAAAAAUBAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABnUAAAABBgUAAAABA////wIGZAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAuwAAAAEBAAAABQIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABngAAAABBggAAAAAAQABA////wIGZAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAuAAAAAEBAAAABgIIAAAAAQEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABnUAAAABBgUAAAABA////wIGZAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAuwAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABngAAAABBggAAAAAAQABA////wIGZAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAsBwAAAQQAAAA2ADkAAi4AAABHAHIAaQBkACAAVABhAGIAbABlACAAMwAgAC0AIABBAGMAYwBlAG4AdAAgADIACQEAAAAEAwYAAAA1ADkAOQALBAAAAGMAAAAFAAAAAAYhAAAAAQYAAAAACQYPAAAAJwTwAAAACwEBKQQAAAAAGwYAAAAAB5QAAAAPBAAAAAEAAAAQBAAAAAEAAAATBAAAAAAAAAAFAAAAAAZvAAAAAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBlwMBAQQgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAZcDAQEFIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgGXAwEBDwAAAAAQBgAAAAIGAAAAABH9BQAAAIYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBAQIBMgIGAAAAAACGAAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQECATICBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAC7AAAAAQEAAAAEAggAAAABAQEJA0BAQAMVAAAAAQYAAAAABQEACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGdQAAAAEGBQAAAAED////AgZkAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAC7AAAAAQEAAAAFAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGeAAAAAEGCAAAAAABAAED////AgZkAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAC4AAAAAQEAAAAGAggAAAABAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGdQAAAAEGBQAAAAED////AgZkAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAC7AAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGeAAAAAEGCAAAAAABAAED////AgZkAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAACwHAAABBAAAADcAMAACLgAAAEcAcgBpAGQAIABUAGEAYgBsAGUAIAAzACAALQAgAEEAYwBjAGUAbgB0ACAAMwAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHlAAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABm8AAAADIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgH+AwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIB/gMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAf4DAQEPAAAAABAGAAAAAgYAAAAAEf0FAAAAhgAAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQECAgE0AgYAAAAAAIYAAAABAQAAAAECKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBAgIBNAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAALsAAAABAQAAAAQCCAAAAAEBAQkDQEBAAxUAAAABBgAAAAAFAQAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ1AAAAAQYFAAAAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAALsAAAABAQAAAAUCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ4AAAAAQYIAAAAAAEAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAALgAAAABAQAAAAYCCAAAAAEBAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ1AAAAAQYFAAAAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAALsAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ4AAAAAQYIAAAAAAEAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAALAcAAAEEAAAANwAxAAIuAAAARwByAGkAZAAgAFQAYQBiAGwAZQAgADMAIAAtACAAQQBjAGMAZQBuAHQAIAA0AAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAeUAAAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAGbwAAAAMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAZoDAQEEIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgGaAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBmgMBAQ8AAAAAEAYAAAACBgAAAAAR/QUAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQMCATQCBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEDAgE0AgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAuwAAAAEBAAAABAIIAAAAAQEBCQNAQEADFQAAAAEGAAAAAAUBAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABnUAAAABBgUAAAABA////wIGZAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAuwAAAAEBAAAABQIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABngAAAABBggAAAAAAQABA////wIGZAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAuAAAAAEBAAAABgIIAAAAAQEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABnUAAAABBgUAAAABA////wIGZAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAuwAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABngAAAABBggAAAAAAQABA////wIGZAAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAjBwAAAQQAAAA3ADIAAi4AAABHAHIAaQBkACAAVABhAGIAbABlACAAMwAgAC0AIABBAGMAYwBlAG4AdAAgADUACQEAAAAEAwYAAAA1ADkAOQALBAAAAGMAAAAFAAAAAAYhAAAAAQYAAAAACQYPAAAAJwTwAAAACwEBKQQAAAAAGwYAAAAAB4sAAAAPBAAAAAEAAAAQBAAAAAEAAAATBAAAAAAAAAAFAAAAAAZmAAAAAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBAMBAQQdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQQDAQEFHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEEAwEBDwAAAAAQBgAAAAIGAAAAABH9BQAAAIYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBBAIBNAIGAAAAAACGAAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQQCATQCBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAC7AAAAAQEAAAAEAggAAAABAQEJA0BAQAMVAAAAAQYAAAAABQEACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGdQAAAAEGBQAAAAED////AgZkAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAC7AAAAAQEAAAAFAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGeAAAAAEGCAAAAAABAAED////AgZkAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAC4AAAAAQEAAAAGAggAAAABAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGdQAAAAEGBQAAAAED////AgZkAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAC7AAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGeAAAAAEGCAAAAAABAAED////AgZkAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAACMHAAABBAAAADcAMwACLgAAAEcAcgBpAGQAIABUAGEAYgBsAGUAIAAzACAALQAgAEEAYwBjAGUAbgB0ACAANgAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHiwAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABmYAAAADHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEFAwEBBB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBQMBAQUdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQUDAQEPAAAAABAGAAAAAgYAAAAAEf0FAAAAhgAAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEFAgE0AgYAAAAAAIYAAAABAQAAAAECKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBBQIBNAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAALsAAAABAQAAAAQCCAAAAAEBAQkDQEBAAxUAAAABBgAAAAAFAQAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ1AAAAAQYFAAAAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAALsAAAABAQAAAAUCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ4AAAAAQYIAAAAAAEAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAALgAAAABAQAAAAYCCAAAAAEBAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ1AAAAAQYFAAAAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAALsAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZ4AAAAAQYIAAAAAAEAAQP///8CBmQAAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAApwYAAAEEAAAANwA0AAIYAAAARwByAGkAZAAgAFQAYQBiAGwAZQAgADQACQEAAAAEAwYAAAA1ADkAOQALBAAAADsAAAAFAAAAAAYhAAAAAQYAAAAACQYPAAAAJwTwAAAACwEBKQQAAAAAGwYAAAAABwMBAAAPBAAAAAEAAAAQBAAAAAEAAAATBAAAAAAAAAAFAAAAAAbeAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBDwIBkAMBAQEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CAZADAQECIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEPAgGQAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBDwIBkAMBAQQgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CAZADAQEFIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEPAgGQAwEBDwAAAAAQBgAAAAIGAAAAABEfBQAAAIYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBDwIBNAIGAAAAAACGAAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQ8CATQCBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAOAQAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAalAAAAAQYRAAAAAAEAAQP///8CBgMAAAABAQ8CBogAAAAAHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEPAwEBAR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDwMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQ8DAQEDHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEPAwEBAEkAAAABAQAAAAYCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAGsAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYoAAAAAgYiAAAAAR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDwMBAQBBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkG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AAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEBAgEyAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABAIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAHQEAAAEBAAAABQIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////wMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGtAAAAAEGFAAAAAABAAED////AgYGAAAAAQEBAgGXAgaUAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBlwMBAQEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAZcDAQECIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgGXAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBlwMBAQBJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABuAAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGKwAAAAIGJQAAAAEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAZcDAQEAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAA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AAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAQCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAB0BAAABAQAAAAUCLgAAAAABAQQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQP///8DEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABrQAAAABBhQAAAAAAQABA////wIGBgAAAAEBAwIBmgIGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAZoDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgGaAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBmgMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAZoDAQEASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbgAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABisAAAACBiUAAAABIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgGaAwEBAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAvQYAAAEEAAAANwA5AAIuAAAARwByAGkAZAAgAFQAYQBiAGwAZQAgADQAIAAtACAAQQBjAGMAZQBuAHQAIAA1AAkBAAAABAMGAAAANQA5ADkACwQAAAA7AAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAcDAQAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAG3gAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAZADAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEEAgGQAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBkAMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAZADAQEEIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEEAgGQAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBkAMBAQ8AAAAAEAYAAAACBgAAAAARHwUAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQQCATQCBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEEAgE0AgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABAIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAADgEAAAEBAAAABQIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////wMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGpQAAAAEGEQAAAAABAAED////AgYDAAAAAQEEAgaIAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBAMBAQEdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQQDAQECHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEEAwEBAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBAMBAQBJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABrAAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGKAAAAAIGIgAAAAEdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQQDAQEAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAC9BgAAAQQAAAA4ADAAAi4AAABHAHIAaQBkACAAVABhAGIAbABlACAANAAgAC0AIABBAGMAYwBlAG4AdAAgADYACQEAAAAEAwYAAAA1ADkAOQALBAAAADsAAAAFAAAAAAYhAAAAAQYAAAAACQYPAAAAJwTwAAAACwEBKQQAAAAAGwYAAAAABwMBAAAPBAAAAAEAAAAQBAAAAAEAAAATBAAAAAAAAAAFAAAAAAbeAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBkAMBAQEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAZADAQECIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgGQAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBkAMBAQQgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAZADAQEFIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgGQAwEBDwAAAAAQBgAAAAIGAAAAABEfBQAAAIYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBBQIBNAIGAAAAAACGAAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQUCATQCBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAOAQAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAalAAAAAQYRAAAAAAEAAQP///8CBgMAAAABAQUCBogAAAAAHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEFAwEBAR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBQMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQUDAQEDHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEFAwEBAEkAAAABAQAAAAYCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAGsAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYoAAAAAgYiAAAAAR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBQMBAQBBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAJEGAAABBAAAADgAMQACIgAAAEcAcgBpAGQA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AAYEBAAAAAQGAwAAAAEBDAMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEDHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBBB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQUdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEHFAAAAAABAAED////AgYGAAAAAQEBAgEyDwAAAAAQBgAAAAIGAAAAABH4BAAAAFsAAAABAQAAAAACAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEBAgF1AgYAAAAAAFsAAAABAQAAAAECAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEBAgF1AgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAhgAAAAEBAAAABAIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////wMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGHQAAAAEGEQAAAAABAAED////AgYDAAAAAQEBAgYAAAAAAIYAAAABAQAAAAUCLgAAAAABAQQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQP///8DEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABh0AAAABBhEAAAAAAQABA////wIGAwAAAAEBAQIGAAAAAACGAAAAAQEAAAAGAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAA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AAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAWAAAAAEBAAAABAIXAAAAAAEBCQM2ZKkcBgkAAAABAQACAYADAZUDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAfQAAAAEBAAAABQIXAAAAAAEBCQM2ZKkcBgkAAAABAQACAYADAZUDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABisAAAACBiUAAAADIAAAAAADAAAABQQAAAAABgQMAAAABAYGAAAAAQEAAgGAAwEBAFgAAAABAQAAAAYCFwAAAAABAQkDNmSpHAYJAAAAAQEAAgGAAwGVAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAFgAAAABAQAAAAcCFwAAAAABAQkDNmSpHAYJAAAAAQEAAgGAAwGVAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAB7AAAAAQEAAAAMAjoAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAHAYJAAAAAQEAAgGAAwGVAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAKEGAAABBAAAADkAMAAC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AAABAAAAEwQAAAAAAAAABQAAAAAGAAAAAA8AAAAAEAYAAAACBgAAAAARvAQAAABbAAAAAQEAAAAAAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBDwIBQAIGAAAAAABbAAAAAQEAAAABAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBDwIBQAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAQCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAALYAAAABAQAAAAUCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZzAAAAAgZtAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDwMBAQBJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAC2AAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGcwAAAAIGbQAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEPAwEBAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACKBQAAAQYAAAAxADAAMwACOgAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAAxACAATABpAGcAaAB0ACAALQAgAEEAYwBjAGUAbgB0ACAAMQAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHJQAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABgAAAAAPAAAAABAGAAAAAgYAAAAAEbwEAAAAWwAAAAEBAAAAAAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQACAUACBgAAAAAAWwAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQACAUACBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAC2AAAAAQEAAAAFAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGcwAAAAIGbQAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQADAQEASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAtgAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABnMAAAACBm0AAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBAAMBAQIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAigUAAAEGAAAAMQAwADQAAjoA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QAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAQCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAALYAAAABAQAAAAUCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZzAAAAAgZtAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBAgMBAQBJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAC2AAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGcwAAAAIGbQAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQECAwEBAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIA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BAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEEAgFAAgYAAAAAAFsAAAABAQAAAAECAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEEAgFAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABAIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAtgAAAAEBAAAABQIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABnMAAAACBm0AAAAAFAAAAAADAAAABQQAAAAABgQEAAAAAwEAARQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAIUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQADHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEEAwEBAEkAAAABAQAAAAYCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAALYAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZzAAAAAgZtAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQQDAQECFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAxQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAIoFAAABBgAAADEAMAA4AAI6AAAATABpAHMAdAAgAFQAYQBiAGwAZQAgADEAIABMAGkAZwBoAHQAIAAtACAAQQBjAGMAZQBuAHQAIAA2AAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAclAAAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAGAAAAAA8AAAAAEAYAAAACBgAAAAARvAQAAABbAAAAAQEAAAAAAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBBQIBQAIGAAAAAABbAAAAAQEAAAABAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBBQIBQAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAQCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAALYAAAABAQAAAAUCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZzAAAAAgZtAAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQACFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBBQMBAQBJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAC2AAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGcwAAAAIGbQAAAAAUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQABHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEFAwEBAhQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAMUAAAAAAMAAAAFBAAAAAAGBAQAAAADAQAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADjBgAAAQYAAAAxADAAOQACGAAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAAyAAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAeUAAAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAGbwAAAAEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CAZADAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEPAgGQAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBDwIBkAMBAQ8AAAAAEAYAAAACBgAAAAARyAUAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQ8CAUACBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEPAgFAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbwAAAAEBAAAABAIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADrAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAaCAAAAAgZ8AAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CAZADAQECFAAA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AAAAEwQAAAAAAAAABQAAAAAGbwAAAAEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAZADAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgGQAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBkAMBAQ8AAAAAEAYAAAACBgAAAAARyAUAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQICAUACBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQECAgFAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbwAAAAEBAAAABAIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADrAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAaCAAAAAgZ8AAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAZADAQECFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAyAAAAAAAwAA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AAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAZADAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgGQAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBkAMBAQ8AAAAAEAYAAAACBgAAAAARyAUAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQUCAUACBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEFAgFAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbwAAAAEBAAAABAIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADrAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAaCAAAAAgZ8AAAAABQAAAAAAwAAAAUEAAAAAAYEBAAAAAMBAAEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAZADAQECFAAAAAADAAAABQQAAAAABgQEAAAAAwEAAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBkAMBAQBv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BQQAAAAABgQEAAAABAYDAAAAAQEAAwEBAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBAAMBAQCwAAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZKAAAAAgZEAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBAAMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQADAQEAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACGAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYdAAAAAQYRAAAAAAEAAQP///8CBgMAAAABAQACBgAAAAAASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAuBgAAAQYAAAAxADEAOAACLgAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAAzACAALQAgAEEAYwBjAGUAbgB0ACAAMgAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHuQAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABpQAAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgGXAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBlwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAZcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgGXAwEBDwAAAAAQBgAAAAIGAAAAABHYBAAAALYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABlAAAAACBkoAAAABIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgGXAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBlwMBAQC2AAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZQAAAAAgZKAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBlwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAZcDAQEAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACJAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQECAZcCBgAAAAAASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAuBgAAAQYAAAAxADEAOQACLgAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAAzACAALQAgAEEAYwBjAGUAbgB0ACAAMwAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHuQAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABpQAAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgGYAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBmAMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAZgDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgGYAwEBDwAAAAAQBgAAAAIGAAAAABHYBAAAALYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABlAAAAACBkoAAAABIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgGYAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBmAMBAQC2AAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZQAAAAAgZKAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBmAMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAZgDAQEAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACJAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQICAZgCBgAAAAAASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAuBgAAAQYAAAAxADIAMAACLgAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAAzACAALQAgAEEAYwBjAGUAbgB0ACAANAAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHuQAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABpQAAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgGaAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBmgMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAZoDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgGaAwEBDwAAAAAQBgAAAAIGAAAAABHYBAAAALYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABlAAAAACBkoAAAABIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgGaAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBmgMBAQC2AAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZQAAAAAgZKAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBmgMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAZoDAQEAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACJAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQMCAZoCBgAAAAAASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAuBgAAAQYAAAAxADIAMQACLgAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAAzACAALQAgAEEAYwBjAGUAbgB0ACAANQAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHuQAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABpQAAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEEAgGaAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBmgMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAZoDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEEAgGaAwEBDwAAAAAQBgAAAAIGAAAAABHYBAAAALYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABlAAAAACBkoAAAABIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEEAgGaAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBmgMBAQC2AAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZQAAAAAgZKAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBmgMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAZoDAQEAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACJAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQQCAZoCBgAAAAAASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAuBgAAAQYAAAAxADIAMgACLgAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAAzACAALQAgAEEAYwBjAGUAbgB0ACAANgAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHuQAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABpQAAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgGYAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBmAMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAZgDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgGYAwEBDwAAAAAQBgAAAAIGAAAAABHYBAAAALYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABlAAAAACBkoAAAABIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgGYAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBmAMBAQC2AAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZQAAAAAgZKAAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBmAMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAZgDAQEAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACJAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQUCAZgCBgAAAAAASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADLBQAAAQYAAAAxADIAMwACGAAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAA0AAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAfPAAAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAGqgAAAAAdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQ8DAQEBHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEPAwEBAh0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDwMBAQMdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQ8DAQEFHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEPAwEBDwAAAAAQBgAAAAIGAAAAABF1BAAAAIYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBDwIBQAIGAAAAAACGAAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQ8CAUACBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACGAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYdAAAAAQYRAAAAAAEAAQP///8CBgMAAAABAQ8CBgAAAAAASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADwBQAAAQYAAAAxADIANAACLgAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAA0ACAALQAgAEEAYwBjAGUAbgB0ACAAMQAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAH3gAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABrkAAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEAAgGQAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAAIBkAMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQACAZADAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEAAgGQAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAAIBkAMBAQ8AAAAAEAYAAAACBgAAAAARdQQAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQACAUACBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEAAgFAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABAIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAhgAAAAEBAAAABQIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////wMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGHQAAAAEGEQAAAAABAAED////AgYDAAAAAQEAAgYAAAAAAEkAAAABAQAAAAYCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAA8AUAAAEGAAAAMQAyADUAAi4AAABMAGkAcwB0ACAAVABhAGIAbABlACAANAAgAC0AIABBAGMAYwBlAG4AdAAgADIACQEAAAAEAwYAAAA1ADkAOQALBAAAAGMAAAAFAAAAAAYhAAAAAQYAAAAACQYPAAAAJwTwAAAACwEBKQQAAAAAGwYAAAAAB94AAAAPBAAAAAEAAAAQBAAAAAEAAAATBAAAAAAAAAAFAAAAAAa5AAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBkAMBAQEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAZADAQECIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgGQAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBkAMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAZADAQEPAAAAABAGAAAAAgYAAAAAEXUEAAAAhgAAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEBAgFAAgYAAAAAAIYAAAABAQAAAAECKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBAQIBQAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAQCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAIYAAAABAQAAAAUCLgAAAAABAQQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQP///8DEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABh0AAAABBhEAAAAAAQABA////wIGAwAAAAEBAQIGAAAAAABJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAPAFAAABBgAAADEAMgA2AAIuAAAATABpAHMAdAAgAFQAYQBiAGwAZQAgADQAIAAtACAAQQBjAGMAZQBuAHQAIAAzAAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAfeAAAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAGuQAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAZADAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgGQAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBkAMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAZADAQEFIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgGQAwEBDwAAAAAQBgAAAAIGAAAAABF1BAAAAIYAAAABAQAAAAACKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBAgIBQAIGAAAAAACGAAAAAQEAAAABAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQICAUACBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAEAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACGAAAAAQEAAAAFAi4AAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////AxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYdAAAAAQYRAAAAAAEAAQP///8CBgMAAAABAQICBgAAAAAASQAAAAEBAAAABgIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABwIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAADwBQAAAQYAAAAxADIANwACLgAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAA0ACAALQAgAEEAYwBjAGUAbgB0ACAANAAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAH3gAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABrkAAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgGQAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBkAMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAZADAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgGQAwEBBSAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBkAMBAQ8AAAAAEAYAAAACBgAAAAARdQQAAACGAAAAAQEAAAAAAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQMCAUACBgAAAAAAhgAAAAEBAAAAAQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEDAgFAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAASQAAAAEBAAAABAIIAAAAAAEBCQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAhgAAAAEBAAAABQIuAAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////wMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGHQAAAAEGEQAAAAABAAED////AgYDAAAAAQEDAgYAAAAAAEkAAAABAQAAAAYCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAcCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAMAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAA8AUAAAEGAAAAMQAyADgAAi4AAABMAGkAcwB0ACAAVABhAGIAbABlACAANAAgAC0AIABBAGMAYwBlAG4AdAAgADUACQEAAAAEAwYAAAA1ADkAOQALBAAAAGMAAAAFAAAAAAYhAAAAAQYAAAAACQYPAAAAJwTwAAAACwEBKQQAAAAAGwYAAAAAB94AAAAPBAAAAAEAAAAQBAAAAAEAAAATBAAAAAAAAAAFAAAAAAa5AAAAACAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBkAMBAQEgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAZADAQECIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEEAgGQAwEBAyAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBkAMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAZADAQEPAAAAABAGAAAAAgYAAAAAEXUEAAAAhgAAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEEAgFAAgYAAAAAAIYAAAABAQAAAAECKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBBAIBQAIGAAAAAABBAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEkAAAABAQAAAAQCCAAAAAABAQkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAIYAAAABAQAAAAUCLgAAAAABAQQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQP///8DEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABh0AAAABBhEAAAAAAQABA////wIGAwAAAAEBBAIGAAAAAABJAAAAAQEAAAAGAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABJAAAAAQEAAAAHAggAAAAAAQEJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAG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0gAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABpQAAAAAIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQEPAgGAAwEBASAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBDwIBgAMBAQIgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQ8CAYADAQEDIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQEPAgGAAwEBBxQAAAAAAQABA////wIGBgAAAAEBDwIBgA8AAAAAEAYAAAACBgAAAAARtAYAAACfAAAAAQEAAAAAAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABmQAAAABBhQAAAAAAQABA////wIGBgAAAAEBDwIBgAIGRAAAAAEdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEDHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAJ8AAAABAQAAAAECAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGZAAAAAEGFAAAAAABAAED////AgYGAAAAAQEPAgGAAgZEAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEAnwAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZkAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQ8CAYACBkQAAAABHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQCFAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABkoAAAACBkQAAAAAHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAh0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQC/AAAAAQEAAAAEAjcAAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////HAYDAAAAAQEMAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZNAAAAAgZHAAAAACAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBDwIBgAMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEA2QAAAAEBAAAABQI3AAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////xwGAwAAAAEBDAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGZwAAAAEGFAAAAAABAAED////AgYGAAAAAQEPAgGAAgZHAAAAASAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBDwIBgAMBAQMdAAAAAAMAAAAFBAAAAAAGBAwAAAAEBgMAAAABAQwDAQEAiAAAAAEBAAAABgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZNAAAAAgZHAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQIgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQ8CAYADAQEAeAAAAAEBAAAABwI3AAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////xwGAwAAAAEBDAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQK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IAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQECAgGYAwEBASAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBAgIBmAMBAQIgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQICAZgDAQEDIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQECAgGYAwEBBxQAAAAAAQABA////wIGBgAAAAEBAgIBmA8AAAAAEAYAAAACBgAAAAARtAYAAACfAAAAAQEAAAAAAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABmQAAAABBhQAAAAAAQABA////wIGBgAAAAEBAgIBmAIGRAAAAAEdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEDHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAJ8AAAABAQAAAAECAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGZAAAAAEGFAAAAAABAAED////AgYGAAAAAQECAgGYAgZEAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEAnwAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZkAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQICAZgCBkQAAAABHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQCFAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABkoAAAACBkQAAAAAHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAh0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQC/AAAAAQEAAAAEAjcAAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////HAYDAAAAAQEMAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZNAAAAAgZHAAAAACAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBAgIBmAMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEA2QAAAAEBAAAABQI3AAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////xwGAwAAAAEBDAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGZwAAAAEGFAAAAAABAAED////AgYGAAAAAQECAgGYAgZHAAAAASAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBAgIBmAMBAQMdAAAAAAMAAAAFBAAAAAAGBAwAAAAEBgMAAAABAQwDAQEAiAAAAAEBAAAABgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZNAAAAAgZHAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQIgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQICAZgDAQEAeAAAAAEBAAAABwI3AAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////xwGAwAAAAEBDAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAdQAAAAEBAAAADAI0AAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////xwGAwAAAAEBDAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAAtCAAAAQYAAAAxADMANAACOAAAAEwAaQBzAHQAIABUAGEAYgBsAGUAIAA1ACAARABhAHIAawAgAC0AIABBAGMAYwBlAG4AdAAgADQACQEAAAAEAwYAAAA1ADkAOQALBAAAAGMAAAAFAAAAAAYhAAAAAQYAAAAACQYPAAAAJwTwAAAACwEBKQQAAAAAGwYAAAAAB9IAAAAPBAAAAAEAAAAQBAAAAAEAAAATBAAAAAAAAAAFAAAAAAaUAAAAACAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBAwIBmgMBAQEgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQMCAZoDAQECIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQEDAgGaAwEBAyAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBAwIBmgMBAQcUAAAAAAEAAQP///8CBgYAAAABAQMCAZoPAAAAABAGAAAAAgYAAAAAEbQGAAAAnwAAAAEBAAAAAAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZkAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQMCAZoCBkQAAAABHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQCfAAAAAQEAAAABAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABmQAAAABBhQAAAAAAQABA////wIGBgAAAAEBAwIBmgIGRAAAAAAdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQECHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAJ8AAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGZAAAAAEGFAAAAAABAAED////AgYGAAAAAQEDAgGaAgZEAAAAAR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQMdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEAhQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZKAAAAAgZEAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEAvwAAAAEBAAAABAI3AAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////xwGAwAAAAEBDAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGTQAAAAIGRwAAAAAgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQMCAZoDAQECHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBANkAAAABAQAAAAUCNwAAAAABAQQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQP///8cBgMAAAABAQwDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABmcAAAABBhQAAAAAAQABA////wIGBgAAAAEBAwIBmgIGRwAAAAEgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQMCAZoDAQEDHQAAAAADAAAABQQAAAAABgQMAAAABAYDAAAAAQEMAwEBAIgAAAABAQAAAAYCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGTQAAAAIGRwAAAAAdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQECIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQEDAgGaAwEBAHgAAAABAQAAAAcCNwAAAAABAQQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQP///8cBgMAAAABAQwDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAHUAAAABAQAAAAwCNAAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQP///8cBgMAAAABAQwDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAALQgAAAEGAAAAMQAzADUAAjgAAABMAGkAcwB0ACAAVABhAGIAbABlACAANQAgAEQAYQByAGsAIAAtACAAQQBjAGMAZQBuAHQAIAA1AAkBAAAABAMGAAAANQA5ADkACwQAAABjAAAABQAAAAAGIQAAAAEGAAAAAAkGDwAAACcE8AAAAAsBASkEAAAAABsGAAAAAAfSAAAADwQAAAABAAAAEAQAAAABAAAAEwQAAAAAAAAABQAAAAAGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQQCAZoDAQEBIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQEEAgGaAwEBAiAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBBAIBmgMBAQMgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQQCAZoDAQEHFAAAAAABAAED////AgYGAAAAAQEEAgGaDwAAAAAQBgAAAAIGAAAAABG0BgAAAJ8AAAABAQAAAAACAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGZAAAAAEGFAAAAAABAAED////AgYGAAAAAQEEAgGaAgZEAAAAAR0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQMdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEAnwAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZkAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQQCAZoCBkQAAAAAHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAh0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQCfAAAAAQEAAAACAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABmQAAAABBhQAAAAAAQABA////wIGBgAAAAEBBAIBmgIGRAAAAAEdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEDHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAIUAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGSgAAAAIGRAAAAAAdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQECHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAL8AAAABAQAAAAQCNwAAAAABAQQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQP///8cBgMAAAABAQwDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABk0AAAACBkcAAAAAIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQEEAgGaAwEBAh0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQDZAAAAAQEAAAAFAjcAAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////HAYDAAAAAQEMAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZnAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQQCAZoCBkcAAAABIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQEEAgGaAwEBAx0AAAAAAwAAAAUEAAAAAAYEDAAAAAQGAwAAAAEBDAMBAQCIAAAAAQEAAAAGAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABk0AAAACBkcAAAAAHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAiAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBBAIBmgMBAQB4AAAAAQEAAAAHAjcAAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////HAYDAAAAAQEMAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAkCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAIAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAoCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAB1AAAAAQEAAAAMAjQAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////HAYDAAAAAQEMAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAC0IAAABBgAAADEAMwA2AAI4AAAATABpAHMAdAAgAFQAYQBiAGwAZQAgADUAIABEAGEAcgBrACAALQAgAEEAYwBjAGUAbgB0ACAANgAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAH0gAAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABpQAAAAAIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQEFAgGYAwEBASAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBBQIBmAMBAQIgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQUCAZgDAQEDIAAAAAADAAAABQQAAAAABgQgAAAABAYGAAAAAQEFAgGYAwEBBxQAAAAAAQABA////wIGBgAAAAEBBQIBmA8AAAAAEAYAAAACBgAAAAARtAYAAACfAAAAAQEAAAAAAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABmQAAAABBhQAAAAAAQABA////wIGBgAAAAEBBQIBmAIGRAAAAAEdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEDHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAJ8AAAABAQAAAAECAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGZAAAAAEGFAAAAAABAAED////AgYGAAAAAQEFAgGYAgZEAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEAnwAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZkAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQUCAZgCBkQAAAABHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQCFAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABkoAAAACBkQAAAAAHQAAAAADAAAABQQAAAAABgQEAAAABAYDAAAAAQEMAwEBAh0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQC/AAAAAQEAAAAEAjcAAAAAAQEEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD////HAYDAAAAAQEMAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZNAAAAAgZHAAAAACAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBBQIBmAMBAQIdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQwDAQEA2QAAAAEBAAAABQI3AAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////xwGAwAAAAEBDAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGZwAAAAEGFAAAAAABAAED////AgYGAAAAAQEFAgGYAgZHAAAAASAAAAAAAwAAAAUEAAAAAAYEIAAAAAQGBgAAAAEBBQIBmAMBAQMdAAAAAAMAAAAFBAAAAAAGBAwAAAAEBgMAAAABAQwDAQEAiAAAAAEBAAAABgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAZNAAAAAgZHAAAAAB0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBDAMBAQIgAAAAAAMAAAAFBAAAAAAGBCAAAAAEBgYAAAABAQUCAZgDAQEAeAAAAAEBAAAABwI3AAAAAAEBBAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA////xwGAwAAAAEBDAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAdQAAAAEBAAAADAI0AAAABAYK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AwAAAAEBAAMBAQMdAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgMAAAABAQADAQEPAAAAABAGAAAAAgYAAAAAEcQEAAAAkgAAAAEBAAAAAAI3AAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQBwGBgAAAAEBAAMBlQMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEAAgFAAgYAAAAAAFsAAAABAQAAAAECAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEAAgFAAgYAAAAAAHgAAAABAQAAAAICNwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEAcBgYAAAABAQADAZUDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAwIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAFUAAAABAQAAAAQCFAAAAAABAQkDJUN0HAYGAAAAAQEAAwGVAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAHcAAAABAQAAAAUCFAAAAAABAQkDJUN0HAYGAAAAAQEAAwGVAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYoAAAAAgYiAAAAAx0AAAAAAwAAAAUEAAAAAAYEBAAAAAQGAwAAAAEBAAMBAQBVAAAAAQEAAAAGAhQAAAAAAQEJAyVDdBwGBgAAAAEBAAMBlQMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAAB3AAAAAQEAAAAHAhQAAAAAAQEJAyVDdBwGBgAAAAEBAAMBlQMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGKAAAAAIGIgAA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AAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAGwAAAABAQAAAAECKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAhgAAAAEBAAAAAgIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEPAgENAgYAAAAAAIYAAAABAQAAAAMCKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQNAQEADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBDwIBDQIGAAAAAACGAAAAAQEAAAAEAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkD8vLyAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYgAAAAAQYUAAAAAAEAAQP///8CBgYAAAABAQ8CAYACBgAAAAAAhgAAAAEBAAAABQIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA/Ly8gMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGIAAAAAEGFAAAAAABAAED////AgYGAAAAAQEPAgGAAgYAAAAAAIYAAAABAQAAAAYCKwAAAAQGCgAAAEEAcgBpAGEAbAAFBgoAAABBAHIAaQBhAGwACAQWAAAACQPy8vIDEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABiAAAAABBhQAAAAAAQABA////wIGBgAAAAEBDwIBgAIGAAAAAACGAAAAAQEAAAAHAisAAAAEBgoAAABBAHIAaQBhAGwA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BAAAAAQGBgAAAAEBDwIBJgMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CASYDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEPAgEmAwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBDwIBJgMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CASYDAQEPAAAAABAGAAAAAgYAAAAAEWgFAAAAAAEAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGmgAAAAIGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CASYDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEPAgEmAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBDwIBJgMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQ8CASYDAQEAQQAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbAAAAAEBAAAABAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACRAAAAAQEAAAAFAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAAyAAAAAAAwAAAAUEAAAA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ZwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAWcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgFnAwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBZwMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAWcDAQEPAAAAABAGAAAAAgYAAAAAEWgFAAAAAAEAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGmgAAAAIGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAWcDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEBAgFnAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAQIBZwMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQECAWcDAQEAQQAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbAAAAAEBAAAABAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACRAAAAAQEAAAAFAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAAyAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAQIBlwMBAQCRAAAAAQEAAAAGAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAACAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAQIBlwMBAQCRAAAAAQEAAAAHAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAASAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAQIBlwMBAQBBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAAAHAAABBgAAADEANgA4AAImAAAAQgBvAHIAZABlAHIAZQBkACAALQAgAEEAYwBjAGUAbgB0ACAAMwAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHAwEAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABt4AAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgFnAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBZwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAWcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgFnAwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBZwMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAWcDAQEPAAAAABAGAAAAAgYAAAAAEWgFAAAAAAEAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGmgAAAAIGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAWcDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQECAgFnAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAgIBZwMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQICAWcDAQEAQQAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbAAAAAEBAAAABAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACRAAAAAQEAAAAFAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAAyAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAgIBmAMBAQCRAAAAAQEAAAAGAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAACAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAgIBmAMBAQCRAAAAAQEAAAAHAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAASAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAgIBmAMBAQBBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAAAHAAABBgAAADEANgA5AAImAAAAQgBvAHIAZABlAHIAZQBkACAALQAgAEEAYwBjAGUAbgB0ACAANAAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHAwEAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABt4AAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgFnAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBZwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAWcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgFnAwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBZwMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAWcDAQEPAAAAABAGAAAAAgYAAAAAEWgFAAAAAAEAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGmgAAAAIGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAWcDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEDAgFnAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBAwIBZwMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQMCAWcDAQEAQQAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbAAAAAEBAAAABAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACRAAAAAQEAAAAFAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAAyAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAwIBmgMBAQCRAAAAAQEAAAAGAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAACAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAwIBmgMBAQCRAAAAAQEAAAAHAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAASAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBAwIBmgMBAQBBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAAAHAAABBgAAADEANwAwAAImAAAAQgBvAHIAZABlAHIAZQBkACAALQAgAEEAYwBjAGUAbgB0ACAANQAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHAwEAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABt4AAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEEAgFnAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBZwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAWcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEEAgFnAwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBZwMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAWcDAQEPAAAAABAGAAAAAgYAAAAAEWgFAAAAAAEAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGmgAAAAIGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAWcDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEEAgFnAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBAIBZwMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQQCAWcDAQEAQQAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbAAAAAEBAAAABAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACRAAAAAQEAAAAFAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAAyAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBBAIBmgMBAQCRAAAAAQEAAAAGAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAACAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBBAIBmgMBAQCRAAAAAQEAAAAHAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAASAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBBAIBmgMBAQBBAAAAAQEAAAAJAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAsCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAKAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAADAIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAAAHAAABBgAAADEANwAxAAImAAAAQgBvAHIAZABlAHIAZQBkACAALQAgAEEAYwBjAGUAbgB0ACAANgAJAQAAAAQDBgAAADUAOQA5AAsEAAAAYwAAAAUAAAAABiEAAAABBgAAAAAJBg8AAAAnBPAAAAALAQEpBAAAAAAbBgAAAAAHAwEAAA8EAAAAAQAAABAEAAAAAQAAABMEAAAAAAAAAAUAAAAABt4AAAAAIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgFnAwEBASAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBZwMBAQIgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAWcDAQEDIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgFnAwEBBCAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBZwMBAQUgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAWcDAQEPAAAAABAGAAAAAgYAAAAAEWgFAAAAAAEAAAEBAAAAAAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGmgAAAAIGlAAAAAAgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAWcDAQEBIAAAAAADAAAABQQAAAAABgQEAAAABAYGAAAAAQEFAgFnAwEBAiAAAAAAAwAAAAUEAAAAAAYEBAAAAAQGBgAAAAEBBQIBZwMBAQMgAAAAAAMAAAAFBAAAAAAGBAQAAAAEBgYAAAABAQUCAWcDAQEAQQAAAAEBAAAAAQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAICAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAADAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAbAAAAAEBAAAABAIrAAAABAYKAAAAQQByAGkAYQBsAAUGCgAAAEEAcgBpAGEAbAAIBBYAAAAJA0BAQAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAACRAAAAAQEAAAAFAisAAAAEBgoAAABBAHIAaQBhAGwABQYKAAAAQQByAGkAYQBsAAgEFgAAAAkDQEBAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYrAAAAAgYlAAAAAyAAAAAAAwAAAAUEAAAAAAYEDAAAAAQGBgAAAAEBBQIBmAMBAQCRAAAA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AAADAwYAAAA1ADkANwAEBgAAADUAOQA3AAsEAAAAJwAAAA4BAAAAAQUAAAAABioAAAABBhIAAAAkBDcCAAAlBAAAAAAmBAAAAAAJBgYAAAApBDkAAAAbBgAAAAAAeQAAAAEGAAAAMQA4ADIAAgoAAAB0AG8AYwAgADQACQEAAAADAwYAAAA1ADkANwAEBgAAADUAOQA3AAsEAAAAJwAAAA4BAAAAAQUAAAAABioAAAABBhIAAAAkBFIDAAAlBAAAAAAmBAAAAAAJBgYAAAApBDkAAAAbBgAAAAAAeQAAAAEGAAAAMQA4ADMAAgoAAAB0AG8AYwAgADUACQEAAAADAwYAAAA1ADkANwAEBgAAADUAOQA3AAsEAAAAJwAAAA4BAAAAAQUAAAAABioAAAABBhIAAAAkBG4EAAAlBAAAAAAmBAAAAAAJBgYAAAApBDkAAAAbBgAAAAAAeQAAAAEGAAAAMQA4ADQAAgoAAAB0AG8AYwAgADYACQEAAAADAwYAAAA1ADkANwAEBgAAADUAOQA3AAsEAAAAJwAAAA4BAAAAAQUAAAAABioAAAABBhIAAAAkBIkFAAAlBAAAAAAmBAAAAAAJBgYAAAApBDkAAAAbBgAAAAAAeQAAAAEGAAAAMQA4ADUAAgoAAAB0AG8AYwAgADcACQEAAAADAwYAAAA1ADkANwAEBgAAADUAOQA3AAsEAAAAJwAAAA4BAAAAAQUAAAAABioAAAABBhIAAAAkBKUGAAAlBAAAAAAmBAAAAAAJBgYAAAApBDkAAAAbBgAAAAAAeQAAAAEGAAAAMQA4ADYAAgoAAAB0AG8AYwAgADgACQEAAAADAwYAAAA1ADkANwAEBgAAADUAOQA3AAsEAAAAJwAAAA4BAAAAAQUAAAAABioAAAABBhIAAAAkBMAHAAAlBAAAAAAmBAAAAAAJBgYAAAApBDkAAAAbBgAAAAAAeQAAAAEGAAAAMQA4ADcAAgoAAAB0AG8AYwAgADkACQEAAAADAwYAAAA1ADkANwAEBgAAADUAOQA3AAsEAAAAJwAAAA4BAAAAAQUAAAAABioAAAABBhIAAAAkBNwIAAAlBAAAAAAmBAAAAAAJBgYAAAApBDkAAAAbBgAAAAAAVwAAAAEGAAAAMQA4ADgAAhYAAABUAE8AQwAgAEgAZQBhAGQAaQBuAGcACQEAAAADCwQAAAAnAAAADgEAAAABBQAAAAAGEgAAAAEGAAAAAAkGAAAAABsGAAAAAACAAAAAAQYAAAAxADgAOQACIAAAAHQAYQBiAGwAZQAgAG8AZgAgAGYAaQBnAHUAcgBlAHMACQEAAAADAwYAAAA1ADkANwAEBgAAADUAOQA3AAsEAAAAYwAAAA4BAAAAAQUAAAAABhsAAAABBgAAAAAJBgkAAAAdAQApBAAAAAAbBgAAAAAASgAAAAEGAAAANQA5ADcAAgwAAABOAG8AcgBtAGEAbAAJAQAAAAMIAQAAAAEKAQAAAAEFAAAAAAYSAAAAAQYAAAAACQYAAAAAGwYAAAAAAHkAAAABBgAAADUAOQA4AAIsAAAARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBvAG4AdAAJAQAAAAEIAQAAAAELBAAAAAEAAAANAQAAAAEOAQAAAAEFAAAAAAYSAAAAAQYAAAAACQYAAAAAGwYAAAAAAFgEAAABBgAAADUAOQA5AAIYAAAATgBvAHIAbQBhAGwAIABUAGEAYgBsAGUACQEAAAAECAEAAAABCwQAAABjAAAADQEAAAABDgEAAAABBQAAAAAGEgAAAAEGAAAAAAkGAAAAABsGAAAAAAdLAAAAEwQAAAAAAAAABTgAAAAACQAAAAABAQIEbAAAAAEJAAAAAAEBAgQAAAAAAgkAAAAAAQECBGwAAAADCQAAAAABAQIEAAAAAAYAAAAADwAAAAAQBgAAAAIGAAAAABGOAwAAAEEAAAABAQAAAAACAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAABAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAAAgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAMCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAEAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAABQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAYCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAAHAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACQIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAgCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABBAAAAAQEAAAALAgAAAAADEgAAAAEGAAAAAAkGAAAAABsGAAAAAAQKAAAABQAAAAAGAAAAAAUAAAAABgYAAAACBgAAAAAAQQAAAAEBAAAACgIAAAAAAxIAAAABBgAAAAAJBgAAAAAbBgAAAAAECgAAAAUAAAAABgAAAAAFAAAAAAYGAAAAAgYAAAAAAEEAAAABAQAAAAwCAAAAAAMSAAAAAQYAAAAACQYAAAAAGwYAAAAABAoAAAAFAAAAAAYAAAAABQAAAAAGBgAAAAIGAAAAAABbAAAAAQYAAAA2ADAAMAACDgAAAE4AbwAgAEwAaQBzAHQACQEAAAACCAEAAAABCwQAAABjAAAADQEAAAABDgEAAAABBQAAAAAGEgAAAAEGAAAAAAkGAAAAABsGAAAAAMIAAAAAQAAAAAEYAAAAAQYAAAAACQYAAAAAGgYAAAAAGwYAAAAAAh4AAAAFCgAAAAEAAAAACAAAAAAFCgAAAAEAAAAACAAAAAAEeAAAAAAPAAAAAwSCLgAABATGQQAAAgEAASoAAAAGBIkFAAAHBIkFAAAIBIkFAAAJBIkFAAAKBMQCAAALBMQCAAAMBAAAAAACAwAAAAIBAwgeAAAAAAEAAAABAQQAAAABAAAAAgEAAAAAAwQAAADEAgAACgAAAAALAAAAAAAAAAACAQAAAHwA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'; diff --git a/www/common/onlyoffice/ooiframe.js b/www/common/onlyoffice/ooiframe.js index b46ff26de..2530daf58 100644 --- a/www/common/onlyoffice/ooiframe.js +++ b/www/common/onlyoffice/ooiframe.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + // Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/components/nthen/index.js', diff --git a/www/common/onlyoffice/ooslide_base.js b/www/common/onlyoffice/ooslide_base.js index 8a804921b..dd96985c4 100644 --- a/www/common/onlyoffice/ooslide_base.js +++ b/www/common/onlyoffice/ooslide_base.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + define(function () { return function () { From a80e607a56a95562dbfbe78eef027773e4ca1823 Mon Sep 17 00:00:00 2001 From: David Benque Date: Wed, 25 Oct 2023 12:51:10 +0100 Subject: [PATCH 13/73] Correct license for API file --- www/cryptpad-api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/cryptpad-api.js b/www/cryptpad-api.js index ac07b610c..67e232a23 100644 --- a/www/cryptpad-api.js +++ b/www/cryptpad-api.js @@ -1,6 +1,6 @@ // SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors // -// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-License-Identifier: MIT (function () { 'use strict'; From 382230d4e829620715fb84d600ad8653dc643a3a Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Mon, 23 Oct 2023 17:19:17 +0200 Subject: [PATCH 14/73] calendar: Change newEvent behaviour In preparation for #1275: - Change `newEvent` to take an event directly - It would be used to add a new event in the target calendar --- www/calendar/inner.js | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 800045e14..f226138ae 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -95,7 +95,25 @@ define([ cb(null, obj); }); }; - var newEvent = function (data, cb) { + var newEvent = function (event, cb) { + var reminders = APP.notificationsEntries; + + var startDate = event.start._date; + var endDate = event.end._date; + + var data = { + id: Util.uid(), + calendarId: event.calendarId, + title: event.title, + category: "time", + location: event.location, + start: +startDate, + isAllDay: event.isAllDay, + end: +endDate, + reminders: reminders, + recurrenceRule: event.recurrenceRule + }; + APP.module.execCommand('CREATE_EVENT', data, function (obj) { if (obj && obj.error) { return void cb(obj.error); } cb(null, obj); @@ -964,30 +982,13 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v makeLeftside(cal, $(leftside)); cal.on('beforeCreateSchedule', function(event) { - var reminders = APP.notificationsEntries; - - var startDate = event.start._date; - var endDate = event.end._date; - - var schedule = { - id: Util.uid(), - calendarId: event.calendarId, - title: event.title, - category: "time", - location: event.location, - start: +startDate, - isAllDay: event.isAllDay, - end: +endDate, - reminders: reminders, - recurrenceRule: APP.recurrenceRule - }; - - newEvent(schedule, function (err) { + event.recurrenceRule = APP.recurrenceRule; // XXX Not sure about the consistency of data structures + newEvent(event, function (err) { if (err) { console.error(err); return void UI.warn(err); } - cal.createSchedules([schedule]); + //cal.createSchedules([schedule]); XXX Remove these occurrence elsewhere }); }); cal.on('beforeUpdateSchedule', function(event) { From 41be1b39f4ee9e5ca4cd6f12ff4ad568b6917f03 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Mon, 23 Oct 2023 17:23:54 +0200 Subject: [PATCH 15/73] calendar: copy-and-delete when moving an event one time from calendars #1275: Copy a calendar item then remove it. WIP: does not work with the first recurring event (the origin). --- www/calendar/inner.js | 59 ++++++++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index f226138ae..1479a0861 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -1034,6 +1034,7 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v end: raw.end || ev.end, isOrigin: isOrigin }; + var isOneTime = APP.editType == 'one'; if (['one', 'from'].includes(APP.editType)) { if (changes.start) { changes.start = diffDate(raw.start || ev.start, changes.start); @@ -1043,22 +1044,50 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v } } - old.id = id; - updateEvent({ - ev: old, - changes: changes, - rawData: rawData, - type: { - which: APP.editType, - when: raw.start || ev.start + + if (isOneTime && ev.recurrenceRule && changes.calendarId) { + var copyEvent = ev; + copyEvent.recurrenceRule = ""; + copyEvent.calendarId = changes.calendarId; + newEvent(copyEvent, function(err) { + if (err) { + console.error(err); + return void UI.warn(err); + } + }); + + if (!isOrigin) { + deleteEvent(old, function(err) { + if (err) { + console.error(err); + return void UI.warn(err); + } + }); + } else { + // Modifying the first event + // XXX Not implemented yet + console.error("Not implemented"); + return void UI.warn("Not implemented"); } - }, function (err) { - if (err) { - console.error(err); - return void UI.warn(err); - } - //cal.updateSchedule(old.id, old.calendarId, changes); - }); + } else { + old.id = id; + + updateEvent({ + ev: old, + changes: changes, + rawData: rawData, + type: { + which: APP.editType, + when: raw.start || ev.start + } + }, function (err) { + if (err) { + console.error(err); + return void UI.warn(err); + } + //cal.updateSchedule(old.id, old.calendarId, changes); + }); + } }; From b7842cc01b8c188161c0c771e40f5f94f2cb4669 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 24 Oct 2023 15:53:03 +0200 Subject: [PATCH 16/73] Linter compliance --- www/calendar/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 1479a0861..4be51b226 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -1034,7 +1034,7 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v end: raw.end || ev.end, isOrigin: isOrigin }; - var isOneTime = APP.editType == 'one'; + var isOneTime = APP.editType === 'one'; if (['one', 'from'].includes(APP.editType)) { if (changes.start) { changes.start = diffDate(raw.start || ev.start, changes.start); From 918fd3f908697928025ed0a63dc1e3c966c5a3f1 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 24 Oct 2023 15:53:29 +0200 Subject: [PATCH 17/73] calendar: apply changes on the moved event #1275: from previous implementation, the changes were applied to the original recurrent event and not the one in which has been moved --- www/calendar/inner.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 4be51b226..ba20d4dcc 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -1046,9 +1046,13 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v if (isOneTime && ev.recurrenceRule && changes.calendarId) { + // Copy the event with applied changes var copyEvent = ev; + for (let key in changes) { + copyEvent[key] = changes[key]; + } copyEvent.recurrenceRule = ""; - copyEvent.calendarId = changes.calendarId; + newEvent(copyEvent, function(err) { if (err) { console.error(err); @@ -1057,6 +1061,8 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v }); if (!isOrigin) { + // If it's not the first event, then simply remove the + // original occurrence deleteEvent(old, function(err) { if (err) { console.error(err); From 39371deb4d70a5ffa81a2b7d7cf76f58368d5282 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 24 Oct 2023 15:55:57 +0200 Subject: [PATCH 18/73] Moving the original event #1275: handle simple cases when moving the first element of a recurring event to a new calendar. --- www/calendar/inner.js | 22 ++++++++++++++++++---- www/calendar/recurrence.js | 8 ++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index ba20d4dcc..5f661a72b 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -1070,10 +1070,24 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v } }); } else { - // Modifying the first event - // XXX Not implemented yet - console.error("Not implemented"); - return void UI.warn("Not implemented"); + var nextEvent = Rec.getSecondOccurrence(old); + changes = {}; // Changes have already been applied to the clone + changes.start = nextEvent.start; + changes.end = nextEvent.end; + delete changes.calendarId; + + updateEvent({ + ev: old, + changes: changes, + type: { + which: 'all' + } + }, function(err) { + if (err) { + console.error(err); + return void UI.warn(err); + } + }); } } else { old.id = id; diff --git a/www/calendar/recurrence.js b/www/calendar/recurrence.js index bd3fa0519..bbcb4ad75 100644 --- a/www/calendar/recurrence.js +++ b/www/calendar/recurrence.js @@ -773,6 +773,14 @@ define([ return all; }; + Rec.getSecondOccurrence = function (ev) { + if (!ev.recurrenceRule) { return null; } + var d = new Date(ev.start); + d.setDate(15); // Make sure we won't skip a month if the event starts on day > 28 + var secondOccurrence = Rec.getRecurring([Rec.getMonthId(d)], [ev]); + + return secondOccurrence[0]; + }; Rec.diffDate = function (oldTime, newTime) { var n = new Date(newTime); From ec6e1a030f0303ed566624e2bb1dc561b36c42f8 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 24 Oct 2023 18:13:56 +0200 Subject: [PATCH 19/73] calendar: confirmation dialog changes in case of changing calendar for recurring events MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1275: given the current implementation of recurring event, it is not possible to move a group of events from a calendar to another. - Disabling « Future event » if the user tries to move a recurring event from a calendar to another. - Show a warning upon moving the first event to another calendar explaining why the user can only move the all events. - Add a translation key for the above. --- www/calendar/inner.js | 44 ++++++++++++++++++++++---------------- www/calendar/recurrence.js | 8 ------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 5f661a72b..eed8f2e57 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -54,6 +54,7 @@ define([ Share, Access, Properties ) { + Messages.calendar_rec_change_first = "You moved the first recurring event to different calendar. You can only apply this change to all repeated events."; // XXX New translation key var SaveAs = window.saveAs; var APP = window.APP = { calendars: {} @@ -1070,24 +1071,9 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v } }); } else { - var nextEvent = Rec.getSecondOccurrence(old); - changes = {}; // Changes have already been applied to the clone - changes.start = nextEvent.start; - changes.end = nextEvent.end; - delete changes.calendarId; - - updateEvent({ - ev: old, - changes: changes, - type: { - which: 'all' - } - }, function(err) { - if (err) { - console.error(err); - return void UI.warn(err); - } - }); + // You can only edit all events in the origin case + console.error(Messages.error); + return void UI.warn(Messages.error); } } else { old.id = id; @@ -1117,6 +1103,15 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v var list = ['one','from','all']; if (isOrigin) { list = ['one', 'all']; } + if (changes.calendarId) { + if (isOrigin) { + // Changing calendar on Origin can only be done for all + list = ['all']; + } else { + // Otherwise cannot apply it to the future event + list = ['one', 'all']; + } + } if ((changes.start || changes.end) && !isOrigin) { list = list.filter(function (item) { return item !== "all"; @@ -1176,6 +1171,19 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v return $warn.text(Messages.calendar_rec_warn_update); }; recurrenceWarn(); + var changeCalendarWarn = function() { + if (changes.calendarId && evOrig.recurrenceRule && isOrigin) { + // Don't change only the first event of a recurring event + $warn.show(); + $p.hide(); + console.log($radio.find('input[id="cp.calendar-rec-edit-one"]')); + $radio.find('input[id="cp-calendar-rec-edit-one"]').disabled = true; + return $warn.text(Messages.calendar_rec_change_first); + } else { + return null; + } + }; + changeCalendarWarn(); $radio.find('input[type="radio"]').on('change', recurrenceWarn); }); cal.on('beforeDeleteSchedule', function(event) { diff --git a/www/calendar/recurrence.js b/www/calendar/recurrence.js index bbcb4ad75..bd3fa0519 100644 --- a/www/calendar/recurrence.js +++ b/www/calendar/recurrence.js @@ -773,14 +773,6 @@ define([ return all; }; - Rec.getSecondOccurrence = function (ev) { - if (!ev.recurrenceRule) { return null; } - var d = new Date(ev.start); - d.setDate(15); // Make sure we won't skip a month if the event starts on day > 28 - var secondOccurrence = Rec.getRecurring([Rec.getMonthId(d)], [ev]); - - return secondOccurrence[0]; - }; Rec.diffDate = function (oldTime, newTime) { var n = new Date(newTime); From 76101cc74c365dad74ed7f5dec22220b80ce3da0 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 24 Oct 2023 18:24:45 +0200 Subject: [PATCH 20/73] calendar: Use variables instead of inline test for readability WIP for #1275 --- www/calendar/inner.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index eed8f2e57..fdb1a7788 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -1008,6 +1008,7 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v var isOrigin = id === old.id; var wasRecurrent = Boolean(originalEvent.recurrenceRule); + var moveCalendar = Boolean(changes.calendarId); if (event.calendar) { // Don't update reminders and recurrence with drag&drop event var oldReminders = ev.raw.reminders || originalEvent.reminders; @@ -1046,7 +1047,7 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v } - if (isOneTime && ev.recurrenceRule && changes.calendarId) { + if (isOneTime && wasRecurrent && moveCalendar) { // Copy the event with applied changes var copyEvent = ev; for (let key in changes) { @@ -1103,7 +1104,7 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v var list = ['one','from','all']; if (isOrigin) { list = ['one', 'all']; } - if (changes.calendarId) { + if (moveCalendar) { if (isOrigin) { // Changing calendar on Origin can only be done for all list = ['all']; @@ -1172,12 +1173,10 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v }; recurrenceWarn(); var changeCalendarWarn = function() { - if (changes.calendarId && evOrig.recurrenceRule && isOrigin) { + if (moveCalendar && wasRecurrent && isOrigin) { // Don't change only the first event of a recurring event $warn.show(); $p.hide(); - console.log($radio.find('input[id="cp.calendar-rec-edit-one"]')); - $radio.find('input[id="cp-calendar-rec-edit-one"]').disabled = true; return $warn.text(Messages.calendar_rec_change_first); } else { return null; From 31cb79548b9496b731bea0a1f7eef03f554d2e01 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 24 Oct 2023 18:25:24 +0200 Subject: [PATCH 21/73] calendar: Improve warnings when changing recurring events' calendar Related to issue #1275's changes. --- www/calendar/inner.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index fdb1a7788..bb1789dfe 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -54,7 +54,8 @@ define([ Share, Access, Properties ) { - Messages.calendar_rec_change_first = "You moved the first recurring event to different calendar. You can only apply this change to all repeated events."; // XXX New translation key + Messages.calendar_rec_change_first = "You moved the first repeating event to different calendar. You can only apply this change to all repeated events."; // XXX New translation key + Messages.calendar_rec_change = "You moved a repeating event to different calendar. You can only apply this change to this event or all repeated events."; // XXX New translation key var SaveAs = window.saveAs; var APP = window.APP = { calendars: {} @@ -1173,11 +1174,15 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v }; recurrenceWarn(); var changeCalendarWarn = function() { - if (moveCalendar && wasRecurrent && isOrigin) { + if (moveCalendar && wasRecurrent) { // Don't change only the first event of a recurring event $warn.show(); $p.hide(); - return $warn.text(Messages.calendar_rec_change_first); + if (isOrigin) { + return $warn.text(Messages.calendar_rec_change_first); + } else { + return $warn.text(Messages.calendar_rec_change); + } } else { return null; } From 4184a15d2dfc4b9c593b88439c192c4355f8575c Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 24 Oct 2023 18:43:10 +0200 Subject: [PATCH 22/73] #1275: typo --- www/calendar/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index bb1789dfe..cf23944d3 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -990,7 +990,7 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v console.error(err); return void UI.warn(err); } - //cal.createSchedules([schedule]); XXX Remove these occurrence elsewhere + //cal.createSchedules([schedule]); XXX Remove these occurrences elsewhere }); }); cal.on('beforeUpdateSchedule', function(event) { From dc522517c7eef572b6e1d95ac35f85a890cb3e2c Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 24 Oct 2023 18:44:55 +0200 Subject: [PATCH 23/73] calendar: avoid warning disappearance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1275: forgot to handle the case where a user changes its option, which made the warning disappear… --- www/calendar/inner.js | 1 + 1 file changed, 1 insertion(+) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index cf23944d3..e601050f1 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -1189,6 +1189,7 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v }; changeCalendarWarn(); $radio.find('input[type="radio"]').on('change', recurrenceWarn); + $radio.find('input[type="radio"]').on('change', changeCalendarWarn); }); cal.on('beforeDeleteSchedule', function(event) { deleteEvent(event.schedule, function (err) { From d49a17f6f7ba0ae97d182f7cc573ad474aebf47e Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 31 Oct 2023 15:59:54 +0100 Subject: [PATCH 24/73] Fix syntax highlighting in profile --- www/profile/inner.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/profile/inner.js b/www/profile/inner.js index 3336f6eb2..71d89c3b7 100644 --- a/www/profile/inner.js +++ b/www/profile/inner.js @@ -19,7 +19,8 @@ define([ '/common/sframe-common-codemirror.js', 'cm/lib/codemirror', - 'cm/mode/markdown/markdown', + 'cm/mode/gfm/gfm', + 'css!/components/codemirror/lib/codemirror.css', 'css!/components/codemirror/addon/dialog/dialog.css', From c354abb1e25fac12a5f69f7779555ec58fd2aa27 Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 31 Oct 2023 16:01:37 +0100 Subject: [PATCH 25/73] Fix calendar single event treated as recurrent --- www/calendar/inner.js | 1 + 1 file changed, 1 insertion(+) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index e601050f1..89370dde4 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -1030,6 +1030,7 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v APP.recurrenceRule = ev.recurrenceRule; } + APP.editType = undefined; var afterConfirm = function () { var raw = (ev && ev.raw) || {}; var rawData = { // Exact start and end of the selected event From 53ad4f5a25e94053f77627749d19b8bf7d6b506d Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Wed, 18 Oct 2023 18:14:06 +0200 Subject: [PATCH 26/73] #1171: The `textarea` is showing and is working as intended for the purpose of creating and updating the calendar event. BUG: carriage returns don't seem to work WIP: the text is hardcoded as of now, have to use Messages library for translations. --- www/calendar/app-calendar.less | 6 ++++- www/calendar/inner.js | 45 +++++++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/www/calendar/app-calendar.less b/www/calendar/app-calendar.less index 6bb76cf8e..53ade5d18 100644 --- a/www/calendar/app-calendar.less +++ b/www/calendar/app-calendar.less @@ -209,9 +209,13 @@ .tui-full-calendar-section-date-dash { height: auto; } - .tui-full-calendar-section-title, .tui-full-calendar-section-location { + .tui-full-calendar-section-title, .tui-full-calendar-section-location, .tui-full-calendar-section-description { width: 100%; } + .tui-full-calendar-section-description textarea { + width: 100%; + height: 200px; + } .tui-full-calendar-dropdown-menu { top: 38px; width: 221px; // same as button diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 89370dde4..69f018569 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -99,6 +99,7 @@ define([ }; var newEvent = function (event, cb) { var reminders = APP.notificationsEntries; + var description = APP.description; var startDate = event.start._date; var endDate = event.end._date; @@ -113,6 +114,7 @@ define([ isAllDay: event.isAllDay, end: +endDate, reminders: reminders, + description: description, recurrenceRule: event.recurrenceRule }; @@ -283,6 +285,7 @@ define([ var obj = data.content[uid]; obj.title = obj.title || ""; obj.location = obj.location || ""; + obj.description = obj.description || ""; if (obj.isAllDay && obj.startDay) { obj.start = +Flatpickr.parseDate((obj.startDay)); } if (obj.isAllDay && obj.endDay) { var endDate = Flatpickr.parseDate(obj.endDay); @@ -1023,6 +1026,9 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v if (JSONSortify(oldRec || '') !== JSONSortify(rec)) { changes.recurrenceRule = rec; } + + var description = APP.description; + changes.description = description; } @@ -1900,7 +1906,6 @@ APP.recurrenceRule = { var getNotificationDropdown = function () { var ev = APP.editModalData; var calId = ev.selectedCal.id; - // DEFAULT HERE [10] ==> 10 minutes before the event var id = (ev.id && ev.id.split('|')[0]) || undefined; var _ev = APP.calendar.getSchedule(ev.id, calId); var oldReminders = _ev && _ev.raw && _ev.raw.reminders; @@ -2008,6 +2013,41 @@ APP.recurrenceRule = { ]); }; + var getDescriptionInput = function() { + var ev = APP.editModalData; + var calId = ev.selectedCal.id; + // DEFAULT HERE [10] ==> 10 minutes before the event + var id = (ev.id && ev.id.split('|')[0]) || undefined; + var _ev = APP.calendar.getSchedule(ev.id, calId); + var oldDescription = _ev && _ev.raw && _ev.raw.description; + if (!oldDescription) { + oldDescription = Util.find(APP.calendars, [calId, 'content', 'content', id, 'description']) || ""; + } + + APP.description = oldDescription; + var description = h('textarea.tui-full-calendar-content', { + placeholder: 'Description', // TODO: replace with Message.calendar_description + id: 'tui-full-calendar-description', + }); + + description.value = oldDescription; + + var updateDescription = function(value) { + APP.description = value; + }; + + var $description = $(description); + $description.on('input', function() { + updateDescription(description.value); + }); + + return h('div.tui-full-calendar-popup-section.tui-full-calendar-vlayout-area', [ + h('div.tui-full-calendar-popup-section-item.tui-full-calendar-section-description', [ + description, + ]), + ]); + }; + var createToolbar = function () { var displayed = ['useradmin', 'newpad', 'limit', 'pageTitle', 'notifications']; var configTb = { @@ -2118,6 +2158,9 @@ APP.recurrenceRule = { var div = getNotificationDropdown(); $button.before(div); + var descriptionInput = getDescriptionInput(); + $startDate.parent().parent().before(descriptionInput); + // Use Flatpickr with or without time depending on allday checkbox var $cbox = $el.find('#tui-full-calendar-schedule-allday'); var allDay = $cbox.is(':checked'); From bbb4a46e0f83c76f61da46c0678b8578d2b9a1e3 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Wed, 18 Oct 2023 18:35:43 +0200 Subject: [PATCH 27/73] #1171: Fix nowrap in textareas --- www/calendar/app-calendar.less | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/www/calendar/app-calendar.less b/www/calendar/app-calendar.less index 53ade5d18..d18519580 100644 --- a/www/calendar/app-calendar.less +++ b/www/calendar/app-calendar.less @@ -197,7 +197,9 @@ background-color: @cp_dropdown-bg-hover; } .tui-full-calendar-content { - white-space: nowrap; + &:not(textarea) { + white-space: nowrap; + } overflow: hidden; text-overflow: ellipsis; font: @colortheme_app-font; From 398df9d58fa4089102769aea775b1d36d0e48cf6 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 19 Oct 2023 10:50:47 +0200 Subject: [PATCH 28/73] #1171: Calendar ICS import and export handle the `description` field --- www/calendar/export.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/www/calendar/export.js b/www/calendar/export.js index 694179a9f..5d851d560 100644 --- a/www/calendar/export.js +++ b/www/calendar/export.js @@ -97,7 +97,6 @@ define([ }; - var addEvent = function (arr, data, recId) { var uid = data.id; var dt = getDT(data); @@ -105,6 +104,10 @@ define([ var end = dt.end; var rrule = getRRule(data); + var escapeValue = function(str) { + return str.replace(/\n/g, ["\\n"]); + } + Array.prototype.push.apply(arr, [ 'BEGIN:VEVENT', 'DTSTAMP:'+getICSDate(+new Date()), @@ -115,6 +118,7 @@ define([ rrule, 'SUMMARY:'+ data.title, 'LOCATION:'+ data.location, + 'DESCRIPTION:' + escapeValue(data.description), ].filter(Boolean)); if (Array.isArray(data.reminders)) { @@ -355,6 +359,7 @@ define([ category: 'time', title: ev.getFirstPropertyValue('summary'), location: ev.getFirstPropertyValue('location'), + description: ev.getFirstPropertyValue('description'), isAllDay: isAllDay, start: start, end: end, From 7ceca7d4af446604a06d340e0fddafaff8bf7012 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 19 Oct 2023 11:42:21 +0200 Subject: [PATCH 29/73] #1171: Rename description with body * Rename description in the schedule object -> Use the body property of [tui-calendar](https://github.com/nhn/tui.calendar/) for to show the description in the details popup : --- www/calendar/app-calendar.less | 4 +-- www/calendar/export.js | 8 +++--- www/calendar/inner.js | 47 +++++++++++++++++++--------------- 3 files changed, 33 insertions(+), 26 deletions(-) diff --git a/www/calendar/app-calendar.less b/www/calendar/app-calendar.less index d18519580..ea17d53dd 100644 --- a/www/calendar/app-calendar.less +++ b/www/calendar/app-calendar.less @@ -211,10 +211,10 @@ .tui-full-calendar-section-date-dash { height: auto; } - .tui-full-calendar-section-title, .tui-full-calendar-section-location, .tui-full-calendar-section-description { + .tui-full-calendar-section-title, .tui-full-calendar-section-location, .tui-full-calendar-section-body { width: 100%; } - .tui-full-calendar-section-description textarea { + .tui-full-calendar-section-body textarea { width: 100%; height: 200px; } diff --git a/www/calendar/export.js b/www/calendar/export.js index 5d851d560..ad5f23fa3 100644 --- a/www/calendar/export.js +++ b/www/calendar/export.js @@ -106,7 +106,7 @@ define([ var escapeValue = function(str) { return str.replace(/\n/g, ["\\n"]); - } + }; Array.prototype.push.apply(arr, [ 'BEGIN:VEVENT', @@ -118,7 +118,7 @@ define([ rrule, 'SUMMARY:'+ data.title, 'LOCATION:'+ data.location, - 'DESCRIPTION:' + escapeValue(data.description), + 'DESCRIPTION:' + escapeValue(data.body), ].filter(Boolean)); if (Array.isArray(data.reminders)) { @@ -314,7 +314,7 @@ define([ } // Store other properties - var used = ['dtstart', 'dtend', 'uid', 'summary', 'location', 'dtstamp', 'rrule', 'recurrence-id']; + var used = ['dtstart', 'dtend', 'uid', 'summary', 'location', 'description', 'dtstamp', 'rrule', 'recurrence-id']; var hidden = []; ev.getAllProperties().forEach(function (p) { if (used.indexOf(p.name) !== -1) { return; } @@ -359,7 +359,7 @@ define([ category: 'time', title: ev.getFirstPropertyValue('summary'), location: ev.getFirstPropertyValue('location'), - description: ev.getFirstPropertyValue('description'), + body: ev.getFirstPropertyValue('description'), isAllDay: isAllDay, start: start, end: end, diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 69f018569..d37554155 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -285,7 +285,7 @@ define([ var obj = data.content[uid]; obj.title = obj.title || ""; obj.location = obj.location || ""; - obj.description = obj.description || ""; + obj.body = obj.body || ""; if (obj.isAllDay && obj.startDay) { obj.start = +Flatpickr.parseDate((obj.startDay)); } if (obj.isAllDay && obj.endDay) { var endDate = Flatpickr.parseDate(obj.endDay); @@ -391,6 +391,13 @@ define([ return Messages._getKey('calendar_location', [str]); }, + popupDetailBody: function(schedule) { + var d = schedule.body; + var str = Util.fixHTML(d); + str = str.replace(/(?:\r\n|\r|\n)/g, '
      '); + delete APP.body; + return 'Description:
      ' + str; + }, popupIsAllDay: function() { return Messages.calendar_allDay; }, titlePlaceholder: function() { return Messages.calendar_title; }, locationPlaceholder: function() { return Messages.calendar_loc; }, @@ -1027,8 +1034,8 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v changes.recurrenceRule = rec; } - var description = APP.description; - changes.description = description; + var body = APP.body; + changes.body = body; } @@ -2013,37 +2020,37 @@ APP.recurrenceRule = { ]); }; - var getDescriptionInput = function() { + var getBodyInput = function() { var ev = APP.editModalData; var calId = ev.selectedCal.id; // DEFAULT HERE [10] ==> 10 minutes before the event var id = (ev.id && ev.id.split('|')[0]) || undefined; var _ev = APP.calendar.getSchedule(ev.id, calId); - var oldDescription = _ev && _ev.raw && _ev.raw.description; - if (!oldDescription) { - oldDescription = Util.find(APP.calendars, [calId, 'content', 'content', id, 'description']) || ""; + var oldBody = _ev && _ev.raw && _ev.raw.body; + if (!oldBody) { + oldBody = Util.find(APP.calendars, [calId, 'content', 'content', id, 'body']) || ""; } - APP.description = oldDescription; - var description = h('textarea.tui-full-calendar-content', { + APP.body = oldBody; + var body = h('textarea.tui-full-calendar-content', { placeholder: 'Description', // TODO: replace with Message.calendar_description - id: 'tui-full-calendar-description', + id: 'tui-full-calendar-body', }); - description.value = oldDescription; + body.value = oldBody; - var updateDescription = function(value) { - APP.description = value; + var updateBody = function(value) { + APP.body = value; }; - var $description = $(description); - $description.on('input', function() { - updateDescription(description.value); + var $body = $(body); + $body.on('input', function() { + updateBody(body.value); }); return h('div.tui-full-calendar-popup-section.tui-full-calendar-vlayout-area', [ - h('div.tui-full-calendar-popup-section-item.tui-full-calendar-section-description', [ - description, + h('div.tui-full-calendar-popup-section-item.tui-full-calendar-section-body', [ + body, ]), ]); }; @@ -2158,8 +2165,8 @@ APP.recurrenceRule = { var div = getNotificationDropdown(); $button.before(div); - var descriptionInput = getDescriptionInput(); - $startDate.parent().parent().before(descriptionInput); + var bodyInput = getBodyInput(); + $startDate.parent().parent().before(bodyInput); // Use Flatpickr with or without time depending on allday checkbox var $cbox = $el.find('#tui-full-calendar-schedule-allday'); From d61b8376cc7647f69c47a6b12162bc34c6a72cfa Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 19 Oct 2023 17:12:05 +0200 Subject: [PATCH 30/73] #1171: fix no scroll in long descriptions --- www/calendar/app-calendar.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/calendar/app-calendar.less b/www/calendar/app-calendar.less index ea17d53dd..7f9a4336b 100644 --- a/www/calendar/app-calendar.less +++ b/www/calendar/app-calendar.less @@ -199,8 +199,8 @@ .tui-full-calendar-content { &:not(textarea) { white-space: nowrap; + overflow: hidden; } - overflow: hidden; text-overflow: ellipsis; font: @colortheme_app-font; padding: 0 10px; From 8c3c3d8d5183f792b4b50fefea0356f48a453d22 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 19 Oct 2023 17:48:16 +0200 Subject: [PATCH 31/73] #1171: Render markdown with diffMK for details popup * Sanitized markdown raises a warning: ``` marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options marked.min.js:6:44783 ``` --- www/calendar/inner.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index d37554155..0c8cff264 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -24,6 +24,8 @@ define([ '/common/inner/access.js', '/common/inner/properties.js', + '/common/diffMarked.js', + '/common/jscolor.js', '/components/file-saver/FileSaver.min.js', 'css!/lib/calendar/tui-calendar.min.css', @@ -51,7 +53,8 @@ define([ Export, Rec, Flatpickr, - Share, Access, Properties + Share, Access, Properties, + diffMk, ) { Messages.calendar_rec_change_first = "You moved the first repeating event to different calendar. You can only apply this change to all repeated events."; // XXX New translation key @@ -392,11 +395,9 @@ define([ return Messages._getKey('calendar_location', [str]); }, popupDetailBody: function(schedule) { - var d = schedule.body; - var str = Util.fixHTML(d); - str = str.replace(/(?:\r\n|\r|\n)/g, '
      '); + var str = schedule.body; delete APP.body; - return 'Description:
      ' + str; + return 'Description:
      ' + diffMk.render(str,true); }, popupIsAllDay: function() { return Messages.calendar_allDay; }, titlePlaceholder: function() { return Messages.calendar_title; }, From fba0ccd032772dfd2020476cc985d99748e36aee Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 19 Oct 2023 18:35:32 +0200 Subject: [PATCH 32/73] Lint compliance Lint compliance for the calendar description field (#1171) --- www/calendar/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 0c8cff264..8d9c35d73 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -54,7 +54,7 @@ define([ Rec, Flatpickr, Share, Access, Properties, - diffMk, + diffMk ) { Messages.calendar_rec_change_first = "You moved the first repeating event to different calendar. You can only apply this change to all repeated events."; // XXX New translation key From 087f786f9fd50b682dafcf900579a65dd49ab798 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 20 Oct 2023 10:49:09 +0200 Subject: [PATCH 33/73] #1171: Add translation keys * Inlined at the beginning of `www/calendar/inner.js` for future integration in weblate on release. --- www/calendar/inner.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 8d9c35d73..f17cefad1 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -57,8 +57,12 @@ define([ diffMk ) { + // XXX New translation keys Messages.calendar_rec_change_first = "You moved the first repeating event to different calendar. You can only apply this change to all repeated events."; // XXX New translation key Messages.calendar_rec_change = "You moved a repeating event to different calendar. You can only apply this change to this event or all repeated events."; // XXX New translation key + Messages.calendar_desc = "Description"; // XXX maybe rename in `description`? + Messages.calendar_description = "Description:{0}{1}"; // XXX + var SaveAs = window.saveAs; var APP = window.APP = { calendars: {} @@ -397,7 +401,7 @@ define([ popupDetailBody: function(schedule) { var str = schedule.body; delete APP.body; - return 'Description:
      ' + diffMk.render(str,true); + return Messages._getKey('calendar_description', ['
      ', diffMk.render(str, true)]); }, popupIsAllDay: function() { return Messages.calendar_allDay; }, titlePlaceholder: function() { return Messages.calendar_title; }, @@ -2034,7 +2038,7 @@ APP.recurrenceRule = { APP.body = oldBody; var body = h('textarea.tui-full-calendar-content', { - placeholder: 'Description', // TODO: replace with Message.calendar_description + placeholder: Messages.calendar_desc, id: 'tui-full-calendar-body', }); From 00c1323f07325abae0fa0e6bd1406da1b8257eb3 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 20 Oct 2023 14:12:53 +0200 Subject: [PATCH 34/73] #1171: ICS line wrapping for descriptions in export Descriptions can be long and RFC5545 states that a line shouldn't be more than 75 bytes long. --- www/calendar/export.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/www/calendar/export.js b/www/calendar/export.js index ad5f23fa3..de61be5e6 100644 --- a/www/calendar/export.js +++ b/www/calendar/export.js @@ -104,8 +104,13 @@ define([ var end = dt.end; var rrule = getRRule(data); - var escapeValue = function(str) { - return str.replace(/\n/g, ["\\n"]); + var formatDescription = function(str) { + var result = str.replace(/\n/g, ["\\n"]); + // XXX Should use ical.js helper foldline instead ↓ + // XXX https://kewisch.github.io/ical.js/api/ICAL.module_helpers.html#.foldline + // In RFC5545: https://www.rfc-editor.org/rfc/rfc5545#section-3.1 + result = result.replace(/([^\n]{1,74})/g, '$1\n '); + return result; }; Array.prototype.push.apply(arr, [ @@ -118,7 +123,7 @@ define([ rrule, 'SUMMARY:'+ data.title, 'LOCATION:'+ data.location, - 'DESCRIPTION:' + escapeValue(data.body), + 'DESCRIPTION:' + formatDescription(data.body), ].filter(Boolean)); if (Array.isArray(data.reminders)) { From b9e698ef14913e20cd8b9a4d10bb9570394dbb48 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 20 Oct 2023 14:25:52 +0200 Subject: [PATCH 35/73] #1171: Cleaning code --- www/calendar/inner.js | 1 - 1 file changed, 1 deletion(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index f17cefad1..54b9d55ca 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -2028,7 +2028,6 @@ APP.recurrenceRule = { var getBodyInput = function() { var ev = APP.editModalData; var calId = ev.selectedCal.id; - // DEFAULT HERE [10] ==> 10 minutes before the event var id = (ev.id && ev.id.split('|')[0]) || undefined; var _ev = APP.calendar.getSchedule(ev.id, calId); var oldBody = _ev && _ev.raw && _ev.raw.body; From 6b7eedde229010f36b07220d0bb71273755f7a3d Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 20 Oct 2023 14:41:00 +0200 Subject: [PATCH 36/73] #1171: Use the ical.js implementation for foldline According to [RFC5545](https://www.rfc-editor.org/rfc/rfc5545#section-3.1): ``` Note: It is possible for very simple implementations to generate improperly folded lines in the middle of a UTF-8 multi-octet sequence. For this reason, implementations need to unfold lines in such a way to properly restore the original sequence. ``` It actually happens when an emoji takes the 75th and 76th bit. --- www/calendar/export.js | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/www/calendar/export.js b/www/calendar/export.js index de61be5e6..882c57f94 100644 --- a/www/calendar/export.js +++ b/www/calendar/export.js @@ -96,6 +96,41 @@ define([ return rrule; }; + // XXX Below function: from ical.js, should be imported instead. + // XXX However, if it's done, it would be better to refactor the + // XXX export module to directly use ical.js for exporting ICS. + var foldline = function(aLine) { + var foldLength = 75; + var newLineChar = '\r\n'; + let result = ""; + let line = aLine || "", pos = 0, line_length = 0; + //pos counts position in line for the UTF-16 presentation + //line_length counts the bytes for the UTF-8 presentation + while (line.length) { + let cp = line.codePointAt(pos); + if (cp < 128) { + ++line_length; + } + else if (cp < 2048) { + line_length += 2;//needs 2 UTF-8 bytes + } + else if (cp < 65536) { + line_length += 3; + } + else { + line_length += 4; //cp is less than 1114112 + } + if (line_length < foldLength + 1) { + pos += cp > 65535 ? 2 : 1; + } + else { + result += newLineChar + " " + line.slice(0, Math.max(0, pos)); + line = line.slice(Math.max(0, pos)); + pos = line_length = 0; + } + } + return result.slice(newLineChar.length + 1); + }; var addEvent = function (arr, data, recId) { var uid = data.id; @@ -105,11 +140,12 @@ define([ var rrule = getRRule(data); var formatDescription = function(str) { - var result = str.replace(/\n/g, ["\\n"]); + var componentName = 'DESCRIPTION:'; + var result = componentName + str.replace(/\n/g, ["\\n"]); // XXX Should use ical.js helper foldline instead ↓ // XXX https://kewisch.github.io/ical.js/api/ICAL.module_helpers.html#.foldline // In RFC5545: https://www.rfc-editor.org/rfc/rfc5545#section-3.1 - result = result.replace(/([^\n]{1,74})/g, '$1\n '); + result = foldline(result); return result; }; @@ -123,7 +159,7 @@ define([ rrule, 'SUMMARY:'+ data.title, 'LOCATION:'+ data.location, - 'DESCRIPTION:' + formatDescription(data.body), + formatDescription(data.body), ].filter(Boolean)); if (Array.isArray(data.reminders)) { From 9b2f565c19d25c0411676be4b42c95c425c1f7cc Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 31 Oct 2023 15:53:14 +0100 Subject: [PATCH 37/73] #1171: rename badly named variable body was a wrong choice of name --- www/calendar/inner.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 54b9d55ca..78bffadf7 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -106,7 +106,7 @@ define([ }; var newEvent = function (event, cb) { var reminders = APP.notificationsEntries; - var description = APP.description; + var eventBody = APP.description; var startDate = event.start._date; var endDate = event.end._date; @@ -121,7 +121,7 @@ define([ isAllDay: event.isAllDay, end: +endDate, reminders: reminders, - description: description, + body: eventBody, recurrenceRule: event.recurrenceRule }; @@ -1039,8 +1039,8 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v changes.recurrenceRule = rec; } - var body = APP.body; - changes.body = body; + var eventBody = APP.eventBody; + changes.body = eventBody; } @@ -2030,31 +2030,31 @@ APP.recurrenceRule = { var calId = ev.selectedCal.id; var id = (ev.id && ev.id.split('|')[0]) || undefined; var _ev = APP.calendar.getSchedule(ev.id, calId); - var oldBody = _ev && _ev.raw && _ev.raw.body; - if (!oldBody) { - oldBody = Util.find(APP.calendars, [calId, 'content', 'content', id, 'body']) || ""; + var oldEventBody = _ev && _ev.raw && _ev.raw.body; + if (!oldEventBody) { + oldEventBody = Util.find(APP.calendars, [calId, 'content', 'content', id, 'body']) || ""; } - APP.body = oldBody; - var body = h('textarea.tui-full-calendar-content', { + APP.eventBody = oldEventBody; + var description = h('textarea.tui-full-calendar-content', { placeholder: Messages.calendar_desc, id: 'tui-full-calendar-body', }); - body.value = oldBody; + description.value = oldEventBody; var updateBody = function(value) { - APP.body = value; + APP.eventBody = value; }; - var $body = $(body); - $body.on('input', function() { - updateBody(body.value); + var $description = $(description); + $description.on('input', function() { + updateBody(description.value); }); return h('div.tui-full-calendar-popup-section.tui-full-calendar-vlayout-area', [ h('div.tui-full-calendar-popup-section-item.tui-full-calendar-section-body', [ - body, + description, ]), ]); }; From a2d0aad4a2a9be26c2398c92d0e435c23f92566d Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 31 Oct 2023 17:32:30 +0100 Subject: [PATCH 38/73] #1171: Bug with recurring events An issue when getting back the content of an edited only recurring event --- www/calendar/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 78bffadf7..d8ade1e08 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -2030,7 +2030,7 @@ APP.recurrenceRule = { var calId = ev.selectedCal.id; var id = (ev.id && ev.id.split('|')[0]) || undefined; var _ev = APP.calendar.getSchedule(ev.id, calId); - var oldEventBody = _ev && _ev.raw && _ev.raw.body; + var oldEventBody = _ev && _ev.body; if (!oldEventBody) { oldEventBody = Util.find(APP.calendars, [calId, 'content', 'content', id, 'body']) || ""; } From a56b3ace7a5ca361b302e5a34e1a81db181e77d0 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 2 Nov 2023 11:15:14 +0100 Subject: [PATCH 39/73] #1171: Use CodeMirror in the description edition --- www/calendar/app-calendar.less | 29 ++++++++++++++++++-------- www/calendar/inner.js | 37 +++++++++++++++++++++++++--------- 2 files changed, 49 insertions(+), 17 deletions(-) diff --git a/www/calendar/app-calendar.less b/www/calendar/app-calendar.less index 7f9a4336b..460188f92 100644 --- a/www/calendar/app-calendar.less +++ b/www/calendar/app-calendar.less @@ -197,10 +197,6 @@ background-color: @cp_dropdown-bg-hover; } .tui-full-calendar-content { - &:not(textarea) { - white-space: nowrap; - overflow: hidden; - } text-overflow: ellipsis; font: @colortheme_app-font; padding: 0 10px; @@ -214,10 +210,6 @@ .tui-full-calendar-section-title, .tui-full-calendar-section-location, .tui-full-calendar-section-body { width: 100%; } - .tui-full-calendar-section-body textarea { - width: 100%; - height: 200px; - } .tui-full-calendar-dropdown-menu { top: 38px; width: 221px; // same as button @@ -251,6 +243,27 @@ border-radius: 2px; } } + .CodeMirror { + margin-top: 5px; + background: @cp_forms-bg; + color: @cryptpad_text_col; + border: 1px solid @cp_forms-border; + border-radius: @variables_radius; + width: 100%; + height: 80px; + font: @colortheme_app-font; + font-size: 16px; + line-height: initial; + pre { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; + } + } + .CodeMirror-placeholder { + color: @cp_forms-placeholder; + } } } .tui-full-calendar-popup-detail { diff --git a/www/calendar/inner.js b/www/calendar/inner.js index d8ade1e08..7a01acf75 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -25,10 +25,17 @@ define([ '/common/inner/properties.js', '/common/diffMarked.js', + '/common/sframe-common-codemirror.js', + 'cm/lib/codemirror', + 'cm/addon/display/autorefresh', + 'cm/addon/display/placeholder', + 'cm/mode/gfm/gfm', '/common/jscolor.js', '/components/file-saver/FileSaver.min.js', 'css!/lib/calendar/tui-calendar.min.css', + 'css!/components/codemirror/lib/codemirror.css', + 'css!/components/codemirror/addon/dialog/dialog.css', 'css!/components/components-font-awesome/css/font-awesome.min.css', 'css!/components/bootstrap/dist/css/bootstrap.min.css', 'less!/calendar/app-calendar.less', @@ -54,7 +61,9 @@ define([ Rec, Flatpickr, Share, Access, Properties, - diffMk + diffMk, + SFCodeMirror, + CodeMirror ) { // XXX New translation keys @@ -2043,20 +2052,30 @@ APP.recurrenceRule = { description.value = oldEventBody; + var block = h('div.tui-full-calendar-popup-section', [ + description, + ]); + + var cm = SFCodeMirror.create("gfm", CodeMirror, description); + var editor = APP.editor = cm.editor; + editor.setOption('lineNumbers', false); + editor.setOption('lineWrapping', true); + editor.setOption('styleActiveLine', false); + editor.setOption('readOnly', false); + editor.setOption('autoRefresh', true); + editor.setOption('gutters', []); + cm.configureTheme(common, function () {}); + editor.setValue(oldEventBody); + var updateBody = function(value) { APP.eventBody = value; }; - var $description = $(description); - $description.on('input', function() { - updateBody(description.value); + editor.on('changes', function() { + updateBody(editor.getValue()); }); - return h('div.tui-full-calendar-popup-section.tui-full-calendar-vlayout-area', [ - h('div.tui-full-calendar-popup-section-item.tui-full-calendar-section-body', [ - description, - ]), - ]); + return block; }; var createToolbar = function () { From a6c01f5b7c979a7f910c7e621c4b93ebec76f838 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 2 Nov 2023 11:42:45 +0100 Subject: [PATCH 40/73] #1171: Integration with #1275 --- www/calendar/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 7a01acf75..78e528e3d 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -115,7 +115,7 @@ define([ }; var newEvent = function (event, cb) { var reminders = APP.notificationsEntries; - var eventBody = APP.description; + var eventBody = APP.eventBody; var startDate = event.start._date; var endDate = event.end._date; From 66a2815993ae4cf741e39ef04d900551281e9be6 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 2 Nov 2023 11:45:01 +0100 Subject: [PATCH 41/73] #1171: Alignment of the description content --- www/calendar/app-calendar.less | 1 + 1 file changed, 1 insertion(+) diff --git a/www/calendar/app-calendar.less b/www/calendar/app-calendar.less index 460188f92..e41b8ea4d 100644 --- a/www/calendar/app-calendar.less +++ b/www/calendar/app-calendar.less @@ -254,6 +254,7 @@ font: @colortheme_app-font; font-size: 16px; line-height: initial; + padding-left: 0.3rem; pre { margin: 0; font-family: inherit; From 4c80de725f998964dd3d9c639525d61a68b874c3 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 2 Nov 2023 11:58:07 +0100 Subject: [PATCH 42/73] #1171: Use of ical.js for line formatting while exporting --- www/calendar/export.js | 46 +++++------------------------------------- 1 file changed, 5 insertions(+), 41 deletions(-) diff --git a/www/calendar/export.js b/www/calendar/export.js index 882c57f94..4d6c15768 100644 --- a/www/calendar/export.js +++ b/www/calendar/export.js @@ -3,8 +3,9 @@ define([ '/customize/pages.js', '/common/common-util.js', - '/calendar/recurrence.js' -], function (Pages, Util, Rec) { + '/calendar/recurrence.js', + '/lib/ical.min.js' +], function (Pages, Util, Rec, ICAL) { var module = {}; var getICSDate = function (str) { @@ -96,42 +97,6 @@ define([ return rrule; }; - // XXX Below function: from ical.js, should be imported instead. - // XXX However, if it's done, it would be better to refactor the - // XXX export module to directly use ical.js for exporting ICS. - var foldline = function(aLine) { - var foldLength = 75; - var newLineChar = '\r\n'; - let result = ""; - let line = aLine || "", pos = 0, line_length = 0; - //pos counts position in line for the UTF-16 presentation - //line_length counts the bytes for the UTF-8 presentation - while (line.length) { - let cp = line.codePointAt(pos); - if (cp < 128) { - ++line_length; - } - else if (cp < 2048) { - line_length += 2;//needs 2 UTF-8 bytes - } - else if (cp < 65536) { - line_length += 3; - } - else { - line_length += 4; //cp is less than 1114112 - } - if (line_length < foldLength + 1) { - pos += cp > 65535 ? 2 : 1; - } - else { - result += newLineChar + " " + line.slice(0, Math.max(0, pos)); - line = line.slice(Math.max(0, pos)); - pos = line_length = 0; - } - } - return result.slice(newLineChar.length + 1); - }; - var addEvent = function (arr, data, recId) { var uid = data.id; var dt = getDT(data); @@ -142,10 +107,9 @@ define([ var formatDescription = function(str) { var componentName = 'DESCRIPTION:'; var result = componentName + str.replace(/\n/g, ["\\n"]); - // XXX Should use ical.js helper foldline instead ↓ - // XXX https://kewisch.github.io/ical.js/api/ICAL.module_helpers.html#.foldline + var ICAL = window.ICAL; // In RFC5545: https://www.rfc-editor.org/rfc/rfc5545#section-3.1 - result = foldline(result); + result = ICAL.helpers.foldline(result); return result; }; From df1b59513ba4c5a2fd1f5560e658c1bb5ca4b37e Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 2 Nov 2023 13:32:57 +0100 Subject: [PATCH 43/73] #1171: Fix a change in the variable names --- www/calendar/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 78e528e3d..0ffad3e4e 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -409,7 +409,7 @@ define([ }, popupDetailBody: function(schedule) { var str = schedule.body; - delete APP.body; + delete APP.eventBody; return Messages._getKey('calendar_description', ['
      ', diffMk.render(str, true)]); }, popupIsAllDay: function() { return Messages.calendar_allDay; }, From 039cb9d59812951d20e9590a8ad6c59e5c6fa81d Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 2 Nov 2023 13:39:17 +0100 Subject: [PATCH 44/73] #1171: Don't send changes in description everytime --- www/calendar/inner.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 0ffad3e4e..450912a56 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -115,7 +115,7 @@ define([ }; var newEvent = function (event, cb) { var reminders = APP.notificationsEntries; - var eventBody = APP.eventBody; + var eventBody = APP.eventBody || ""; var startDate = event.start._date; var endDate = event.end._date; @@ -1048,8 +1048,10 @@ ICS ==> create a new event with the same UID and a RECURRENCE-ID field (with a v changes.recurrenceRule = rec; } - var eventBody = APP.eventBody; - changes.body = eventBody; + var eventBody = APP.eventBody || ""; + if (eventBody !== old.body) { + changes.body = eventBody; + } } From 1d88dbc4120e07cb72ba5026ff950bacd3df973d Mon Sep 17 00:00:00 2001 From: Weblate Date: Fri, 3 Nov 2023 14:26:35 +0100 Subject: [PATCH 45/73] Translated using Weblate (Bulgarian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 17.3% (290 of 1667 strings) Translated using Weblate (Bulgarian) Currently translated at 16.4% (275 of 1667 strings) Co-authored-by: Weblate Co-authored-by: Мария Рангелова Translate-URL: https://weblate.cryptpad.org/projects/cryptpad/app/bg/ Translation: CryptPad/App --- www/common/translations/messages.bg.json | 52 +++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/www/common/translations/messages.bg.json b/www/common/translations/messages.bg.json index 186b8a32a..f8ecf7443 100644 --- a/www/common/translations/messages.bg.json +++ b/www/common/translations/messages.bg.json @@ -240,5 +240,55 @@ "contacts_leaveRoom": "Напусни тази стая", "contacts_online": "Друг потребител от тази стая е онлайн", "fm_rootName": "Карам", - "fm_trashName": "Кошче" + "fm_trashName": "Кошче", + "fm_deleteOwnedPads": "Сигурни ли сте, че искате да унищожите окончателно тези документи?", + "fm_restoreDialog": "Сигурни ли сте, че искате да възстановите {0} до предишното му местоположение?", + "fm_filesDataName": "Всички файлове", + "fm_templateName": "Шаблони", + "fm_searchName": "Търсене", + "fm_recentPadsName": "Последни", + "fm_ownedPadsName": "Собственост на", + "fm_tagsName": "Тагове", + "fm_sharedFolderName": "Споделена папка", + "fm_searchPlaceholder": "Търсене...", + "fm_newButton": "Нов", + "fm_newButtonTitle": "Създайте нов документ или папка, импортирайте файл в текущата папка.", + "fm_newFolder": "Нова папка", + "fm_newFile": "Нов документ", + "ui_more": "Повече", + "fm_folder": "Папка", + "fm_sharedFolder": "Споделена папка", + "fm_folderName": "Име на папка", + "fm_numberOfFolders": "# от папки", + "fm_numberOfFiles": "# на файлове", + "fm_fileName": "Име на файл", + "fm_type": "Тип", + "fm_lastAccess": "Последен достъп", + "fm_creation": "Създаване", + "fm_forbidden": "Забранено действие", + "fm_originalPath": "Оригинален път", + "fm_openParent": "Покажи в папката", + "fm_noname": "Неозаглавен документ", + "fm_emptyTrashDialog": "Сигурни ли сте, че искате да изпразните кошчето?", + "fm_removeSeveralPermanentlyDialog": "Сигурни ли сте, че искате да премахнете тези {0} елемента от диска си? Те ще останат в дисковете на други потребители, които са ги съхранили.", + "fm_removePermanentlyDialog": "Сигурни ли сте, че искате да премахнете този елемент от вашето устройство? Той ще остане в дисковете на други потребители, които са го съхранили.", + "fm_deleteOwnedPad": "Сигурни ли сте, че искате да унищожите окончателно този документ?", + "fm_selectError": "Не може да се избере целевият елемент. Ако проблемът продължава, опитайте да презаредите страницата.", + "fm_unknownFolderError": "Избраната или последно посетената директория вече не съществува. Отваряне на родителската папка...", + "fm_contextMenuError": "Не може да се отвори контекстното меню за този елемент. Ако проблемът продължава, опитайте да презаредите страницата.", + "fm_categoryError": "Не може да се отвори избраната категория, показва се основната категория.", + "fm_info_root": "Създайте толкова вложени папки тук, колкото искате, за да сортирате вашите файлове.", + "fm_info_recent": "Тези документи наскоро са били отваряни или променени от вас или хора, с които си сътрудничите.", + "fm_info_trash": "Изпразнете кошчето си, за да освободите място във вашия CryptDrive.", + "fm_info_owned": "Вие сте собственик на показаните тук документи. Това означава, че можете да ги премахнете за постоянно от сървъра, когато пожелаете. Ако го направите, другите потребители вече няма да имат достъп до тях.", + "fm_error_cantPin": "Грешка на сървъра. Моля, презаредете страницата и опитайте отново.", + "fm_viewListButton": "Списъчен изглед", + "fm_viewGridButton": "Мрежов изглед", + "fm_renamedPad": "Задали сте персонализирано име за този документ. Споделеното му заглавие е:
      {0}", + "fm_canBeShared": "Тази папка може да бъде споделена", + "fm_prop_tagsList": "Тагове", + "fm_info_template": "Тези документи се съхраняват като шаблони. Те могат да се използват повторно при създаване на нови документи.", + "fm_info_anonymous": "Не сте влезли, така че документите ви ще изтекат след това {0} дни. Изчистването на хронологията на вашия браузър може да ги накара да изчезнат.
      Регистрирай се (не се изисква лична информация) или Влизане за да ги съхранявате във вашето устройство за неопределено време. Прочетете повече за регистрираните акаунти.", + "fm_info_sharedFolder": "Това е споделена папка. Не сте влезли, така че имате достъп до нея само в режим само за четене.
      Регистрация или Влизане за да можете да го импортирате във вашия CryptDrive и да го променяте.", + "fm_burnThisDriveButton": "Изтрийте цялата информация, съхранена от CryptPad във вашия браузър" } From 28923a0b5e9ecb8bd23fe94c9d98de7478f89bc3 Mon Sep 17 00:00:00 2001 From: Weblate Date: Fri, 3 Nov 2023 14:26:36 +0100 Subject: [PATCH 46/73] Translated using Weblate (Catalan) Currently translated at 65.0% (1085 of 1667 strings) Translated using Weblate (Catalan) Currently translated at 58.9% (983 of 1667 strings) Co-authored-by: Artur V Co-authored-by: Weblate Translate-URL: https://weblate.cryptpad.org/projects/cryptpad/app/ca/ Translation: CryptPad/App --- www/common/translations/messages.ca.json | 163 ++++++++++++++--------- 1 file changed, 102 insertions(+), 61 deletions(-) diff --git a/www/common/translations/messages.ca.json b/www/common/translations/messages.ca.json index e6a916fad..8485bdf19 100644 --- a/www/common/translations/messages.ca.json +++ b/www/common/translations/messages.ca.json @@ -59,10 +59,10 @@ "upgradeAccount": "Millora el compte", "MB": "MB", "GB": "GB", - "KB": "KB", + "KB": "kB", "formattedMB": "{0} MB", "formattedGB": "{0} GB", - "formattedKB": "{0} KB", + "formattedKB": "{0} kB", "pinLimitReached": "Heu arribat al límit de l'emmagatzematge", "pinLimitReachedAlert": "Heu arribat al límit de l'emmagatzematge. Els documents nous no es desaran al vostre CryptDrive.
      Podeu eliminar-hi documents o adquirir una oferta prèmium per a augmentar l'espai.", "pinLimitReachedAlertNoAccounts": "Heu arribat al límit de l'emmagatzematge", @@ -583,8 +583,8 @@ "properties_passwordError": "S'ha produït un error en intentar canviar la contrasenya. Torneu-ho a provar.", "properties_passwordWarning": "La contrasenya s'ha canviat correctament, però no hem pogut actualitzar el vostre CryptDrive amb les noves dades. És possible que hàgiu d'eliminar manualment la versió antiga del document.
      Premeu D'acord per a tornar a carregar i actualitzar els vostres drets d'accés.", "share_linkCategory": "Enllaç", - "share_linkEdit": "Edita", - "share_linkView": "Mostra", + "share_linkEdit": "Edició", + "share_linkView": "Visualització", "properties_changePasswordButton": "Envia", "properties_passwordSuccess": "S'ha canviat la contrasenya amb èxit.
      Premeu D'acord per a tornar a carregar i actualitzar el vostres drets d'accés.", "share_linkPresent": "Present", @@ -592,7 +592,7 @@ "share_linkOpen": "Obre l'enllaç", "share_linkCopy": "Copia l'enllaç", "share_contactCategory": "Contactes", - "share_embedCategory": "Incrusta", + "share_embedCategory": "Integració", "share_linkEmbed": "Mode incrustat (amaga la barra d'eines i la llista d'usuaris)", "share_mediatagCopy": "Copia l'etiqueta multimèdia al porta-retalls", "sharedFolders_duplicate": "Alguns dels documents que intenteu moure ja estaven compartits a la carpeta de destinació.", @@ -625,7 +625,7 @@ "form_poll_text": "Text", "form_poll_day": "Dia", "settings_safeLinksTitle": "Enllaços segurs", - "dontShowAgain": "No tornis a mostrar", + "dontShowAgain": "No ho tornis a mostrar", "crowdfunding_button2": "Donació", "form_poll_switch": "Intercanvia els eixos", "admin_broadcastTitle": "Missatge de difusió", @@ -684,8 +684,8 @@ "error_incorrectAccess": "Aquesta pàgina només es pot accedir via {0}.", "snapshots_close": "Tanca", "calendar_days": "Dies", - "contacts_unmute": "Activa el silenci", - "team_invitePasswordLoading": "S'està desencriptant la invitació", + "contacts_unmute": "Activa el so", + "team_invitePasswordLoading": "S'està desxifrant la invitació", "historyTrim_contentsSize": "Contingut: {0}", "settings_trimHistoryTitle": "Suprimeix l'historial", "form_notAnswered": "{0} respostes buides", @@ -697,12 +697,12 @@ "timeoutError": "Un error ha trencat la connexió amb el servidor.
      Premeu Esc per tornar a carregar la pàgina.", "admin_diskUsageTitle": "Ús del disc", "admin_diskUsageButton": "Genera l'informe", - "oo_sheetMigration_complete": "Hi ha disponible una versió actualitzada, premeu D'acord per a tornar a carregar.", + "oo_sheetMigration_complete": "Hi ha disponible una versió actualitzada, premeu D'acord per a recarregar.", "form_invalidQuestion": "Pregunta {0}", "pad_settings_comments": "Trieu si els comentaris han de ser visibles o ocults per defecte.", "calendar_notifications": "Recordatoris", "autostore_file": "fitxer", - "team_inviteInvalidLinkError": "Aquest enllaç d'invitació no és vàlid.", + "team_inviteInvalidLinkError": "L'enllaç d'invitació no és vàlid.", "team_inviteLinkError": "S'ha produït un error en crear l'enllaç.", "oo_exportInProgress": "Exportació en curs", "notification_folderSharedTeam": "{0} ha compartit una carpeta amb l'equip {2}: {1}", @@ -772,7 +772,7 @@ "og_pricing": "{0} Puntuació", "og_features": "{0} característiques", "fm_rmFilter": "Suprimeix el filtre", - "team_invitePleaseLogin": "Inicieu sessió o registreu-vos per acceptar aquesta invitació.", + "team_invitePleaseLogin": "Inicieu la sessió o registreu-vos per a acceptar la invitació.", "calendar_rec_daily": "Diàriament", "calendar_rec_weekly": "Setmanalment a {0}", "calendar_rec_edit_all": "Edita tots els esdeveniments", @@ -846,41 +846,41 @@ "pad_wordCount": "Paraules: {0}", "share_linkWarning": "Aquest enllaç conté les claus del document. Els destinataris tindran accés no revocable al vostre contingut.", "share_copyProfileLink": "Copia l'enllaç del perfil", - "share_noContactsNotLoggedIn": "Inicieu sessió o registreu-vos per veure els vostres contactes existents i afegir-ne de nous.", + "share_noContactsNotLoggedIn": "Inicieu sessió o registreu-vos per a veure els contactes existents i afegir-ne de nous.", "team_inviteLinkTempName": "Nom temporal (visible a la llista d'invitacions pendents)", "team_inviteLinkSetPassword": "Protegeix l'enllaç amb una contrasenya (recomanat)", "team_inviteLinkLoading": "S'està generant l'enllaç", "team_inviteFromMsg": "{0} us ha convidat a unir-vos a l'equip {1}", "team_inviteGetData": "S'estan obtenint les dades de l'equip", - "team_cat_link": "Enllaç a la invitació", + "team_cat_link": "Enllaç d'invitació", "burnAfterReading_proceed": "mostra i suprimeix", - "burnAfterReading_warningDeleted": "Aquest document s'ha suprimit permanentment, un cop tanqueu aquesta finestra no podreu accedir-hi de nou.", + "burnAfterReading_warningDeleted": "El document s'ha suprimit permanentment, un cop tanqueu aquesta finestra no podreu accedir-hi de nou.", "imprint": "Avís legal", - "profile_login": "Heu d'iniciar sessió per afegir aquest usuari als vostres contactes", + "profile_login": "Heu d'iniciar sessió per a afegir aquest usuari als vostres contactes", "historyTrim_historySize": "Historial: {0}", "trimHistory_button": "Suprimeix l'historial", "trimHistory_getSizeError": "Error en calcular la mida de l'historial de la unitat", - "settings_trimHistoryHint": "Deseu l'espai d'emmagatzematge suprimint l'historial de la unitat i les notificacions. Això no afectarà la història dels vostres documents. Podeu suprimir l'historial de documents al diàleg de propietats.", + "settings_trimHistoryHint": "Estalvieu espai d'emmagatzematge suprimint l'historial de la unitat i les notificacions. Això no afectarà l'historial de documents. Podeu suprimir l'historial de documents al diàleg de propietats.", "makeACopy": "Fes una còpia", "copy_title": "{0} (còpia)", "access_allow": "Llista", "accessButton": "Accés", - "restrictedError": "No esteu autoritzats a accedir a aquest document", + "restrictedError": "No esteu autoritzat a accedir a aquest document", "contacts": "Contactes", "access_noContact": "No hi ha cap altre contacte per afegir", "allow_checkbox": "Habilita la llista d'accés", "allow_enabled": "habilitat", - "owner_text": "El/s propietari/s d'un document són els únics usuaris autoritzats a: afegir/eliminar propietaris, restringir l'accés al document amb una llista d'accés o suprimir el document.", + "owner_text": "Els propietaris d'un document són els únics usuaris autoritzats a: afegir/eliminar propietaris, restringir l'accés al document amb una llista d'accés o suprimir el document.", "kanban_color": "Color", "kanban_delete": "Suprimeix", "kanban_tags": "Filtra per etiqueta", - "cba_hint": "Aquest paràmetre es recordarà quan creeu el document següent.", + "cba_hint": "Aquest paràmetre es recordarà quan creeu el pròxim document.", "comments_deleted": "Comentari suprimit pel seu autor", "comments_reply": "Respon", "comments_resolve": "Resol", - "comments_comment": "Comentari", + "comments_comment": "Comenta", "fm_sort": "Ordena", - "user_about": "Quant a CryptPad", + "user_about": "Quant al CryptPad", "support_cat_account": "Compte d'usuari", "support_cat_data": "Pèrdua de contingut", "support_cat_bug": "Informe d'error", @@ -889,7 +889,7 @@ "oo_refresh": "Refresca", "fm_restricted": "No teniu accés", "settings_kanbanTagsTitle": "Filtre d'etiquetes", - "settings_kanbanTagsAnd": "I", + "settings_kanbanTagsAnd": "AND", "history_cantRestore": "Ha fallat la restauració. Està desconnectat.", "history_fastPrev": "Sessió d'edició anterior", "history_userNext": "Autor següent", @@ -951,7 +951,7 @@ "form_condition_has": "ha", "form_condition_hasnot": "no té", "form_conditional_add": "Afegeix o condició", - "error_embeddingDisabledSpecific": "La incrustació està desactivada per a aquesta aplicació CryptPad.", + "error_embeddingDisabledSpecific": "La incrustació està desactivada en aquesta aplicació CryptPad.", "footer_website": "Lloc web del projecte", "notification_openLink": "Heu rebut un enllaç {0} de {1}:", "fm_link_new": "Enllaç nou", @@ -980,7 +980,7 @@ "owner_add": "{0} vol que sigueu propietari del document {1}. Ho accepteu?", "owner_team_add": "{0} vol que sigueu propietari/a de l'equip {1}. Accepteu?", "sent": "Missatge enviat", - "contacts_manageMuted": "Gestiona silenciat", + "contacts_manageMuted": "Gestiona els silenciats", "oo_deletedVersion": "Aquesta versió ja no existeix a la història.", "form_anonymized": "Les respostes són anònimes", "pad_settings_show": "Mostra", @@ -1017,7 +1017,7 @@ "team_inviteModalButton": "Convida", "home_morestorage": "Per a més espai d'emmagatzematge:", "admin_reportContent": "Contingut de l'informe", - "team_avatarHint": "Mida màxima de 500 KB (png, jpg, jpeg, gif)", + "team_avatarHint": "Mida màxima de 500 kB (png, jpg, jpeg, gif)", "form_condition_isnot": "no és", "admin_getRawMetadata": "Historial de metadades", "canvas_brush": "Pinzell", @@ -1046,9 +1046,9 @@ "share_embedPasswordAlert": "Aquest element està protegit amb contrasenya. Quan incrusteu aquest document, es demanarà la contrasenya als espectadors.", "passwordFaqLink": "Més informació sobre les contrasenyes", "share_noContactsLoggedIn": "Encara no esteu connectat amb ningú a CryptPad. Compartiu l'enllaç al vostre perfil perquè la gent us enviï sol·licituds de contacte.", - "cba_disable": "Neteja i inhabilita", + "cba_disable": "Esborra i inhabilita", "cba_show": "Mostra els colors de l'autor", - "settings_kanbanTagsOr": "O", + "settings_kanbanTagsOr": "OR", "share_bar": "Crea un enllaç", "admin_archiveInput": "URL del document", "calendar_deleteConfirm": "Esteu segur que voleu suprimir aquest calendari del vostre compte?", @@ -1252,37 +1252,37 @@ "team_inviteLinkTitle": "Crea una invitació personalitzada a aquest equip", "team_inviteLinkNote": "Afegeix un missatge personal", "team_inviteLinkNoteMsg": "Aquest missatge es mostrarà abans que el destinatari decideixi si s'ha d'unir a aquest equip.", - "team_inviteLinkWarning": "Les persones que accedeixin a aquest enllaç podran unir-se a aquest equip i veure el seu contingut. Compartiu-ho amb cura.", + "team_inviteLinkWarning": "Les persones que accedeixin a aquest enllaç podran unir-se a l'equip i veure el seu contingut. Compartiu-ho amb cura.", "team_inviteLinkErrorName": "Afegiu un nom per a la persona que esteu convidant. Poden canviar-ho més tard. ", "team_inviteLinkCreate": "Crea un enllaç", "team_inviteLinkCopy": "Copia l'enllaç", - "team_inviteEnterPassword": "Introduïu la contrasenya d'invitació per continuar.", - "team_inviteJoin": "Uneix-te a l'equip", + "team_inviteEnterPassword": "Introduïu la contrasenya d'invitació per a continuar.", + "team_inviteJoin": "Afegeix-me a l'equip", "team_inviteTitle": "Invitació a l'equip", "team_links": "Enllaços d'invitació", - "team_inviteFrom": "Des de:", - "burnAfterReading_linkBurnAfterReading": "Mostra una vegada i autodestrueix", - "burnAfterReading_warningLink": "Heu establert aquest document a autodestrucció. Un cop un destinatari visiti aquest enllaç, podrà veure el document una vegada abans de suprimir-lo permanentment.", - "burnAfterReading_generateLink": "Feu clic al botó de sota per generar un enllaç.", + "team_inviteFrom": "De:", + "burnAfterReading_linkBurnAfterReading": "Visualització d'una vegada i autodestrucció", + "burnAfterReading_warningLink": "Heu activat l'autodestrucció del document. Quan un destinatari visiti l'enllaç, podrà veure el document només una vegada, abans que se suprimeixi permanentment.", + "burnAfterReading_generateLink": "Feu clic al botó de sota per a generar un enllaç.", "admin_openFilesHint": "Nombre de descriptors de fitxers oberts actualment al servidor.", "canvas_select": "Selecciona", - "burnAfterReading_warningAccess": "Aquest document s'autodestruirà. Quan feu clic al botó de sota, veureu el contingut una vegada abans de suprimir-lo permanentment. Quan tanqueu aquesta finestra no podreu accedir-hi de nou. Si no esteu preparat per a continuar, podeu tancar aquesta finestra i tornar més tard.", - "oo_invalidFormat": "Aquest fitxer no es pot importar", + "burnAfterReading_warningAccess": "Aquest document s'autodestruirà. En fer clic al botó de sota, veureu el contingut només una vegada, abans que es suprimeixi permanentment. En tancar aquesta finestra, no podreu accedir-hi de nou. Si no esteu preparat per a continuar, podeu tancar aquesta finestra i tornar més tard.", + "oo_invalidFormat": "No es pot importar aquest fitxer", "oo_importInProgress": "Importació en curs", - "oo_sheetMigration_loading": "Actualitzar el document a la darrera versió. Esperi aproximadament un minut.", + "oo_sheetMigration_loading": "S'està actualitzant el document a la darrera versió. Espereu aproximadament un minut.", "oo_sheetMigration_anonymousEditor": "Aquest document requereix una actualització. L'edició està desactivada per a visitants fins que un usuari registrat l'obri.", - "settings_cat_security": "Confidencialitat", + "settings_cat_security": "Seguretat i privadesa", "settings_safeLinksCheckbox": "Activa els enllaços segurs", - "safeLinks_error": "Aquest enllaç s'ha copiat des de la barra d'adreces del navegador i no proporciona accés al document. Utilitzeu el menú Comparteix per compartir directament amb els contactes o copiar l'enllaç. Llegiu més sobre la característica Enllaços segurs.", - "settings_safeLinksHint": "CryptPad inclou les claus per a desencriptar els documents en els seus enllaços. Qualsevol persona amb accés al vostre historial de navegació pot llegir les vostres dades. Això inclou extensions intrusives del navegador i navegadors que sincronitzen el vostre historial entre dispositius. Si activeu «enllaços segurs», les claus no entraran a l'historial de navegació o es mostraran a la barra d'adreces sempre que sigui possible. Us recomanem que habiliteu aquesta funció i utilitzeu el menú {0} Compartició per generar enllaços compartibles.", - "areYouSure": "N'estàs segur?", + "safeLinks_error": "Aquest enllaç s'ha copiat des de la barra d'adreces del navegador i no proporciona accés al document. Utilitzeu el menú Comparteix per a compartir directament amb els contactes o copiar l'enllaç. Llegiu més sobre la característica Enllaços segurs.", + "settings_safeLinksHint": "CryptPad inclou en els seus enllaços les claus per a desxifrar els documents. Qualsevol persona amb accés al vostre historial de navegació podria llegir les vostres dades. Això inclou extensions del navegador intrusives i navegadors que sincronitzen el vostre historial entre dispositius. Si activeu «enllaços segurs», les claus no entraran a l'historial de navegació ni es mostraran a la barra d'adreces, sempre que sigui possible. Us recomanem que habiliteu aquesta funció i utilitzeu el menú {0} Compartició per generar enllaços compartibles.", + "areYouSure": "N'esteu segur?", "trimHistory_error": "Error en suprimir l'historial", "trimHistory_success": "S'ha suprimit l'historial", - "trimHistory_needMigration": "Si us plau, actualitzeu el vostre CryptDrive per activar aquesta característica.", + "trimHistory_needMigration": "Actualitzeu el vostre CryptDrive per a activar aquesta característica.", "trimHistory_currentSize": "Mida actual de l'historial: {0}", "trimHistory_noHistory": "No es pot suprimir cap historial", "access_main": "Accés", - "allow_disabled": "desactivat", + "allow_disabled": "deshabilitat", "allow_label": "Llista d'accés: {0}", "access_muteRequests": "Silencia les sol·licituds d'accés per a aquest document", "logoutEverywhere": "Tanca la sessió a tot arreu", @@ -1291,23 +1291,23 @@ "kanban_title": "Títol", "kanban_body": "Contingut", "kanban_noTags": "Sense etiquetes", - "kanban_conflicts": "Edició actual:", - "kanban_clearFilter": "Neteja el filtre", + "kanban_conflicts": "Editant actualment:", + "kanban_clearFilter": "Esborra el filtre", "kanban_editCard": "Edita aquesta targeta", "kanban_editBoard": "Edita aquest tauler", "oo_isLocked": "s'estan sincronitzant els canvis, espereu", "profile_copyKey": "Copia la clau pública", "admin_openFilesTitle": "Obre fitxers", - "oo_login": "Inicieu sessió o registreu-vos per millorar el rendiment dels fulls de càlcul.", + "oo_login": "Inicieu sessió o registreu-vos per a millorar el rendiment dels fulls de càlcul.", "cba_title": "Colors de l'autor", - "comments_notification": "Respostes al vostre comentari \"{0}\" a {1}", + "comments_notification": "Respostes al vostre comentari «{0}» a {1}", "unknownPad": "Document desconegut", "mentions_notification": "{0} us ha mencionat a {1}", "settings_padNotifTitle": "Notificacions de comentaris", "settings_padNotifHint": "Ignora les notificacions quan algú respongui a un dels vostres comentaris", "settings_padNotifCheckbox": "Desactiva les notificacions de comentaris", "comments_error": "No es pot afegir un comentari aquí", - "todo_move": "La vostra llista de tasques pendents es troba ara al kanban {0} al vostre Drive.", + "todo_move": "La vostra llista de tasques pendents es troba ara al kanban {0} a la vostra Unitat.", "toolbar_theme": "Tema", "toolbar_savetodrive": "Desa com a imatge", "toolbar_tools": "Eines", @@ -1315,20 +1315,20 @@ "toolbar_file": "Fitxer", "slide_backCol": "Color de fons", "slide_textCol": "Color del text", - "support_languagesPreamble": "L'equip de suport parla els següents idiomes:", - "settings_safeLinkDefault": "Els enllaços segurs estan activats per defecte. Utilitzeu el menú Comparteix per copiar enllaços en lloc de la barra d'adreces del navegador.", - "info_imprintFlavour": "Informació legal sobre els administradors d'aquesta instància", - "info_privacyFlavour": "Política de privadesa per a aquest cas", + "support_languagesPreamble": "L'equip d'assistència parla les llengües següents:", + "settings_safeLinkDefault": "Els enllaços segurs estan activats per defecte. Utilitzeu el menú Comparteix per a copiar enllaços en lloc de la barra d'adreces del navegador.", + "info_imprintFlavour": "Informació legal sobre l'administració d'aquesta instància", + "info_privacyFlavour": "Política de privadesa d'aquesta instància", "support_cat_all": "Tots", "support_attachments": "Adjunts", "support_addAttachment": "Afegeix un adjunt", "notification_padSharedTeam": "{0} ha compartit un document amb l'equip {2}: {1}", "support_category": "Trieu una categoria", "support_formCategoryError": "Error: la categoria està buida", - "fm_emptyTrashOwned": "La paperera conté documents propis. Podeu eliminar només del vostre cotxe, o destruir per a tots els usuaris.", + "fm_emptyTrashOwned": "La paperera conté documents propis. Podeu eliminar-los només de la vostra unitat, o destruir-los per a tots els usuaris.", "fm_noResult": "No s'ha trobat cap resultat", "pad_tocHide": "Contorn", - "settings_kanbanTagsHint": "Seleccioneu com voleu que actuï el filtre d'etiquetes quan seleccioneu múltiples etiquetes: només mostra les cartes que continguin totes les etiquetes seleccionades (AND) o mostra les cartes que continguin qualsevol de les etiquetes seleccionades (OR)", + "settings_kanbanTagsHint": "Seleccioneu com voleu que actuï el filtre d'etiquetes en seleccionar múltiples etiquetes: que mostri només les targetes que continguin totes les etiquetes seleccionades (AND) o que mostri les targetes que continguin qualsevol de les etiquetes seleccionades (OR)", "settings_cat_kanban": "Kanban", "history_restore": "Restaura", "history_close": "Tanca", @@ -1372,7 +1372,7 @@ "fileTableHeader": "Baixades i pujades", "download_zip_file": "Fitxer {0}/{1}", "settings_mediatagSizeTitle": "Límit automàtic de baixades", - "settings_mediatagSizeHint": "Mida màxima en megabytes (MB) per a carregar automàticament elements multimèdia (imatges, vídeos, pdf) incrustats en documents. Els elements més grans que la mida especificada es poden carregar manualment. Utilitzeu «-1» per a carregar sempre els elements multimèdia automàticament.", + "settings_mediatagSizeHint": "Mida màxima en megabytes (MB) per a carregar automàticament elements multimèdia (imatges, vídeos, PDF) incrustats als documents. Els elements més grans que la mida especificada es poden carregar manualment. Utilitzeu «-1» per a carregar sempre els elements multimèdia automàticament.", "history_trimPrompt": "Aquest document ha acumulat {0} historials que poden alentir el temps de càrrega. Penseu a suprimir la història si no és necessària.", "contacts_confirmCancel": "Segur que voleu cancel·lar la vostra sol·licitud de contacte amb {0}?", "admin_support_normal": "Tiquets sense resposta:", @@ -1383,7 +1383,7 @@ "admin_support_last": "Actualitzat el: ", "access_offline": "Actualment estàs fora de línia. La gestió de l'accés no està disponible.", "share_noContactsOffline": "Actualment estàs fora de línia. Els contactes no estan disponibles.", - "offlineError": "No s'han pogut sincronitzar les dades més recents, aquesta pàgina no es pot mostrar en aquest moment. La càrrega continuarà quan es restauri la connexió al servei.", + "offlineError": "No s'han pogut sincronitzar les dades més recents, la pàgina no es pot mostrar en aquest moment. La càrrega continuarà quan es restauri la connexió al servei.", "register_notes": "
      • La vostra contrasenya és la clau secreta que xifra tots els vostres documents. Si el perdeu no hi ha manera que puguem recuperar les vostres dades.
      • Si utilitzeu un ordinador compartit, recordeu tancar la sessióquan hàgiu acabat. Només tancar la finestra del navegador deixa exposat el vostre compte.
      • Per mantenir els documents que heu creat i/o emmagatzemat sense haver iniciat sessió, marqueu \"Importa documents de la sessió de convidat\".
      ", "register_warning_note": "A causa de la naturalesa encriptada de CryptPad, els administradors de serveis no podran recuperar dades en cas que oblideu el vostre nom d'usuari i/o contrasenya. Si us plau, guardeu-los en un lloc segur.", "creation_helperText": "Obre a la documentació", @@ -1539,7 +1539,7 @@ "support_warning_abuse": "Informeu del contingut que viola les condicions del servei. Proporcioneu enllaços als documents o perfils d'usuari infractors i descriviu com estan violant els termes. Qualsevol informació addicional sobre el context en què heu descobert el contingut o el comportament pot ajudar els administradors a prevenir futures violacions", "support_warning_other": "Quina és la naturalesa de la seva consulta? Si us plau, proporcioni la màxima informació rellevant possible per a facilitar-nos que abordem la seva qüestió ràpidament", "support_cat_document": "Document", - "ui_openDirectly": "Aquesta funcionalitat no està disponible quan CryptPad està incrustada en un altre lloc web. Voleu obrir aquest document en una pestanya nova?", + "ui_openDirectly": "Aquesta funcionalitat no està disponible si el CryptPad està incrustat en un altre lloc web. Voleu obrir el document en una pestanya nova?", "support_cat_debugging": "Depura les dades", "support_debuggingDataTitle": "Informació de depuració del compte", "fivehundred_internalServerError": "Error intern del servidor", @@ -1547,8 +1547,8 @@ "admin_infoNotice2": "Per a més detalls, vegeu la pestanya «Xarxa».", "admin_enableDiskMeasurementsHint": "Si s'habilita, s'exposarà un punt final de l'API JSON sota /api/profiling. Això manté una mesura en execució de l'E/S del disc dins de la finestra de temps establerta a continuació. Aquesta configuració pot afectar el rendiment del servidor i pot revelar dades sensibles. Es recomana deixar aquesta opció desactivada a menys que sapigueu el que esteu fent.", "admin_bytesWrittenTitle": "Finestra de mesura del rendiment del disc", - "admin_enableembedsHint": "Permet incrustar documents i suports d'aquesta instància en altres llocs web. Això afegirà una opció «Incrusta» al menú Comparteix. Per motius de seguretat, les aplicacions que utilitzen OnlyOffice (Fulls, Document, Presentació) no es poden incrustar encara que aquest paràmetre estigui actiu.", - "error_embeddingDisabled": "La incrustació està desactivada per a aquesta instància de CryptPad", + "admin_enableembedsHint": "Permet incrustar documents i elements multimèdia d'aquesta instància en altres llocs web. Això afegirà una opció «Incrusta» al menú Comparteix. Per motius de seguretat, les aplicacions que utilitzen OnlyOffice (Fulls, Document, Presentació) no es poden incrustar encara que aquest paràmetre estigui actiu.", + "error_embeddingDisabled": "La incrustació està desactivada en aquesta instància del CryptPad", "error_evalPermitted": "S'interromp perquè no s'ha de permetre l'eval.\n\nAquest error està vinculat a les capçaleres Content-Security-Policy, podria ser degut a: un navegador obsolet que no els admet, extensions de navegador que interfereixen amb el seu comportament correcte, o una configuració incorrecta d'aquesta instància de CryptPad.", "ui_experimental": "Aquesta característica es considera experimental.", "admin_noticeTitle": "Avís de la pàgina d'inici", @@ -1624,7 +1624,48 @@ "recovery_mfa_secret_ph": "Codi de recuperació", "settings_removeOwnedButton": "Destrueix els documents propis", "settings_removeOwnedText": "Espereu mentre es destrueixen els vostres documents...", - "recovery_mfa_description": "Si heu perdut l'accés al vostre mètode de verificació en dos factors, podeu desactivar el 2FA del vostre compte utilitzant el codi de recuperació. Comenceu introduint usuari i contrasenya:", + "recovery_mfa_description": "Si heu perdut l'accés al mètode de verificació en dos factors, podeu desactivar el 2FA del vostre compte utilitzant el codi de recuperació. Comenceu introduint usuari i contrasenya:", "recovery_mfa_secret": "Introduïu el codi de recuperació per a desactivar el 2FA del vostre compte:", - "recovery_mfa_error": "Error desconegut. Recarregueu i torneu a provar." + "recovery_mfa_error": "Error desconegut. Recarregueu i torneu a provar.", + "goRight": "Dreta", + "label_logo": "Logo de CryptPad", + "login_notFilledUser": "Introduïu un nom d'usuari", + "login_notFilledPass": "Introduïu una contrasenya", + "goLeft": "Esquerra", + "calendar_settings": "Configuració del calendari", + "context_menu": "Accions de carpeta", + "date": "Data", + "label_viewMode": "Commuta el mode de visualització", + "team_nameAlreadySet": "Ja s'ha definit el nom de l'equip com a {0}", + "team_nameTooLong": "El nom de l'equip és massa llarg (màx. 50 caràcters)", + "selectLanguage": "Trieu una llengua", + "dph_reason": "Raó: {0}", + "dph_sf_pw": "La carpeta compartida {0} s'ha protegit amb una contrasenya nova. Introduïu-la per a accedir-hi o eliminar la carpeta de la vostra unitat.", + "dph_sf_destroyed": "Un propietari ha destruït la carpeta compartida {0}", + "admin_archiveAccount": "Arxiva aquest compte", + "admin_archiveAccountInfo": "Incloent els documents que té en propietat", + "admin_archiveAccountConfirm": "Especifiqueu la raó de l'arxivament, es mostrarà a l'usuari.", + "admin_accountSuspended": "L'administració ha arxivat el compte", + "admin_restoreAccount": "Restaura aquest compte", + "admin_accountReport": "Informe d'arxivament del compte", + "admin_accountReportFull": "Informe detallat", + "dph_default": "El contingut ja no es troba disponible", + "admin_channelPlaceholder": "Marcador de posició del document destruït", + "dph_account_destroyed": "El propietari del compte l'ha eliminat", + "dph_account_inactive": "El compte s'ha eliminat per inactivitat", + "dph_account_moderated": "L'equip de moderació ha suspès el compte", + "dph_pad_destroyed": "Un propietari ha destruït aquest document", + "dph_account_pw": "La contrasenya d'aquest compte s'ha canviat", + "dph_pad_inactive": "El document s'ha eliminat per inactivitat", + "dph_pad_moderated": "L'equip de moderació ha eliminat aquest document", + "dph_pad_moderated_account": "El document s'ha eliminat per pertànyer a un compte suspès", + "dph_tmp_destroyed": "Un propietari ha destruït aquesta plantilla", + "dph_tmp_moderated": "L'equip de moderació ha eliminat la plantilla", + "dph_tmp_moderated_account": "La plantilla s'ha eliminat per pertànyer a un compte suspès", + "dph_tmp_pw": "La plantilla s'ha protegit amb una contrasenya nova. Obriu-la des de la vostra unitat per a introduir la contrasenya.", + "access_passwordUsed": "La contrasenya ja s'ha fet servir per a aquest document. No s'hi pot tornar a emprar.", + "status": "Pàgina d'estat", + "admin_diskUsageWarning": "Utilitzeu-ho amb precaució! Depenent de la mida de les dades emmagatzemades a la instància, generar aquest informe pot consumir tota la memòria disponible al servidor i originar una fallada.", + "dph_pad_pw": "El document s'ha protegit amb una contrasenya nova", + "dph_sf_destroyed_team": "Un propietari ha destruït la carpeta compartida {0} a la unitat de l'equip {1}" } From 4e8e8222db57e92e65a0f5858e15600fb92fa34e Mon Sep 17 00:00:00 2001 From: Weblate Date: Fri, 3 Nov 2023 14:26:36 +0100 Subject: [PATCH 47/73] Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.5% (1660 of 1667 strings) Co-authored-by: William Weber Berrutti Translate-URL: https://weblate.cryptpad.org/projects/cryptpad/app/pt_BR/ Translation: CryptPad/App --- www/common/translations/messages.pt-br.json | 45 ++++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/www/common/translations/messages.pt-br.json b/www/common/translations/messages.pt-br.json index e9ae3bc7f..7159d8b03 100644 --- a/www/common/translations/messages.pt-br.json +++ b/www/common/translations/messages.pt-br.json @@ -1619,12 +1619,53 @@ "admin_documentMetadataHint": "Consultar um documento ou arquivo por meio de seu id ou URL", "admin_blockMetadataHint": "O bloco de login é o que permite que uma conta faça login no CryptPad com a combinação de nome de usuário + senha", "admin_pinLogAvailable": "Log do pin está disponível", - "recovery_mfa_description": "Se você perdeu o acesso ao seu método de autenticação de dois fatores, pode desativar o 2FA para sua conta usando seu código de recuperação. Por favor, comece digitando seu login e senha:", + "recovery_mfa_description": "Se você perdeu o acesso ao seu método de autenticação de dois fatores, pode desativar o 2FA para sua conta usando seu código de recuperação. Por favor, comece digitando seu usuário e senha:", "recovery_mfa_secret": "Insira seu código de recuperação para desativar o 2FA para sua conta:", "recovery_forgot": "Esqueci o código de recuperação", "recovery_forgot_text": "Copie as seguintes informações e envie-as por e-mail para seus administradores de instância", "recovery_mfa_disabled": "A autenticação multifator já está desativada para esta conta.", "admin_totpRecoveryHint": "Os usuários podem copiar os dados de recuperação na página de recuperação 2FA /recovery/ e enviá-los por e-mail aos administradores da instância. Cole os dados de recuperação abaixo para desativar o 2FA para uma conta", "loading_recover": "Não é possível obter um código? Recupere sua conta", - "admin_restoreReason": "Especifique o motivo da restauração e confirme que deseja prosseguir" + "admin_restoreReason": "Especifique o motivo da restauração e confirme que deseja prosseguir", + "label_logo": "Logo do CryptPad", + "login_notFilledPass": "Por favor preencha uma senha", + "login_notFilledUser": "Por favor preencha um nome de usuário", + "calendar_settings": "Configurações de Calendário", + "date": "Data", + "label_viewMode": "Mudar modo de visualização", + "context_menu": "Ações de pasta", + "team_nameTooLong": "Nome da equipe muito longo (máximo 50 caracteres)", + "selectLanguage": "Selecione uma linguagem", + "team_nameAlreadySet": "O nome da equipe já está definido como {0}", + "dph_reason": "Razão: {0}", + "dph_sf_pw": "A pasta compartilhada {0} está protegida com uma nova senha. Digite a nova senha para acessar ou remover esta pasta do seu drive.", + "dph_sf_destroyed": "A pasta compartilhada {0} foi destruída por um proprietário", + "dph_sf_destroyed_team": "A pasta compartilhada {0} no drive de equipe {1} foi destruída por um proprietário", + "admin_archiveAccountInfo": "Incluindo seus documentos de propriedade", + "admin_archiveAccount": "Arquivar esta conta", + "admin_archiveAccountConfirm": "Especifique o motivo do arquivamento, isso será mostrado ao usuário.", + "admin_restoreAccount": "Restaurar esta conta", + "admin_accountSuspended": "A conta foi arquivada por um administrador", + "admin_accountReportFull": "Obter relatório detalhado", + "admin_accountReport": "Relatório de arquivo da conta", + "admin_channelPlaceholder": "Espaço reservado para documento destruído", + "dph_default": "Este conteúdo não está mais disponível", + "dph_account_inactive": "Esta conta foi excluída devido à inatividade", + "dph_account_destroyed": "Esta conta foi deletada pelo seu proprietário", + "dph_account_moderated": "Esta conta foi suspensa pela equipe de moderação", + "dph_account_pw": "A senha desta conta foi alterada", + "dph_pad_destroyed": "Este documento foi destruído por um proprietário", + "dph_pad_inactive": "Este documento foi excluído devido à inatividade", + "dph_pad_moderated": "Este documento foi excluído pela equipe de moderação", + "dph_pad_moderated_account": "Este documento foi excluído por pertencer a uma conta suspensa", + "dph_tmp_destroyed": "Este modelo foi destruído por um proprietário", + "dph_tmp_moderated": "Este modelo foi excluído pela equipe de moderação", + "dph_tmp_moderated_account": "Este modelo foi excluído por pertencer a uma conta suspensa", + "dph_tmp_pw": "Este modelo está protegido com uma nova senha. Abra-o em sua unidade para inserir a nova senha.", + "access_passwordUsed": "Esta senha já foi usada para este documento. Não pode ser usada novamente.", + "status": "Página de status", + "admin_diskUsageWarning": "Use com cuidado! Dependendo do tamanho dos dados armazenados na instância, a geração deste relatório pode consumir toda a memória disponível no servidor e causar travamento.", + "goRight": "Direita", + "dph_pad_pw": "Este documento está protegido por uma nova senha", + "goLeft": "Esquerda" } From 579f02abec75af4068a15fa9475a8ffad3d72cde Mon Sep 17 00:00:00 2001 From: Weblate Date: Fri, 3 Nov 2023 14:26:36 +0100 Subject: [PATCH 48/73] Translated using Weblate (Swedish) Currently translated at 99.9% (1666 of 1667 strings) Co-authored-by: Weblate Co-authored-by: carlbacker Translate-URL: https://weblate.cryptpad.org/projects/cryptpad/app/sv/ Translation: CryptPad/App --- www/common/translations/messages.sv.json | 46 ++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/www/common/translations/messages.sv.json b/www/common/translations/messages.sv.json index 0ff25ba6d..e8c903b0c 100644 --- a/www/common/translations/messages.sv.json +++ b/www/common/translations/messages.sv.json @@ -98,10 +98,10 @@ "pinLimitNotPinned": "Du har nått din lagringsgräns.
      Detta dokument är inte lagrat i din CryptDrive.", "pinLimitReachedAlertNoAccounts": "Du har nått din lagringsgräns", "pinLimitReached": "Du har nått din lagringsgräns", - "formattedKB": "{0} KB", + "formattedKB": "{0} kB", "formattedGB": "{0} GB", "formattedMB": "{0} MB", - "KB": "KB", + "KB": "kB", "GB": "GB", "MB": "MB", "storageStatus": "Lagring:
      {0} använd av {1}", @@ -1626,5 +1626,45 @@ "form_condorcetExtendedDisplay": "Antalet matcher vunna av varje kandidat: ", "form_noCondorcetWinner": "Ingen vinnare", "form_showCondorcetMethod": "Condorcet-metoden", - "admin_totpRecoveryHint": "Användare kan kopiera åsterställningsdata på sidan för 2FA-återställning /recovery/ och e-posta den till instansens administratörer. Klistra in återställningsdata nedan för att avaktivera 2FA för ett konto" + "admin_totpRecoveryHint": "Användare kan kopiera åsterställningsdata på sidan för 2FA-återställning /recovery/ och e-posta den till instansens administratörer. Klistra in återställningsdata nedan för att avaktivera 2FA för ett konto", + "goLeft": "Vänster", + "goRight": "Höger", + "label_logo": "CryptPad logotyp", + "login_notFilledUser": "Var god ange ett användarnamn", + "calendar_settings": "Kalenderinställningar", + "login_notFilledPass": "Var god ange ett lösenord", + "date": "Datum", + "label_viewMode": "Växla visningsläge", + "context_menu": "Mappåtgärder", + "team_nameTooLong": "Teamnamnet är för långt (max 50 tecken)", + "team_nameAlreadySet": "Teamnamnet är redan satt till {0}", + "dph_reason": "Anledning: {0}", + "selectLanguage": "Välj språk", + "dph_sf_pw": "Delad mapp {0} skyddas med ett nytt lösenord. Ange det nya lösenordet för att öppna eller ta bort mappen från din drive.", + "dph_sf_destroyed": "Delad mapp {0} makulerades av en ägare", + "dph_sf_destroyed_team": "Delad mapp {0} i team-drive {1} har makulerats av en ägare", + "admin_archiveAccount": "Arkivera det här kontot", + "admin_archiveAccountInfo": "Inklusive dess ägda dokument", + "admin_restoreAccount": "Återställ det här kontot", + "admin_archiveAccountConfirm": "Ange skäl för arkiveringen, detta kommer visas för användaren.", + "admin_accountSuspended": "Kontot arkiverat av administratör", + "admin_accountReportFull": "Hämta detaljerad rapport", + "admin_accountReport": "Rapport över kontoarkivering", + "dph_default": "Innehållet är inte längre tillgängligt", + "dph_account_destroyed": "Det här kontot raderades av ägaren", + "dph_account_moderated": "Det här kontot har spärrats av modereringsteamet", + "dph_account_inactive": "Det här kontot raderas pga inaktivitet", + "dph_account_pw": "Lösenordet för det här kontot har ändrats", + "dph_pad_destroyed": "Det här dokumentet makulerades av en ägare", + "dph_pad_inactive": "Det här dokumentet raderades efter inaktivitet", + "dph_pad_moderated": "Det här dokumentet raderades av modereringsteamet", + "dph_pad_moderated_account": "Det här dokumentet raderades då det tillhörde ett spärrat konto", + "dph_tmp_destroyed": "Den här mallen makulerades av en ägare", + "dph_tmp_moderated": "Den här mallen raderades av modereringsteamet", + "dph_tmp_moderated_account": "Den här mallen raderades då den tillhörde ett spärrat konto", + "dph_tmp_pw": "Den här mallen skyddas med ett nytt lösenord. Öppna den från din enhet för att ange det nya lösenordet.", + "access_passwordUsed": "Lösenordet har använts tidigare för det här dokumentet. Det kan inte återanvändas.", + "status": "Status-sida", + "admin_diskUsageWarning": "Använd med försiktighet! Beroende på storleken på de data som lagras på instansen kan generering av denna rapport använda allt tillgängligt minne på servern och leda till en krasch.", + "dph_pad_pw": "Det här dokumentet skyddas med ett nytt lösenord" } From 55c3a5584beef85dbecd909288a712dc7f294c8e Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Mon, 6 Nov 2023 16:56:09 +0100 Subject: [PATCH 49/73] #1306: Fix the reset after stopping a recurrence --- www/common/outer/calendar.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/www/common/outer/calendar.js b/www/common/outer/calendar.js index e10db796f..43645a52a 100644 --- a/www/common/outer/calendar.js +++ b/www/common/outer/calendar.js @@ -896,7 +896,14 @@ define([ if (['one','from'].includes(type.which) && !data.rawData.isOrigin) { cleanAfter(type.when); } else { - update = ev.recUpdate = RECUPDATE; + if (changes.recurrenceRule.until) { + // Remove changes after the last iteration + cleanAfter(changes.recurrenceRule.until); + } + if (changes.recurrenceRule === "") { + // Reset special cases when removing recurrence + update = ev.recUpdate = RECUPDATE; + } } } From 36499846c9bb1637e8457dbba287208e6d61a70f Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Mon, 6 Nov 2023 17:22:39 +0100 Subject: [PATCH 50/73] #1306: Consistent behavior when resuming recurrence --- www/common/outer/calendar.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/www/common/outer/calendar.js b/www/common/outer/calendar.js index 43645a52a..ea7a21a95 100644 --- a/www/common/outer/calendar.js +++ b/www/common/outer/calendar.js @@ -893,8 +893,9 @@ define([ // Update recurrence rule. We may create a new event here var dontSendUpdate = false; if (typeof(changes.recurrenceRule) !== "undefined") { - if (['one','from'].includes(type.which) && !data.rawData.isOrigin) { - cleanAfter(type.when); + if (type.which === "from" && !data.rawData.isOrigin) { + // Clean from the day after the event (it otherwise wipes too much) + cleanAfter(type.when + 86400000); } else { if (changes.recurrenceRule.until) { // Remove changes after the last iteration From e4efdca33d05560c4f6cd7ab194a725ac78f6cf7 Mon Sep 17 00:00:00 2001 From: David Benque Date: Wed, 8 Nov 2023 12:04:58 +0000 Subject: [PATCH 51/73] Fix event modal drop-downs They were being cut-off as per #1280 Thank you @ansuz for the fix --- www/calendar/app-calendar.less | 1 - 1 file changed, 1 deletion(-) diff --git a/www/calendar/app-calendar.less b/www/calendar/app-calendar.less index 6bb76cf8e..6b7a163c3 100644 --- a/www/calendar/app-calendar.less +++ b/www/calendar/app-calendar.less @@ -127,7 +127,6 @@ width: 540px; max-width: 100%; max-height: 100%; - overflow-y: auto; } } #tui-full-calendar-popup-arrow { From bcf33060f8d1c983698d6eee5f706c316f206ac1 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 9 Nov 2023 17:10:31 +0100 Subject: [PATCH 52/73] #1306: Cleaning up the code - Put special cases at the beginning of the conditional branching --- www/common/outer/calendar.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/www/common/outer/calendar.js b/www/common/outer/calendar.js index ea7a21a95..450b32602 100644 --- a/www/common/outer/calendar.js +++ b/www/common/outer/calendar.js @@ -893,18 +893,16 @@ define([ // Update recurrence rule. We may create a new event here var dontSendUpdate = false; if (typeof(changes.recurrenceRule) !== "undefined") { - if (type.which === "from" && !data.rawData.isOrigin) { - // Clean from the day after the event (it otherwise wipes too much) - cleanAfter(type.when + 86400000); + if (type.which === "all" && changes.recurrenceRule.until) { + // Remove changes after the last iteration + cleanAfter(changes.recurrenceRule.until); + } + else if (['one','from'].includes(type.which) && !data.rawData.isOrigin) { + // Start cleaning after the event (otherwise it resets the current event) + cleanAfter(type.when + 1); } else { - if (changes.recurrenceRule.until) { - // Remove changes after the last iteration - cleanAfter(changes.recurrenceRule.until); - } - if (changes.recurrenceRule === "") { - // Reset special cases when removing recurrence - update = ev.recUpdate = RECUPDATE; - } + // Else wipe everything + update = ev.recUpdate = RECUPDATE; } } From 17310c7deceb73cbeca5c69f5f7e9210550502dd Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 10 Nov 2023 14:31:55 +0100 Subject: [PATCH 53/73] #1261: fix the error upon importing template in forms Changes in the behaviour: - Load the parameter from allowing anonymous answers from templates - Load the parameter for enforcing anonymous answers from templates --- www/common/cryptpad-common.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index 3ab33e5b8..b466ddcdc 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -924,7 +924,14 @@ define([ delete meta.cursor; if (meta.type === "form") { + // Keep anonymous and makeAnonymous values from templates + var anonymous = parsed.answers.anonymous || false; + var makeAnonymous = parsed.answers.makeAnonymous || false; delete parsed.answers; + parsed.answers = { + anonymous: anonymous, + makeAnonymous: makeAnonymous + }; } } }; From 11d0b82424875261ca4a551bf615fb6cad9cf2a9 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 10 Nov 2023 15:43:19 +0100 Subject: [PATCH 54/73] #1261: fix a bug when importing a template in a form Changes done to avoid the creation of an invalid form (no answer channel upon importing a template). --- www/form/inner.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/www/form/inner.js b/www/form/inner.js index 624ce7d50..f3a30dde9 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -4539,6 +4539,20 @@ define([ var resultsStr = h('div'); var $results = $(resultsType); var refreshPublic = function () { + // Perform sanity check on refresh + // (for instance on template import) + if (APP.isEditor) { + if (!content.answers || !content.answers.channel || !content.answers.publicKey || !content.answers.validateKey) { + // Don't override other settings (anonymous, makeAnonymous, etc.) from templates + content.answers = content.answers || {}; + content.answers.channel = Hash.createChannelId(); + content.answers.publicKey = priv.form_public; + content.answers.validateKey = priv.form_answerValidateKey; + content.answers.version = 2; + framework.localChange(); + } + checkIntegrity(); + } $results.empty(); var makePublic = h('button.btn.btn-secondary', Messages.form_makePublic); var makePublicDiv = h('div.cp-form-actions', makePublic); From 5ff4d4893b4601094bdd69870233a59f77756a18 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 10 Nov 2023 15:55:36 +0100 Subject: [PATCH 55/73] #1261: error caught by linter --- www/form/inner.js | 1 - 1 file changed, 1 deletion(-) diff --git a/www/form/inner.js b/www/form/inner.js index f3a30dde9..ff7fb4327 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -4551,7 +4551,6 @@ define([ content.answers.version = 2; framework.localChange(); } - checkIntegrity(); } $results.empty(); var makePublic = h('button.btn.btn-secondary', Messages.form_makePublic); From 937c41aa496904595cbe3804c87c363390a32516 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 10 Nov 2023 16:25:25 +0100 Subject: [PATCH 56/73] Lint compliance ICAL.js is not a require.js module and doesn't export anything, should be anonyme. --- www/calendar/export.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/calendar/export.js b/www/calendar/export.js index 4d6c15768..7b6b4ceb5 100644 --- a/www/calendar/export.js +++ b/www/calendar/export.js @@ -4,8 +4,9 @@ define([ '/customize/pages.js', '/common/common-util.js', '/calendar/recurrence.js', + '/lib/ical.min.js' -], function (Pages, Util, Rec, ICAL) { +], function (Pages, Util, Rec) { var module = {}; var getICSDate = function (str) { From ccf0b108dece500f1768fe3c10d6a5203ba4698d Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 10 Nov 2023 16:27:26 +0100 Subject: [PATCH 57/73] calendar export: duplicate import of ical.js The module ical.js is now imported for the whole file and not just the import part (as it it used in the export as well). --- www/calendar/export.js | 275 ++++++++++++++++++++--------------------- 1 file changed, 136 insertions(+), 139 deletions(-) diff --git a/www/calendar/export.js b/www/calendar/export.js index 7b6b4ceb5..904eba6c2 100644 --- a/www/calendar/export.js +++ b/www/calendar/export.js @@ -108,9 +108,8 @@ define([ var formatDescription = function(str) { var componentName = 'DESCRIPTION:'; var result = componentName + str.replace(/\n/g, ["\\n"]); - var ICAL = window.ICAL; // In RFC5545: https://www.rfc-editor.org/rfc/rfc5545#section-3.1 - result = ICAL.helpers.foldline(result); + result = window.ICAL.helpers.foldline(result); return result; }; @@ -263,155 +262,153 @@ define([ }; module.import = function (content, id, cb) { - require(['/lib/ical.min.js'], function () { - var ICAL = window.ICAL; - var res = {}; + var ICAL = window.ICAL; + var res = {}; - var vcalendar; - try { - var jcalData = ICAL.parse(content); - vcalendar = new ICAL.Component(jcalData); - } catch (e) { - console.error(e); - return void cb(e); + var vcalendar; + try { + var jcalData = ICAL.parse(content); + vcalendar = new ICAL.Component(jcalData); + } catch (e) { + console.error(e); + return void cb(e); + } + + //var method = vcalendar.getFirstPropertyValue('method'); + //if (method !== "PUBLISH") { return void cb('NOT_SUPPORTED'); } + + // Add all timezones in iCalendar object to TimezoneService + // if they are not already registered. + var timezones = vcalendar.getAllSubcomponents("vtimezone"); + timezones.forEach(function (timezone) { + if (!(ICAL.TimezoneService.has(timezone.getFirstPropertyValue("tzid")))) { + ICAL.TimezoneService.register(timezone); + } + }); + + var events = vcalendar.getAllSubcomponents('vevent'); + events.forEach(function (ev) { + var uid = ev.getFirstPropertyValue('uid'); + if (!uid) { return; } + + // Get start and end time + var isAllDay = false; + var start = ev.getFirstPropertyValue('dtstart'); + var end = ev.getFirstPropertyValue('dtend'); + var duration = ev.getFirstPropertyValue('duration'); + if (!end && !duration) { + if (start.isDate) { + end = start.clone(); + end.adjust(1); // Add one day + } else { + end = start.clone(); + } + } else if (!end) { + end = start.clone(); + end.addDuration(duration); + } + if (start.isDate && end.isDate) { + isAllDay = true; + start = String(start); + end.adjust(-1); // Substract one day + end = String(end); + } else { + start = +start.toJSDate(); + end = +end.toJSDate(); } - //var method = vcalendar.getFirstPropertyValue('method'); - //if (method !== "PUBLISH") { return void cb('NOT_SUPPORTED'); } - - // Add all timezones in iCalendar object to TimezoneService - // if they are not already registered. - var timezones = vcalendar.getAllSubcomponents("vtimezone"); - timezones.forEach(function (timezone) { - if (!(ICAL.TimezoneService.has(timezone.getFirstPropertyValue("tzid")))) { - ICAL.TimezoneService.register(timezone); - } + // Store other properties + var used = ['dtstart', 'dtend', 'uid', 'summary', 'location', 'description', 'dtstamp', 'rrule', 'recurrence-id']; + var hidden = []; + ev.getAllProperties().forEach(function (p) { + if (used.indexOf(p.name) !== -1) { return; } + // This is an unused property + hidden.push(p.toICALString()); }); - var events = vcalendar.getAllSubcomponents('vevent'); - events.forEach(function (ev) { - var uid = ev.getFirstPropertyValue('uid'); - if (!uid) { return; } - - // Get start and end time - var isAllDay = false; - var start = ev.getFirstPropertyValue('dtstart'); - var end = ev.getFirstPropertyValue('dtend'); - var duration = ev.getFirstPropertyValue('duration'); - if (!end && !duration) { - if (start.isDate) { - end = start.clone(); - end.adjust(1); // Add one day - } else { - end = start.clone(); - } - } else if (!end) { - end = start.clone(); - end.addDuration(duration); - } - if (start.isDate && end.isDate) { - isAllDay = true; - start = String(start); - end.adjust(-1); // Substract one day - end = String(end); - } else { - start = +start.toJSDate(); - end = +end.toJSDate(); + // Get reminders + var reminders = []; + ev.getAllSubcomponents('valarm').forEach(function (al) { + var action = al.getFirstPropertyValue('action'); + if (action !== 'DISPLAY') { + // Email notification: keep it in "hidden" and create a cryptpad notification + hidden.push(al.toString()); } + var trigger = al.getFirstPropertyValue('trigger'); + var minutes = trigger && trigger.toSeconds ? (-trigger.toSeconds() / 60) : 0; + if (reminders.indexOf(minutes) === -1) { reminders.push(minutes); } + }); - // Store other properties - var used = ['dtstart', 'dtend', 'uid', 'summary', 'location', 'description', 'dtstamp', 'rrule', 'recurrence-id']; - var hidden = []; - ev.getAllProperties().forEach(function (p) { - if (used.indexOf(p.name) !== -1) { return; } - // This is an unused property - hidden.push(p.toICALString()); + // Get recurrence rule + var rrule = ev.getFirstPropertyValue('rrule'); + var rec; + if (rrule && rrule.freq) { + rec = {}; + rec.freq = rrule.freq.toLowerCase(); + if (rrule.interval) { rec.interval = rrule.interval; } + if (rrule.count) { rec.count = rrule.count; } + if (Object.keys(rrule).includes('wkst')) { rec.wkst = (rrule.wkst + 6) % 7; } + if (rrule.until) { rec.until = +new Date(rrule.until); } + Object.keys(rrule.parts || {}).forEach(function (k) { + rec.by = rec.by || {}; + var _k = k.toLowerCase().slice(2); // "BYDAY" ==> "day" + rec.by[_k] = rrule.parts[k]; }); + } - // Get reminders - var reminders = []; - ev.getAllSubcomponents('valarm').forEach(function (al) { - var action = al.getFirstPropertyValue('action'); - if (action !== 'DISPLAY') { - // Email notification: keep it in "hidden" and create a cryptpad notification - hidden.push(al.toString()); - } - var trigger = al.getFirstPropertyValue('trigger'); - var minutes = trigger && trigger.toSeconds ? (-trigger.toSeconds() / 60) : 0; - if (reminders.indexOf(minutes) === -1) { reminders.push(minutes); } + // Create event + var obj = { + calendarId: id, + id: uid, + category: 'time', + title: ev.getFirstPropertyValue('summary'), + location: ev.getFirstPropertyValue('location'), + body: ev.getFirstPropertyValue('description'), + isAllDay: isAllDay, + start: start, + end: end, + reminders: reminders, + cp_hidden: hidden, + }; + if (rec) { obj.recurrenceRule = rec; } + + if (!hidden.length) { delete obj.cp_hidden; } + if (!reminders.length) { delete obj.reminders; } + + var recId = ev.getFirstPropertyValue('recurrence-id'); + if (recId) { + setTimeout(function () { + if (!res[uid]) { return; } + var old = res[uid]; + var time = +new Date(recId); + var diff = {}; + var from = {}; + Object.keys(obj).forEach(function (k) { + if (JSON.stringify(old[k]) === JSON.stringify(obj[k])) { return; } + if (['start','end'].includes(k)) { + diff[k] = Rec.diffDate(old[k], obj[k]); + return; + } + if (k === "recurrenceRule") { + from[k] = obj[k]; + return; + } + diff[k] = obj[k]; + }); + old.recUpdate = old.recUpdate || {one:{},from:{}}; + if (Object.keys(from).length) { old.recUpdate.from[time] = from; } + if (Object.keys(diff).length) { old.recUpdate.one[time] = diff; } }); + return; + } - // Get recurrence rule - var rrule = ev.getFirstPropertyValue('rrule'); - var rec; - if (rrule && rrule.freq) { - rec = {}; - rec.freq = rrule.freq.toLowerCase(); - if (rrule.interval) { rec.interval = rrule.interval; } - if (rrule.count) { rec.count = rrule.count; } - if (Object.keys(rrule).includes('wkst')) { rec.wkst = (rrule.wkst + 6) % 7; } - if (rrule.until) { rec.until = +new Date(rrule.until); } - Object.keys(rrule.parts || {}).forEach(function (k) { - rec.by = rec.by || {}; - var _k = k.toLowerCase().slice(2); // "BYDAY" ==> "day" - rec.by[_k] = rrule.parts[k]; - }); - } + res[uid] = obj; + }); - // Create event - var obj = { - calendarId: id, - id: uid, - category: 'time', - title: ev.getFirstPropertyValue('summary'), - location: ev.getFirstPropertyValue('location'), - body: ev.getFirstPropertyValue('description'), - isAllDay: isAllDay, - start: start, - end: end, - reminders: reminders, - cp_hidden: hidden, - }; - if (rec) { obj.recurrenceRule = rec; } - - if (!hidden.length) { delete obj.cp_hidden; } - if (!reminders.length) { delete obj.reminders; } - - var recId = ev.getFirstPropertyValue('recurrence-id'); - if (recId) { - setTimeout(function () { - if (!res[uid]) { return; } - var old = res[uid]; - var time = +new Date(recId); - var diff = {}; - var from = {}; - Object.keys(obj).forEach(function (k) { - if (JSON.stringify(old[k]) === JSON.stringify(obj[k])) { return; } - if (['start','end'].includes(k)) { - diff[k] = Rec.diffDate(old[k], obj[k]); - return; - } - if (k === "recurrenceRule") { - from[k] = obj[k]; - return; - } - diff[k] = obj[k]; - }); - old.recUpdate = old.recUpdate || {one:{},from:{}}; - if (Object.keys(from).length) { old.recUpdate.from[time] = from; } - if (Object.keys(diff).length) { old.recUpdate.one[time] = diff; } - }); - return; - } - - res[uid] = obj; - }); - - // setTimeout to make sure we call back after the "recurrence-id" setTimeout - // are called - setTimeout(function () { - cb(null, res); - }); + // setTimeout to make sure we call back after the "recurrence-id" setTimeout + // are called + setTimeout(function () { + cb(null, res); }); }; From ef694294eeea0f5aad398243e875f9f8ee4227e5 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Fri, 10 Nov 2023 17:11:15 +0100 Subject: [PATCH 58/73] #1261: Move modified block into its own function for readability Also avoid the double call to the sanity check as it's already called upon first loading the page. --- www/form/inner.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/www/form/inner.js b/www/form/inner.js index ff7fb4327..56ee78926 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -4534,13 +4534,8 @@ define([ }); }); - // Private / public status - var resultsType = h('div.cp-form-results-type-container'); - var resultsStr = h('div'); - var $results = $(resultsType); - var refreshPublic = function () { - // Perform sanity check on refresh - // (for instance on template import) + // Perform a sanity check on refresh (for instance on template imports) + var checkAnswersValidity = function() { if (APP.isEditor) { if (!content.answers || !content.answers.channel || !content.answers.publicKey || !content.answers.validateKey) { // Don't override other settings (anonymous, makeAnonymous, etc.) from templates @@ -4552,6 +4547,13 @@ define([ framework.localChange(); } } + }; + + // Private / public status + var resultsType = h('div.cp-form-results-type-container'); + var resultsStr = h('div'); + var $results = $(resultsType); + var refreshPublic = function () { $results.empty(); var makePublic = h('button.btn.btn-secondary', Messages.form_makePublic); var makePublicDiv = h('div.cp-form-actions', makePublic); @@ -4882,6 +4884,7 @@ define([ }; refreshColorTheme(); + evOnChange.reg(checkAnswersValidity); evOnChange.reg(refreshPublic); evOnChange.reg(refreshPrivacy); evOnChange.reg(refreshAnon); From 0395019febaa3ba5731757e060bbe5f6f14a8f0a Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 14 Nov 2023 17:30:25 +0100 Subject: [PATCH 59/73] Fix templates not saved #1265 --- www/common/outer/async-store.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/outer/async-store.js b/www/common/outer/async-store.js index 954ca4ba7..c27f6b7e4 100644 --- a/www/common/outer/async-store.js +++ b/www/common/outer/async-store.js @@ -710,6 +710,7 @@ define([ if (data.channel || secret) { pad.channel = data.channel || secret.channel; } if (data.readme) { pad.readme = 1; } + if (data.teamId === -1) { data.teamId = undefined; } var s = getStore(data.teamId); if (!s || !s.manager) { return void cb({ error: 'ENOTFOUND' }); } @@ -1182,7 +1183,6 @@ define([ } //var storeLocally = data.teamId === -1; - if (data.teamId === -1) { data.teamId = undefined; } if (data.teamId) { data.teamId = Number(data.teamId); } // If a teamId is provided, it means we want to store the pad in a specific From 7b6ae87f57e5a0bb0d4dc11398b4786d5f2af119 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 14 Nov 2023 17:43:06 +0100 Subject: [PATCH 60/73] Reference the version of ical.js - Reference embedded versions of `ical.js` in `www/lib` --- www/lib/changelog.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/www/lib/changelog.md b/www/lib/changelog.md index 7b2b5b1a5..911f9bb4a 100644 --- a/www/lib/changelog.md +++ b/www/lib/changelog.md @@ -1,10 +1,10 @@ This file is intended to be used as a log of what third-party source we have vendored, where we got it, and what modifications we have made to it (if any). -* [turndown v7.1.1](https://github.com/mixmark-io/turndown/releases/tag/v7.1.1) built from unmodified source as per its build scripts. +* [turndown v7.1.1](https://github.com/mixmark-io/turndown/releases/tag/v7.1.1) built from unmodified source as per its build scripts * [less.min.js v3.11.1](https://github.com/less/less.js/releases/tag/v3.11.1) with a minor modification to produce slightly more compact CSS * [textFit.min.js v2.4.0 ](https://github.com/STRML/textFit/releases/tag/v2.4.0) to ensure that app names fit inside their icon containers on the home page * [highlightjs v10.2.0](https://github.com/highlightjs/highlight.js/) for syntax highlighting in our code editor -* [our fork of tippy.js v1.2.0](https://github.com/xwiki-labs/tippyjs) for adding tooltips. +* [our fork of tippy.js v1.2.0](https://github.com/xwiki-labs/tippyjs) for adding tooltips * [jscolor v2.0.5](https://jscolor.com/) for providing a consistent color picker across all browsers * [jquery.ui 1.12.1](https://jqueryui.com/) for its 'autocomplete' extension which is used for our tag picker * [pdfjs](https://mozilla.github.io/pdf.js/) with some minor modifications to prevent CSP errors @@ -15,4 +15,5 @@ This file is intended to be used as a log of what third-party source we have ven * [asciidoc.js 2.0.0](https://github.com/asciidoctor/codemirror-asciidoc/releases/tag/2.0.0) with slight changes to match the format of other codemirror modes * [Asciidoctor.js 2.2.6](https://github.com/asciidoctor/asciidoctor.js/releases/tag/v2.2.6) for AsciiDoc rendering * [Rangy 1.3.0](https://github.com/timdown/rangy/tree/1.3.0) for cursor management. NOTE: [A CVE](https://github.com/advisories/GHSA-65rp-mhqf-8gj3) exists for this version but CryptPad isn't affected +* [ical.js 1.4.0](https://github.com/kewisch/ical.js/releases/tag/v1.4.0) to manipulate ICS files for calendar import/export From c15fd8878ebc43b53ad90ec5fa019920f88cd630 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 14 Nov 2023 18:13:37 +0100 Subject: [PATCH 61/73] #1261: avoid duplicate code --- www/form/inner.js | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/www/form/inner.js b/www/form/inner.js index 56ee78926..6f4d03491 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -4514,6 +4514,19 @@ define([ $('.cp-toolbar-icon-snapshots').hide(); } + var initializeAnswers = function() { + // Initialize the answers channel if it doesn't exist yet + if (!APP.isEditor) { return; } + if (content.answers && content.answers.channel && content.answers.publicKey && content.answers.validateKey) { return; } + // Don't override other settings (anonymous, makeAnonymous, etc.) from templates + content.answers = content.answers || {}; + content.answers.channel = Hash.createChannelId(); + content.answers.publicKey = priv.form_public; + content.answers.validateKey = priv.form_answerValidateKey; + content.answers.version = 2; + framework.localChange(); + } + var makeFormSettings = function () { var previewBtn = h('button.btn.btn-primary', [ h('i.fa.fa-eye'), @@ -4534,21 +4547,6 @@ define([ }); }); - // Perform a sanity check on refresh (for instance on template imports) - var checkAnswersValidity = function() { - if (APP.isEditor) { - if (!content.answers || !content.answers.channel || !content.answers.publicKey || !content.answers.validateKey) { - // Don't override other settings (anonymous, makeAnonymous, etc.) from templates - content.answers = content.answers || {}; - content.answers.channel = Hash.createChannelId(); - content.answers.publicKey = priv.form_public; - content.answers.validateKey = priv.form_answerValidateKey; - content.answers.version = 2; - framework.localChange(); - } - } - }; - // Private / public status var resultsType = h('div.cp-form-results-type-container'); var resultsStr = h('div'); @@ -4884,7 +4882,7 @@ define([ }; refreshColorTheme(); - evOnChange.reg(checkAnswersValidity); + evOnChange.reg(initializeAnswers); evOnChange.reg(refreshPublic); evOnChange.reg(refreshPrivacy); evOnChange.reg(refreshAnon); @@ -5152,15 +5150,7 @@ define([ content.order = ["1", "2"]; framework.localChange(); } - if (!content.answers || !content.answers.channel || !content.answers.publicKey || !content.answers.validateKey) { - // Don't override other settings (anonymous, makeAnonymous, etc.) from templates - content.answers = content.answers || {}; - content.answers.channel = Hash.createChannelId(); - content.answers.publicKey = priv.form_public; - content.answers.validateKey = priv.form_answerValidateKey; - content.answers.version = 2; - framework.localChange(); - } + initializeAnswers(); checkIntegrity(); } if (isNew && content.answers && typeof(content.answers.anonymous) === "undefined") { From 079c6eca01f15e24d2c518eb9812f491c121e14b Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Wed, 15 Nov 2023 10:30:54 +0100 Subject: [PATCH 62/73] #1261: Missing semicolon --- www/form/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/form/inner.js b/www/form/inner.js index 6f4d03491..7f3c676ec 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -4525,7 +4525,7 @@ define([ content.answers.validateKey = priv.form_answerValidateKey; content.answers.version = 2; framework.localChange(); - } + }; var makeFormSettings = function () { var previewBtn = h('button.btn.btn-primary', [ From be3a85778a3d93c499e18fedc6d47846459db328 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Wed, 15 Nov 2023 10:34:52 +0100 Subject: [PATCH 63/73] #1261: clarify a comment --- www/form/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/form/inner.js b/www/form/inner.js index 7f3c676ec..36747e44d 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -4515,7 +4515,7 @@ define([ } var initializeAnswers = function() { - // Initialize the answers channel if it doesn't exist yet + // Initialize the answers properties if they do not exist yet if (!APP.isEditor) { return; } if (content.answers && content.answers.channel && content.answers.publicKey && content.answers.validateKey) { return; } // Don't override other settings (anonymous, makeAnonymous, etc.) from templates From 0005b933e98f3f200364bfa1bef79cd7fe94c7a9 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Wed, 15 Nov 2023 17:53:31 +0100 Subject: [PATCH 64/73] #1324: Render the whiteboard before export - The exported/downloaded from drive whiteboard was empty otherwise --- www/whiteboard/export.js | 1 + 1 file changed, 1 insertion(+) diff --git a/www/whiteboard/export.js b/www/whiteboard/export.js index 1a96cf799..300085c92 100644 --- a/www/whiteboard/export.js +++ b/www/whiteboard/export.js @@ -30,6 +30,7 @@ define([ canvas.setWidth(w); canvas.setHeight(h); canvas.calcOffset(); + canvas.renderAll(); module.ext = '.png'; canvas_node.toBlob(cb); From 38b20e84177057f46292fc52fb5d3d5e14fff02e Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 16 Nov 2023 15:32:31 +0100 Subject: [PATCH 65/73] Fix exported forms missing their extensions Related to #1267 and #1324 --- www/form/export.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/www/form/export.js b/www/form/export.js index d0142704d..dd00ee8ac 100644 --- a/www/form/export.js +++ b/www/form/export.js @@ -2,7 +2,9 @@ define([ '/common/common-util.js', '/customize/messages.js' ], function (Util, Messages) { - var Export = {}; + var Export = { + ext: '.json' + }; var escapeCSV = function (v) { if (!/("|,|\n|;)/.test(v)) { From 51abbb484fadf43e9ce2691b305eede48eb70378 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Thu, 16 Nov 2023 15:44:43 +0100 Subject: [PATCH 66/73] Set default size for empty whiteboard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, empty whiteboards were exported as a 0×0 pixel image, which raised an error in fabric.js. To address this issue, the default empty image is set to be a 600×600 pixel transparent png file. Also fix #1267 that is a consequence of the aforementioned issue. --- www/whiteboard/export.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/www/whiteboard/export.js b/www/whiteboard/export.js index 300085c92..7c9253fea 100644 --- a/www/whiteboard/export.js +++ b/www/whiteboard/export.js @@ -25,8 +25,9 @@ define([ if (c[k].y > h) { h = c[k].y + 1; } }); }); - w = Math.min(w, MAX); - h = Math.min(h, MAX); + // Empty documents are rendered as a 600x600 transparent PNG image + w = w === 0 ? 600 : Math.min(w, MAX); + h = h === 0 ? 600 : Math.min(h, MAX); canvas.setWidth(w); canvas.setHeight(h); canvas.calcOffset(); From e5a80afee750b58c21a03e8a616eab78a28a08a6 Mon Sep 17 00:00:00 2001 From: yflory Date: Wed, 22 Nov 2023 12:27:12 +0100 Subject: [PATCH 67/73] Use new asynchrnous clipboard API when available --- customize.dist/ckeditor-config.js | 2 ++ www/admin/inner.js | 21 +++++++++------------ www/common/clipboard.js | 23 +++++++++++++++-------- www/common/common-ui-elements.js | 10 ++++++---- www/common/inner/share.js | 25 ++++++++++++++----------- www/common/sframe-common-outer.js | 5 +++-- www/profile/inner.js | 10 ++++++---- www/recovery/main.js | 7 +++---- www/report/main.js | 7 +++---- www/support/ui.js | 12 ++++++------ www/teams/inner.js | 5 +++-- 11 files changed, 70 insertions(+), 57 deletions(-) diff --git a/customize.dist/ckeditor-config.js b/customize.dist/ckeditor-config.js index 9435c3d44..ec2898da1 100644 --- a/customize.dist/ckeditor-config.js +++ b/customize.dist/ckeditor-config.js @@ -5,6 +5,8 @@ CKEDITOR.editorConfig = function( config ) { config.needsBrFiller= fixThings; config.needsNbspFiller= fixThings; + config.disableObjectResizing = true; + config.removeButtons= 'Source,Maximize'; // magicline plugin inserts html crap into the document which is not part of the // document itself and causes problems when it's sent across the wire and reflected back diff --git a/www/admin/inner.js b/www/admin/inner.js index 4d5ae11b7..5a564e5e0 100644 --- a/www/admin/inner.js +++ b/www/admin/inner.js @@ -364,11 +364,10 @@ define([ var copyToClipboard = (content) => { var button = primary(Messages.copyToClipboard, () => { var toCopy = JSON.stringify(content, null, 2); - if (Clipboard.copy.multiline(toCopy)) { + Clipboard.copy(toCopy, (err) => { + if (err) { return UI.warn(Messages.error); } UI.log(Messages.genericCopySuccess); - } else { - UI.warn(Messages.error); - } + }); }); return button; }; @@ -505,11 +504,10 @@ define([ UI.confirm(table, yes => { if (!yes) { return; } var content = P.join('\n'); - if (Clipboard.copy.multiline(content)) { + Clipboard.copy(content, (err) => { + if (err) { return UI.warn(Messages.error); } UI.log(Messages.genericCopySuccess); - } else { - UI.warn(Messages.error); - } + }); }, { wide: true, ok: Messages.copyToClipboard, @@ -811,11 +809,10 @@ define([ UI.confirm(tableObj.table, (yes) => { if (!yes) { return; } var content = result.map(line => JSON.stringify(line)).join('\n'); - if (Clipboard.copy.multiline(content)) { + Clipboard.copy(content, (err) => { + if (err) { return UI.warn(Messages.error); } UI.log(Messages.genericCopySuccess); - } else { - UI.warn(Messages.error); - } + }); }, { wide: true, ok: Messages.copyToClipboard, diff --git a/www/common/clipboard.js b/www/common/clipboard.js index 7d93e15f3..418e27d4e 100644 --- a/www/common/clipboard.js +++ b/www/common/clipboard.js @@ -1,7 +1,7 @@ define(['jquery'], function ($) { var Clipboard = {}; - var copy = function (text, multiline) { + var oldCopy = function (text, multiline) { var $ta = $('', { type: 'text', }).val(text); @@ -32,13 +32,20 @@ define(['jquery'], function ($) { }; // copy arbitrary text to the clipboard - // return boolean indicating success - Clipboard.copy = function (text) { - return copy(text); - }; - - Clipboard.copy.multiline = function (text) { - return copy(text, true); + // call back boolean indicating success + Clipboard.copy = function (text, cb) { + if (!navigator || !navigator.clipboard || !navigator.clipboard.writeText) { + return void setTimeout(() => { + var success = oldCopy(text, true); + cb(!success); + }); + } + navigator.clipboard.writeText(text).then(() => { + cb(); + }).catch((err) => { + console.warn(err); + cb(err); + }); }; return Clipboard; diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index 3a03807f2..f5065484c 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -249,8 +249,9 @@ define([ name: Messages.share_copyProfileLink, onClick: function () { var profile = data.profile ? (origin + '/profile/#' + data.profile) : ''; - var success = Clipboard.copy(profile); - if (success) { UI.log(Messages.shareSuccess); } + Clipboard.copy(profile, (err) => { + if (!err) { UI.log(Messages.shareSuccess); } + }); }, keys: [13] }] @@ -535,8 +536,9 @@ define([ name: Messages.team_inviteLinkCopy, onClick: function () { if (!href) { return; } - var success = Clipboard.copy(href); - if (success) { UI.log(Messages.shareSuccess); } + Clipboard.copy(href, (err) => { + if (!err) { UI.log(Messages.shareSuccess); } + }); }, keys: [] }]; diff --git a/www/common/inner/share.js b/www/common/inner/share.js index db25738a6..9747760f4 100644 --- a/www/common/inner/share.js +++ b/www/common/inner/share.js @@ -462,8 +462,9 @@ define([ var v = opts.getLinkValue({ embed: Util.isChecked($link.find('#cp-share-embed')) }); - var success = Clipboard.copy(v); - if (success) { UI.log(Messages.shareSuccess); } + Clipboard.copy(v, (err) => { + if (!err) { UI.log(Messages.shareSuccess); } + }); }, keys: [13] }, { @@ -569,8 +570,9 @@ define([ onClick: function () { Feedback.send('SHARE_EMBED'); var v = opts.getEmbedValue(); - var success = Clipboard.copy(v); - if (success) { UI.log(Messages.shareSuccess); } + Clipboard.copy(v, (err) => { + if (!err) { UI.log(Messages.shareSuccess); } + }); }, keys: [13] }]; @@ -958,11 +960,11 @@ define([ iconClass: '.fa.fa-link', onClick: function () { var v = opts.getLinkValue(); - var success = Clipboard.copy(v); - if (success) { UI.log(Messages.shareSuccess); - } - }, - keys: [13] + Clipboard.copy(v, (err) => { + if (!err) { UI.log(Messages.shareSuccess); } + }); + }, + keys: [13] } ]; @@ -1004,8 +1006,9 @@ define([ iconClass: '.fa.fa-link', onClick: function () { var v = common.getMediatagFromHref(opts.fileData); - var success = Clipboard.copy(v); - if (success) { UI.log(Messages.shareSuccess); } + Clipboard.copy(v, (err) => { + if (!err) { UI.log(Messages.shareSuccess); } + }); }, keys: [13] }]; diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index 4ccda4b68..21db67850 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -1985,8 +1985,9 @@ define([ require(['/common/clipboard.js'], function (Clipboard) { var url = window.location.origin + Utils.Hash.hashToHref(hashes.viewHash, 'form'); - var success = Clipboard.copy(url); - cb(success); + Clipboard.copy(url, (err) => { + cb(!err); + }); }); }); sframeChan.on('EV_OPEN_VIEW_URL', function () { diff --git a/www/profile/inner.js b/www/profile/inner.js index 71d89c3b7..f79f55658 100644 --- a/www/profile/inner.js +++ b/www/profile/inner.js @@ -114,8 +114,9 @@ define([ }).append(h('i.fa.fa-shhare-alt')) .append(h('span', Messages.shareButton)) .click(function () { - var success = Clipboard.copy(url); - if (success) { UI.log(Messages.shareSuccess); } + Clipboard.copy(url, (err) => { + if (!err) { UI.log(Messages.shareSuccess); } + }); }).appendTo($container); }; @@ -521,8 +522,9 @@ define([ var metadataMgr = APP.common.getMetadataMgr(); var privateData = metadataMgr.getPrivateData(); var url = Hash.getPublicSigningKeyString(privateData.origin, data.name, data.edPublic); - var success = Clipboard.copy(url); - if (success) { UI.log(Messages.genericCopySuccess); } + Clipboard.copy(url, (err) => { + if (!err) { UI.log(Messages.genericCopySuccess); } + }); }; }; diff --git a/www/recovery/main.js b/www/recovery/main.js index 89ee3733f..2cd535721 100644 --- a/www/recovery/main.js +++ b/www/recovery/main.js @@ -82,11 +82,10 @@ define([ $copyProof.click(function () { if (!proofStr) { return; } - if (Clipboard.copy.multiline(proofStr)) { - UI.log(Messages.genericCopySuccess); - } else { + Clipboard.copy(proofStr, (err) => { + if (!err) { return UI.log(Messages.genericCopySuccess); } UI.warn(Messages.error); - } + }); }); var blockKeys, blockHash, uname; diff --git a/www/report/main.js b/www/report/main.js index b9baa5e9a..0410ca890 100644 --- a/www/report/main.js +++ b/www/report/main.js @@ -48,11 +48,10 @@ define([ }; var copyToClipboard = function () { - if (Clipboard.copy.multiline(getReportContent())) { + Clipboard.copy(getReportContent(), (err) => { + if (err) { return UI.warn(Messages.error); } UI.log(Messages.genericCopySuccess); - } else { - UI.warn(Messages.error); - } + }); }; var checkCache = function (chan, cb) { diff --git a/www/support/ui.js b/www/support/ui.js index 200369a95..860f0da92 100644 --- a/www/support/ui.js +++ b/www/support/ui.js @@ -344,8 +344,9 @@ Messages.support_formCategoryError = "Please select a ticket category from the d $(url).click(function (e) { e.stopPropagation(); var link = privateData.origin + privateData.pathname + '#' + 'support-' + content.id; - var success = Clipboard.copy(link); - if (success) { UI.log(Messages.shareSuccess); } + Clipboard.copy(link, (err) => { + if (!err) { UI.log(Messages.shareSuccess); } + }); }); if (typeof(publicKey) === 'string') { copyKey = h('button.btn', { @@ -357,11 +358,10 @@ Messages.support_formCategoryError = "Please select a ticket category from the d ]); $(copyKey).click(e => { e.stopPropagation(); - if (Clipboard.copy(publicKey)) { - UI.log(Messages.shareSuccess); - } else { + Clipboard.copy(publicKey, (err) => { + if (!err) { return UI.log(Messages.shareSuccess); } UI.warn(Messages.error); - } + }); }); } } diff --git a/www/teams/inner.js b/www/teams/inner.js index 80cad3bd6..b40fca61e 100644 --- a/www/teams/inner.js +++ b/www/teams/inner.js @@ -840,8 +840,9 @@ define([ var privateData = common.getMetadataMgr().getPrivateData(); var origin = privateData.origin; var href = origin + Hash.hashToHref(data.hash, 'teams'); - var success = Clipboard.copy(href); - if (success) { UI.log(Messages.shareSuccess); } + Clipboard.copy(href, (err) => { + if (!err) { UI.log(Messages.shareSuccess); } + }); }).prependTo(actions); } content = [ From 8bc3d869ef172b74684a37ff32e3dcc3082ed4cb Mon Sep 17 00:00:00 2001 From: David Benque Date: Wed, 22 Nov 2023 16:05:04 +0000 Subject: [PATCH 68/73] Remove all .license files from repo root --- .jshintignore.license | 3 --- .jshintrc.license | 3 --- .lesshintrc.license | 3 --- .reuse/dep5 | 20 ++++++++++++++++++++ and_so_it_begins.png.license | 3 --- cryptofist.png.license | 3 --- package-lock.json.license | 3 --- package.json.license | 3 --- screenshot-suite.png.license | 3 --- screenshot.png.license | 3 --- 10 files changed, 20 insertions(+), 27 deletions(-) delete mode 100644 .jshintignore.license delete mode 100644 .jshintrc.license delete mode 100644 .lesshintrc.license delete mode 100644 and_so_it_begins.png.license delete mode 100644 cryptofist.png.license delete mode 100644 package-lock.json.license delete mode 100644 package.json.license delete mode 100644 screenshot-suite.png.license delete mode 100644 screenshot.png.license diff --git a/.jshintignore.license b/.jshintignore.license deleted file mode 100644 index ff0da3695..000000000 --- a/.jshintignore.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/.jshintrc.license b/.jshintrc.license deleted file mode 100644 index ff0da3695..000000000 --- a/.jshintrc.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/.lesshintrc.license b/.lesshintrc.license deleted file mode 100644 index ff0da3695..000000000 --- a/.lesshintrc.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/.reuse/dep5 b/.reuse/dep5 index 7436e4d6b..3cd24fec4 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -9,6 +9,26 @@ Source: https://cryptpad.org # Copyright: $YEAR $NAME <$CONTACT> # License: ... +Files: *.png +Copyright: 2023 XWiki CryptPad Team and contributors +License: AGPL-3.0-or-later + +Files: *.json +Copyright: 2023 XWiki CryptPad Team and contributors +License: AGPL-3.0-or-later + +Files: .jshintignore +Copyright: 2023 XWiki CryptPad Team and contributors +License: AGPL-3.0-or-later + +Files: .jshintrc +Copyright: 2023 XWiki CryptPad Team and contributors +License: AGPL-3.0-or-later + +Files: .lesshintrc +Copyright: 2023 XWiki CryptPad Team and contributors +License: AGPL-3.0-or-later + ## Dependencies Files: www/common/theme/* diff --git a/and_so_it_begins.png.license b/and_so_it_begins.png.license deleted file mode 100644 index ff0da3695..000000000 --- a/and_so_it_begins.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/cryptofist.png.license b/cryptofist.png.license deleted file mode 100644 index ff0da3695..000000000 --- a/cryptofist.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/package-lock.json.license b/package-lock.json.license deleted file mode 100644 index ff0da3695..000000000 --- a/package-lock.json.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/package.json.license b/package.json.license deleted file mode 100644 index ff0da3695..000000000 --- a/package.json.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/screenshot-suite.png.license b/screenshot-suite.png.license deleted file mode 100644 index ff0da3695..000000000 --- a/screenshot-suite.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/screenshot.png.license b/screenshot.png.license deleted file mode 100644 index ff0da3695..000000000 --- a/screenshot.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors - -SPDX-License-Identifier: AGPL-3.0-or-later From 6a17017694ba23a38fcfb2fd6aa7f1fb8b5a8f69 Mon Sep 17 00:00:00 2001 From: yflory Date: Fri, 24 Nov 2023 14:18:05 +0100 Subject: [PATCH 69/73] lint compliance --- www/common/onlyoffice/inner.js | 1 - 1 file changed, 1 deletion(-) diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 7fe2584b3..c45bb2b87 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -1369,7 +1369,6 @@ define([ endSaveChanges: true, isExcel: true, deleteIndex: null, - excelAdditionalInfo: null, unlock: false, releaseLocks: true, reSave: true, From e31965abb35dcf0f6fb58cbfa6e6d8a4408de058 Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Tue, 28 Nov 2023 11:11:59 +0100 Subject: [PATCH 70/73] Keypair not initialised correctly in the answers channel - Bug introduced in #1316 to fix #1261 - Was an issue when creating a new form (impossible to answer), however importing a template fixed it. - priv should stay in the scope of initializeAnswers() and not leak --- www/form/inner.js | 1 + 1 file changed, 1 insertion(+) diff --git a/www/form/inner.js b/www/form/inner.js index 36747e44d..c7b66a7d9 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -4519,6 +4519,7 @@ define([ if (!APP.isEditor) { return; } if (content.answers && content.answers.channel && content.answers.publicKey && content.answers.validateKey) { return; } // Don't override other settings (anonymous, makeAnonymous, etc.) from templates + var priv = metadataMgr.getPrivateData(); content.answers = content.answers || {}; content.answers.channel = Hash.createChannelId(); content.answers.publicKey = priv.form_public; From a53f8df6dc55e0c5e43a20f9e483a41a69e41c6a Mon Sep 17 00:00:00 2001 From: Wolfgang Ginolas Date: Thu, 30 Nov 2023 09:15:31 +0100 Subject: [PATCH 71/73] Make read only diagrams scrollable https://github.com/cryptpad/cryptpad/issues/1330 --- www/diagram/inner.html | 18 ------------------ www/diagram/inner.js | 4 ---- 2 files changed, 22 deletions(-) diff --git a/www/diagram/inner.html b/www/diagram/inner.html index daacdb9eb..bdf9b2384 100644 --- a/www/diagram/inner.html +++ b/www/diagram/inner.html @@ -16,23 +16,6 @@ SPDX-License-Identifier: AGPL-3.0-or-later .loading-hidden { display: none; } - - #overlay { - position: fixed; - display: none; - width: 100%; - height: 100%; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0,0,0,0.1); - z-index: 2; - } - - #overlay.show { - display: block; - } @@ -41,7 +24,6 @@ SPDX-License-Identifier: AGPL-3.0-or-later
      -