From feead7ce2b65b5c2b2a89b21334a4ea7309b56f2 Mon Sep 17 00:00:00 2001 From: Juraj Oravec Date: Sun, 23 Jan 2022 15:57:04 +0100 Subject: [PATCH] Create the plugin Signed-off-by: Juraj Oravec --- .gitignore | 1 + CHANGELOG | 2 + LICENSE | 674 +++++++++++++++++++++++++++++++++++++ README.md | 14 + rssfinder/main.qml | 146 ++++++++ rssfinder/metadata.desktop | 12 + screenshots/example.png | Bin 0 -> 42932 bytes 7 files changed, 849 insertions(+) create mode 100644 .gitignore create mode 100644 CHANGELOG create mode 100644 LICENSE create mode 100644 README.md create mode 100644 rssfinder/main.qml create mode 100644 rssfinder/metadata.desktop create mode 100644 screenshots/example.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4c4ffc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.zip diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..95961ec --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,2 @@ +0.1.0 +- First release diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..2c6ab7a --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# Tab Counter +![Screenshot](screenshots/example.png) + +Plugin for [Falkon](https://www.falkon.org/) web browser. + +## Description +Helps to find RSS feeds on the website. + +## Installation +### Automatic +Go to [Falkon store](https://store.falkon.org/p/1689113/) press `Install` and follow the instructions. + +### Manual +Copy the `rssfinder` directory into `~/.config/falkon/plugins/` diff --git a/rssfinder/main.qml b/rssfinder/main.qml new file mode 100644 index 0000000..c216dac --- /dev/null +++ b/rssfinder/main.qml @@ -0,0 +1,146 @@ +import org.kde.falkon 1.0 as Falkon +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.0 +import QtQuick 2.3 + +Falkon.PluginInterface { + + QtObject { + id: rssFinderObject + property ListModel feeds: ListModel {} + } + + init: function(state, settingsPath){ + console.log(i18n('"RSSFinder" plugin loaded')) + } + + testPlugin: function() { + return true + } + + unload: function() { + console.log(i18n('"RSSFinder" plugin unloaded')) + } + + function findCurrentTab(window) { + for (var i = 0; i < window.tabs.length; ++i) { + if (window.tabs[i].current) { + return window.tabs[i] + } + } + } + + function findFeeds() { + var window = Falkon.Windows.getCurrent() + var currentTab = findCurrentTab(window) + var result = currentTab.execJavaScript(" + var availableLinks = []; + var links = document.getElementsByTagName('link'); + var siteTitle = 'No title was found'; + + if (document.getElementsByTagName('title').lenght > 0) { + siteTitle = document.getElementsByTagName('title')[0].innerHTML + } + + for (link of links) { + if (link.getAttribute('rel') == 'alternate' && link.getAttribute('type') == 'application/rss+xml') { + var linkTitle; + var linkUrl; + + if (link.hasAttribute('title')) { + linkTitle = link.getAttribute('title'); + } else { + linkTitle = siteTitle; + } + + if (link.getAttribute('href').startsWith('/')) { + linkUrl = window.location.protocol + '//' + window.location.hostname + link.getAttribute('href'); + } else if (!link.getAttribute('href').includes('/')) { + linkUrl = window.location.protocol + '//' + window.location.hostname + '/' + link.getAttribute('href'); + } else { + linkUrl = link.getAttribute('href'); + } + + availableLinks.push({ + title: linkTitle, + url: linkUrl + }); + } + } + + if (links.length == 0) { + availableLinks.push({ + title: 'No RSS feed was found', + url: 'No URL is provided' + }); + } + + var out = { + links: availableLinks + }; + + out; + ") + + rssFinderObject.feeds.clear() + + for (var link of result.links) { + rssFinderObject.feeds.append({ + "title": link.title, + "url": link.url + }) + } + } + + Falkon.BrowserAction { + name: 'RSS Finder' + identity: 'rssfinder-id' + title: i18n('RSS Finder') + toolTip: i18n('RSS Finder') + icon: 'rss' + location: Falkon.BrowserAction.NavigationToolBar | Falkon.BrowserAction.StatusBar + onClicked: findFeeds() + + popup: ScrollView { + id: popupWindow + width: 500 + height: 200 + + ScrollBar.horizontal.policy: ScrollBar.AlwaysOn + ScrollBar.vertical.policy: ScrollBar.AlwaysOn + + ListView { + Component { + id: contactsDelegate + + Button { + hoverEnabled: true + width: popupWindow.width + onClicked: Falkon.Clipboard.copy(url) + + ToolTip.delay: 1000 + ToolTip.timeout: 5000 + ToolTip.visible: hovered + ToolTip.text: i18n("Click to copy URL") + + ColumnLayout { + id: wrapper + spacing: 0 + + Text { + text: "" + title + "" + } + Text { + text: url + } + } + } + } + + model: rssFinderObject.feeds + delegate: contactsDelegate + focus: true + } + } + } +} diff --git a/rssfinder/metadata.desktop b/rssfinder/metadata.desktop new file mode 100644 index 0000000..3b629e1 --- /dev/null +++ b/rssfinder/metadata.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=RSS Finder +Comment=Helps you search for RSS feeds on websites + +Icon=rss +Type=Service +X-Falkon-Type=Extension/Qml + +X-Falkon-Author=Juraj Oravec +X-Falkon-Email=jurajoravec@mailo.com +X-Falkon-Version=0.1.0 +X-Falkon-Settings=false diff --git a/screenshots/example.png b/screenshots/example.png new file mode 100644 index 0000000000000000000000000000000000000000..5d46ffb2e17a521211fe3fd0b56c0d847762a225 GIT binary patch literal 42932 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≫a^m>=FG=S(aJz6Px1tgaT@L+IL|1g1{5SN7S`Wh{Q^3wg9Py}B|x6HsFv zGxrtN5M7_p3u;@0@V=EWI#W}}%lIx?Rm5?Qr*eD*`^%5aovt>qWiS*ze+vfV6jKHd zl4oD)t^9e!>{Khx?P78Zr~!4u0SEt23-DBBM7`1=MxAGXn+x(`K$vo4wDOCyn)*xn z+t($EFneYB2r3wSzt^lsN5hYAUSH`-XK=wxOHw)QVlh7K9-hMfhJ{ByxHp~3<4Tt6*VCY)67od7C4|=f$jlkcau6vcV<*nBDS?YP zx~@4zvVb#5RRHbAsQ)HlzQ9bvGb(RTb{TlG36CxC_a z_m&NrBO_JxbtahSiZhmq6#a-d{RzAb*&um3q)wa3K%GZvojI4p`fc%&SHxiL52kdO zQ`syPo)}HRjsxtQ6a(ygVu|q=!}ltL)xC5sS(=BzegGClcVC=to0BWuPptIXo3eEE z98>)=z`9(QgxWi4E54`X385WnaWmG%a$o&V*)zw4i;%W2|2{1~%5YpXELAy|5ivN~ zijc1nL9!+7M+32(^u&UBv1I>hC6sG{bw2`l9hC}vd2E)h zxEEYTG>PQRS1sE&R~Wsxq6X0jwR7#Pxoe9KH=muZF*F12IJ@KM2Mkmy=OEPsXtU=_6&DwQ!eMrg_+^vT zXnz7fJ1GN(ZMp9_KtaObrnY!+>f&6Zr0y>9H=-BriQcIf(XRBFJK5@iq>_D6bk3eO z439(76WwjuY`yG=v?dORlSCG6rz3dUgX?JksI_J`eqH*{5YYqJ00qOqbt7lw_26${}W)fp(MU_ec!6yJr3V@`^ z@yMA)7l}`T50Z5@qsJ6UiR;ZI-(UB`Le^R(lCu9(%b4;+_+Uyhjs-y64eT5B4im+( z{4}cRmk@RiWRy1?FAf<<$1z`Ru8d=9zgb;!@_jdCBU~dO{|J~7LOMc}kLYjZyBa6Pg}#8Crz07)BY_D0!k@|n*GGz3}*}^1I_Cf&?8+of9A9c zPtVaFKzcJ z|2)2Vbi>v=)L&ae=y!VGloML2rJ_lwq>D8rpnYWR9C(?NNxy_Og94_;LMQsS-p)55 zS=`k=g`HH=3ix@etzD0@Oq(pVmIY0&#FH|)7|ZM}izfROEEUlx<`abca^=H1Ej zTW#kx*A%GdfP)VzP|A_QqbC9rfwqp3y_(&qo%Wz0Jm-007D8$sbv`SM^@}q!mPqC% z!w1Jb%ae#BCJK`U+8`~2V3BdZG&Qn_fEN=Zg^t2{P{dlqn_Q$obWe21ngHr;rXEX( zZ@;RvZ9&~RT^=#11g_VT(NYQk*!jMinXGg9#J)Z;z;B|9>=ZJ%{oG>C)+UZ<`w#^X zeqzI?ye3azD*rWBs7GvqAPN_~Fvj8(=8l{RX=X|+zf@0#GI5BHNavPWy*0~8pKsvr zN$eB1%AHQAfr#)r>zucmE@opsmYeAi4pZ&&0_i^Hztl~h9TW(Z+DDh<0JD)rI$^ez z+bdB9wh5RcNBcmqrtHDY+uHlv|T1H{iL(Hgt9AjeEu9mi%FO1$dRH0(AKWr!# zETKzH4>#?tu{Y8Y(I9f-eH(@5Q>9s<=Or#nU)eeN%rWWg&Cwn1{)>V(CH7lLJL_KOCv??Q zwWN~-EiWtwk{}{o?Y^LMZv%D0_S+CK_!GkK``w&w*c!1K2!p{709H3<3|hN?afyBG zLxS`Y7BAARm!;-HWX*?P@;F)u_I*jL{>cN@&2DqBqRQRl{+_kMbDW2>DF||n4QHJb zVb;G9uRmngU#CBx%4_T~y1w3dXt~+v9r;m~fi4j*Nap72k-S3DdOOsKh02xjE5h_t zo~6Mv?0Y-9YN=eheYvH4X`LNkT<&GXXyt>;>%E44K(r>7thtV(z0rEUL6sv3~D9!Gkfhlz85~i@u)_lYQc=J13 z^b0CO5AaC))ZlPexW($HSu2{8ub1u=U$Urv7t)+wWPWE0xZ|Glgua`mag(?F%oK>E z#~(x4-l`MRfuRJz^w4vr4<|Y;4d`g{LC2$3dWp%UE~JgJI|=ovtsvl|ioA(|1sEj- zvNlOnLj*|N%ulxd#>=bgr%A2}jjvZlDVsz%WwfX%&135XTE_&Ghu1m50yY3ruZ8F5 zUkg1J#u<|~tCf;oH&Ik&`iTDS?oqNowULFgK4Q^r;nnF|GcIiY;n8uwOE#*Mnih$C z;$m})r@Oq!3%!QtVU*J-PT$jNpNFoDw4WA`V+qo7biES)iDu(<##R~eTcbbol*HaD zex2tDQaXh=-T9wPCUSJrQ=RJ|*d^;#V!bG#tcqdtRixf~?~NDrtcS$Om4|X;aL7-@C(ZF9{bq53GrJbV&|dLAW>Qa^3 zv)H|Fllzo}Z2p%Z!tL$Tio$jeJ|%NZtainP4Vdl7S@-_csLb4vOSvi0uX~`A+?Zl5 zRo=xqI;ZQ18PKAe{irz5_*;3#+W1jyvWKk<6_O5YL044~ks(K?8FicLjtIf+n~fox zftNfYF)E~b(nt=-AQ;IiL2AjNoGp2c5%Ok+A81AGXmTy6reCt@4?td((j;s!u_X!x zexv^=tCufwbO(S1ljk=Pyt@79{cKq(xY$S1_~iIt>w`{eO9Qo>b9D`J^0=w5xp~fK`2~p+y_WR9enpl}qZl6Q6d*x4 z&-qS&)Z#|5m%tmVhEud(^DKyQp}bTa6B|1Lr?Z39-FyY&;BFkJBfh6 zVDc0gzz$r!>(W~e+@}NmGZk;-5hm&N8m@tt7@2QjY_k1rM-W`LZKIbeo&j{%!aG3x zYNp&<3Oe|B#fmG3PLFTUJqWsH{P_sjm9{&kA2R7qw&VIXR?S)bJ1%SlTuat&?CqaW z>gW#kG-k^)*2ek4t{tJ}Sk=b*2ZL5|UDNTyl-HYVfvfw+?8mB0{xWW0-kk`XRc@eJ zqEe!8t=zgR;k03PN{P;~@5zd0iw|^e^Q(w1&P~bXdm~}_&zJN<^Z95}f4TxiPM=z* zwt1gcUy!aMRUX})Ffj3+ihUAtS}H8jm7O=|PGin(P{bEG;y0TESvRp!X9FASTox-K zU2@Db`WwfGXJ)4hpUH+)K?>rPf6lvxCcUl|M^}F;xN@=0@e4piq}g?*ss3nyCJ)gF zBu^$p5$%gFN+yq^j+rn$J|3E?YMT_otYPoBS`Wf=`<3?P(R!`p7~ya38w&BAawD*~ zkZ$zZ2L0wQ&%g8t-nXvo{?6eSn;%z%r^}}VCnHaX4?xEbr1xh)n0Ht3hb-;1^kA3_ z3UNIrE2iHrXQ)O{C5fO2il|5ijACNEk{qM|x*O3F)70l^y@d_{85?bSOFet87m+8s z`t8$wxRJWgTV_u<#l$uwarYNEI2X-Uf1K~RK~elzM9*lAc*LPJ7zbFK!BguRic<_qXdbK*6k;RCj^}2ge%N$73!FYTRldH!&(|e`8=64D;-@zn9?QU>90Qfov zXk+p9B*XX8GAuzTtaO~1Q}$lJNmJSvN1zcBtA+yg#{H@e^-`0?=>Gu~3c{6NH%9m(pShpaLfZ zd0VGzf=!vpX3u18xs4x9kR~>1oS<7uUb878A%x~5wAfERa;!18#xRK$h3!6#?Y7(H zRXRISe0x0QeUfyH-zXp4Y7JF{&7+$wdAMG{H`=cDR#VD~FFF(k2fM@7F%68;XRETz zIoqA7wO?}g6f^$>8bcVP`-=)MKoP0|lFrdkQAs7TP$gT{(6tuLQ9E(=jJ{Q<75z&g6>xf1)LsZEJDZ{GA>7W?j`S$`4t_DX-i|K5KRz?vDFL4AB6Q~fnTFq`b1k`tm zp~8;J$z0V4*9nwURDT7blq5MTF|svJtj8%^$9mQuc+@5j?y{E-v7PL&;whp%S0qp| zH;#=g!j(z|)ZrLW&$X|lxyq<-y6~}`%Oz}`X(=*7&R`&zhWeJl5t%-j1bEoDjEZ7Y zlZ2{7L!*Q6o)W+#%!)*@5UCo`cj(UdlgBc_5~U(v_^*n_#Bk{ekrMORoM2otuL1qI zH^BF#thGH0^H4p^cWQSyQ_Cyf#}_)eRKBX0Y1w~1r`0?A3D@mMV@E{)MyuOMWFeRi zy_|*;UA{wer2@$4Q~vy6xd$PxzPxN;OHCWZe^eaX_NC_|Owp;~Gh23B)xt;}kC;;EiQPd%eG+B``I5I zDmTx3ww50vO7*9Yf33L-XRRe_(EZ=HH(b8T0ygZ~>>#JF13b4o?y=mt|1{B${EPa} zMwM*$OrUNT#~nl0qO+|bTE+Od$)PnB$>8W^5mnmbp@~ux^qYgb2W^NZB}tj7a`~J7 z0JADf+RK&E?2)?9=b2S_PiLI&M;+2b0TTXN9A}F;IkNb2%|hR#U)LoAl1eOixn|sB@~*>ydvZ#Qqw4H{umqXd1;` z#zX^s)<3J~5cs9O_dZZd^w*=TCy~QX{q~~!$U*26=iN7dNa3m8v1oa0hT~Zif#C&L z{aeYZ{wb}72-_~|=5>~B_b|Myf-?rT4jx2+!-yHC!1yc$#>|Z zqGqB*H%nG#bzQnPFd<1F{^vpWOTXgJH1jlnV@h2hYo!`3+0S!OB!w!lURbaDuZ&kD zsPN37M-4qb-?6Q%l?aHq-I>WLC8!DUu1!!|ngVXP2ZA=4;P`HFoHf6MmGz(czmlCJ zcMym_BTJNa9r1p_2Wj_rwmMmnKvF-@`Q>sy`2J=Nw!uGbhAHDZ{NDIU@n(ykZ7B$|P{u?aHp@w- z;KGo7coVghe#KW={7I}$8+*6>G~3Oq2#fx7 z7x3Bp14q)?{Po#>Gx8eTZY!eFbD z7o)3pypzBJw+RTHs}!ne|K7II@G{WxMuQsDfEtU(T7G65H?N!x)v=~_xsm~Xo!-j z8SqaRD+2{KlrpMdv-Wxib~1EgGc6F0bJ}0-yAH~I1wCGonPjUFHuJgIpae1o zimVNJdp=I2~oBw?tVPDGB45 zb9ab7x2c_CbSiL9!^&a-6iT}fMWqNs-SpZudw8RR4$(zQDj8gz`Wcurcq9cBN)f*< zA)RPXe_!CP6f=%07`=_S{eueIw=5In&D&U&$ClJ`Ua{C9%9}LsG`xx@JnhzE5v1%A zw(jMRJ-8GT^c3*J2s8*WVqxa;}S$kO8%%rMI#HXAEa zR1Nk;@1SK*3H(W3H(A|W`r@k%O8^&b=BT`jX^8C9^!VhIK(ou}WNkB0R@QCwist*O zXS-46N90L_)KtzEqf~c)N>_u$mGwM9J`oF^g?!?ih8h_`J(=9d55cr# zhM0>AlN7W0W=vv-^A%j33f-UP$3eYR`GH^vJ08j6xxYx@FXz8inFym*IkSf&aW*&O z+Srth<6W(!tGo0gsKaSo z$1^b^p^G2Zs#`ws81aW72zyp(PRmo7ehz)q2$0ms;w&I|07bark-MRd9vM$Hz%}I^ zg!9Ka(C%_4ukK5l$DwlQ&^{0GeT}PjTh34f6qoIvF<;V&f{<;#Z)*FMl@iivt;+DE&*3q0UU1sf~^8+`sfXA zY~muwl8T3XD&>EYYJ7DNB#us-1!>~!2D)L9At_3;V6JuA;}i!q7b)3>o!kAtxs-Y& zK{Nyhp2uC*(EpAUH9@d|$S%T-xV;97>m9ru?27oH=KD0}8g9ug_}mzdpxK$5Jj(U-PG~5XUtX^-%+@iO^h# z|KxP|bRL3WcX9$)>gddcS!(J#x(KsNy@W{Y9kOq|u2oaR62T*8+Q%vi0@W=7r}HsI+PPvnEr#T4{LM5YqqveepLoh)ZE`V&53;UI83F zm_ESdxq-1Pl~ZX%7?Y9|JK#?v#^xIZgmn}zn}3<~9XkC@F4ZKIgxJtz&6_Me@qJ(b zrlDJ-FDD|fd>#5a@;0c1$7G09>+qCUNaHJH51?s_)fvk`^3DWl>pE&r4e(W<51>{?WkQj>=0w9Q{`aRc2Dfu(p}upkN{IA5R{nqLDi$6*c)Om=8+tQw}L z3FyQE=cL*hDt1YoVwyW!dEhTkiZ}T#I8l*}SKLZZ2? zW(ueo@r+~1zt?U~WREN#6=hMRI;dJj@HYiB-?6>2-}ZCx2Wb|eIWba$Pe;x_?hq6v z=wLp6_`vjjW$#>~J6@)>4xfZ^CE^-))i2+H$I`i%?9M>F!^a&a)jC`|(2S%4RWwLS zsDd|{O}b#AEcK--32QP~!1VD0T7yduMS~<3pGRwaa3=vz|A_KmyQV&6N=R+g9^$Xf zN@p;N+4bDL4W$s+(=E7c)=cvIN>DFxlYH5D@306u=p;)EQ^zQReTzEzi4fuO<45lO0e4 zfy%G(RKh#cn;7q12KdRLl@i*PKk~=x>7{3g<(kA69gKF(9Eu*}XQag;JZ!Pi**=Vf zmOpWPIAt5eDBn>GqE>RB-B zKhV&Xx!90hpp6PUS8z7TIr4hkUpwFXkg<+{8bskFQN#Ze_&+T`KES0P2IvurzTDHMght39Lhi5~YLpwQ1wXU_1CB`~$L=aT`V3u`!yQ3WYc5CUK63vug>gf6(Q)1pwh zwWb0mC7+Gv2r*&mVx=)gC()eQ3NEHc9c#@lD*198gPY&R>D;c=ejDI>q`)M!Z}9R? z?ypiawb1=yrJ_}S!>xe$Ki9!(7rzK${9_|R`IYCg$wd8C=5|Qp?WvX_$#ES%^Zpn0 zGZr(brXaXm=fO0Z4=d35z@2(`5!mgM^jS#lsqzkWN36ayW8?E*=r|82V_YHwK=Epi zOkOL#Y*!v^9?)0zgpy(Qt-$^Oi&G5+E9c=Iq^HB~)uPd->3+*1PB_+X}Gfg4GjxdGcF@0bUnsCa3GhO`4t=`+i z6nD=g+w5O)%g{>J;GX`6(y#*2#|%~Iv-U)qG!Vz9EwBs#V8kEgGDZ4Tc@K2=#}+CT zC9u)rIN4p9{Y_G2H5~Y|ik|Gx5B~Y43oNpjI_a=A^7iF1FwJe+RJWg?E9=?0ogZc! zXX4fFZ?bD-_qO>#`_rH-EwM z@HzSV=CvpJ>9b9Zj~$C9VBlzPgi(zFDNpG7erx+~PJe{<0`Qq2xRpftZ^`>j+&@qE zBMM4IYP{wx`A16?)+|3)94lCBMCzmU?keV`HJcM#Z2HRL`1KYepUOq$2R7x}Wn6*A z`tIiY-7P+7EU10(V!7Q7GZs{wPFB_FIPEO}Bh$-y?4XDU-!NM0a~ zJ~MD~BdvQ;Qk`WX@ZSb6w#qP@BAp6$0~;&%epvGeH{YdO}5cztYMbY{Cl_V zu#74Dug2#ht!QqBSHov44axyjxyB3LOnVpjkZ;a#{bcceMo?QPI;Fe7ErBhC?8NMK zWpNu>n#V|PERmGhbd1fdoP}b-ZmTq6f4G^y|H_T1t=NVa%Mf!(hK8q}4q9_2Z)B#R zr_F6jQ8;anAf!C?#=3Kg*lY~)`ttX}I#S%}#7VhY8MYnB_hR-!gxM}w7~B!=xY8Ml z8>crNA@%r16P}Psdq10P*pr`i)k4FeINh|3)4;eJoVFIp)Y^xXNAJf;_Pkk5zt(TjpS^dCit0-T!QRxgw!q%zHf5&gS*SU+Cp$U_3m4e!gH3Mu=Cx9!a;`7QM4T zwraJDw!W6e8$~_;ZYW<6aKztX2S(wi7ynT5STGe4=Xr9?YlOfV8bd4P;qpsO!_pN- zP@EtprL1a~PtUgxD|^6h+K5DhmUp^}i&&&HtUcc3mQ800NPXJ2+60Z8b>dt|L+gJA z!0-ZBUg3$Xzqpeqc78dBt`6Qnw!xlG$r=|xYOC!XTC5{nk^ykm$68_|V7jEM5ZI5Y z8scKj*Ujggt=%RErfpam@Gw1+uTSGM5WXUicd`$;C%{&jSBI2-C>7<_Pev@@84nvc zNsEwhA!3*-+0@#B00LX;GjI`)D^$xx1A)a9R4($y;YC&@`nLEb%==bY*KT+N-=HZs=TVZI%NVXdQrbw_&uoV1@7`^j*=p+S z_-A9x^2y+9kxT)K80%Ph7yu51;T?CD;t7*A4{8=fxvsHb^`DxV@o@S@nu`*WOD5La zF#Q1pL<U)JY&AhuEA_79>TCd&{>%h7$a#-0t59;hAD^64K%#EjMPB*$N{8~& z5;k=q4k3G2a599a!njzo((J}R;_kHfltH{nm+)q+VGe-I)p0SSsnV@H`!Q$`?%%h^ z(z0TkX_#Wh;-s8-vL4bOW8>0ps*)ogoHG{fBaw}Sa7bZ-Ts+iu=x> zCV*&NiYSPR2vVepNEPXb^d=nv>Agd!p|>DJQFAi%|Lf~@e z-nnn??>BGW&iV80o}DwhJ3Dh`_nhyz`}F=p;<+=pUTc1UBk`+o`e<&tis@W30(wKRo?`fx)P1;4pXWj1)4tWZcwFxNE zrk$-=`*=O|VP>^LHN==pA@Nk{Gve3rQ-^JX)kCM4Z{Jk8@O3DZ*kL_linjlPQndW$ z;?iejCsLbv(|#${T`i!U8N#~rw6?|9aGwH@>l0DYQB=)|$N%^YbxpaH$%n|zuy=MpN&LX+Qa+qb(f*1wIjJ6ZXJz^RwapV@2#hY%B5H~> z{|ST9&;5~^l#;d-AX0WT^fyShEY!`q59o}24viy8y3Ze57)(l##X@~veyIHTD(RA2 z)&p@iNgnuI0YP}{Ky3v?n-38AUjr{=yw4d%#|xgA$^k5OVGp@B47HRK^412L?4&j{ z@w)MR)Zb06e(Bzl_F{^AOHGkPt9+I^(=~~B9-Kt{jCnc-;1KaWKVPGS!1`A>%b6;9 zl7w?u#y)o1xVLP^I?Z=wP5Tt*vn$$L#>MPO&EIb|YF$EZrDwWvx6V900|WK>U^0Fy zfS0$RT0t8b%NOhzr{;p{ASGkM~Z^faXy6^YbzyHZ`Ft*jwh2zv5AYQ%uj85ik3Q|$Iw|4aM_ z#&glXwhrA8PCB7i=S!DD_6is9c6+U^+9-=$=9BIx*Qyec2mR6I`({_p{iQ1u9e19z zeluQ(?HNMsbEe+2tbsUb_rT?k^k6^orlUej{$k~DjeOj5F7LJi76O*d-mp@<#|=`_ zoMQv#M+c@HI|e{AYM%+?LxrN;akj9Cf!_QGnrUX1cls@>K*j|9`gT}V7HJvc-&J{| zz-8ll7G+$)m$*bj!bBy_!PqUiuZ$F(Tm|qdz)^S|FLR4qx>lL2qyyGjq$w8}Bx#TT zdgH_i^AUuk?bgo7yBY7@bRj&utCfmgjt6L`6qFaV%zCARGOxdCLii|9Z^*9>| zKpeut7a5iaDK_jQe=ZWO zZ$R-lVoP*rxhGIhSbhV=g}BU$KBIqV~?-Y2pk5+!G8< zM9B0tDZPR~>N7C+rvbRq9B-QtSOaMm1r|a=W{_TlyIe_(Hh60h{F2Y*aBT&j$jXm) zm6ASws`wV;!bsRcQEeD~F8*GD;DI!b4wqkPf&lAoYLf;6xZUJ|s4#ym26@PD6!>CH02rdH5-m0JDrnHtn&TC5aghd{CCu;eg^z3Sg zbT2TToe{;*-$H`1jn!7Oy60+Tq2XR+wsemH>k!9Galg#G&>7yq8Ts3r6ZOEovk)@} zC1IgZ_}X1}_42C^YNdMVg%erFuZQC}(504-SI`6@4`u_7(Pl|m?HSs=Vw@vx}XFB&=Bd6JvgGS0nd|atj+3X%-dq*r+C$$Jw z;z-7W(c-BBzX?%yt|TihxcO2+<^|7dx&)d@X#eKRMdjuNcAI)XA8L6_L;FX!TZzBU z>E_o*d)bNj>a1sy(-yMHSID68|qEb#TsZ^qNpuhgbPc%8l3 zA@nLAeO3so_!qWmkI!4F^a^sasr&xKx{2t@R;Wo(MT9(fIA3!zXrZ<|(&uRHERkZ;qAf5zEJ)>I7B?OpaB#| z=C-yQ@bWIVUnk1oDj`wS422(`q6K-j?UbHf5kT?{+Uot(){Y zGBqQ;J5*f>Gh|GFyOp)qJg)S+xV({F>sOq;SFhqdXW~S>sr25Z+l4Ly;*zuMi(8R7 zWZo$99Yc~3U)r%smnPOu6FpwYOiy9Hz8YE7DNWy-&etA{!Mvnyy*{Hhz;Y*Bd`pqJ zRv9DYQ#HP^;~$OvfZyll419E*B{BdBM;{B}e8P7s6D(9{=slwnO>hpFuRGKK$PN{; zjQnJ{Ep{C>7d^Tr^kKv<%;xV1wSkp$DiWG8(tl_j$^PqTB3s8u;K>nxHX~VdF=h%l zcL&9o7anSRC3~DK$=*Ll_V{Mpojq>SLKN>?#TqBBZdj;ouC;!mZ2X-YCSGi|ykU_} zQ4-duDi+|DlKoG*O&CHW+R^8tC9fsqnUfw$8pP21i<~@7TS!{feU%=`xn|6z|F&(+EKLFGwLlP{=H%_$!i2ns0rSeU5mn*M zu8ySMI~TFLTGNQFa)yK=|7iH-5y%1mSvpfmUl*isO$36cZ?H zcKHt#HZ07oLQ9IRViY=V5mhpnP=S`7tS?KAJ11c*Ij-` z1Cc`K^kTbW?ijw0mPJu|aEg#Lh=dmTcUX0vI5~Ll$skGK zE^2~zgRYK`IJ0W7s%L356GKd zC-bmmCnhP>s8FGFp!udz@?KVS&OP973a13!=NQ9C-Lf}AtGKMXRjaCB#A$|FpgYSQ zccI{G^y}H3t_N|hAVEhp2^L|qXx;JL!LOY^whXon=B;wrR)#BI?zhv+CTm8%weOD& z_`TRH6IK467l*HlViYi|``Bp2(i`Amy4W&+%xKAOt*Z4>&Xgl;7x5!)4S2DpYr5&> zjXU^9^@Wx;RR;B&xW1twJ>RT5pZbZx`aM&UgWv+h(${R&hV-CI)Qy6$gsTtfm+GuNRaLFub8pfzsAy=l8Kn9M@ zD-&|9X|qg`VNUn1h}}PRhtHqKIYoyAHP><8ort9sEDR)1?#v!>kCd8Gf}IGy;Q^hD z`$PCI!j+J3SVf`TMO*qO8=TJyTE@yv4*u~#bkh{Py*~)Ul%dGn_iu$*GmM%TNVD&H zWhgiLZH`##32R>fWg`otvgfjhB3Z|6iXKKw^DNVusOVjcq=_8znN_^%1`IW<%>HP2 z1Xz7+Zk!E#n$6p;;`qh$J@in3bOnuM)g!yJJM#$9Sz;xrZ z^!3Bf7M9kJ_Ae9zNP3J?Oik$r6EfxSP$7%Och(%yr3J6;r|gisJnJ(Ao;UB1I*F)h zl&$QZUk9(v0$XwbY4->pX@z`@Y+iV|;plfEMn`ED+1ueH2>7&e_$f1?CUsNl1M*|n zE^P`^H|xvuDto)iNDnZd7g5*I)Ai7ujFJZ6YYF$bM3}YXQhLGTY{r{Lme3lrK$S;# zY5g0&bcbr}Pv{=C;w67hYX?0{V+#D`f=vqJBZ{_D!Sa^r&sAvh4oBoh`4n2|kkqCyp@JHJC4Y_VS4`72(){5A9&=m zN#?O}=IpGy;H__oiG+EY{JvNLz4M&CcL#d#DlgNYyyN_ z9+uC2b3gqAKhlmha2H=sc=b~Lqaf8tI^)Kw_m1F@1Qi}%(a9`(ee2azt5=5#mCv7Z z?(w>6sQgR0uNdMQtgB>NdAg_(Yx@47DnoyT!SX~|^y8#y$QR75xswhZrru#T(p#-> zwvr9BqyVc9j%xvf`y9h%8XFW=GVOgZeQXi$gc>IUOkTAC0POXW=HlR{IejP8ors%svm z+ZdUX;e|-;%Kz2o4UYeu)SImcTYvoHhZM%2TL+3)7E=4J;=vXLhzh<0E_qOG^5d^U1o7gBHQQIlY-LSX&0vfJ63 z-%(Rz_WROx%0s`mv4NL5CAKbs=sa)=)0OL?=*{7RFAsZ)3j4+3h)dg+D;#~zuz5@J zmBlBZIGy_r4Tae{F4th{H48isJysd+952yh3-C#FV667Hy0()E0cmHyR z!;dymB!RryhVN_LYHJe2yJj|GWJBGT8_O2vhqU}o2d+H&o=xAfE@!LX9+UOCZ!h0| zC@9JfY?-hZ)XGnvJBO;Z_JhXMV1|+|ePc?kc7=8+S{2Tsj}p}kk+y~<`MPD+*Q-7o z(b?34vawj3C5?a&kh-CgryXKs(WugS!=Zs-7$+xG$=Owmtjk|(aj8w0A9>#E_iH#7 zo;bgJ9_xqfirri?o4ZM!pIqJ=HtL9Tg!>9yU{4R5K0)twbu~+-Y6aW8`S;|ChGw~V z4%OZvql5P|^N>sr@w+r>T0h>-p~dX)X+iy2_=nK@ ztqx-N4XA8&z!qwmcBaxRS#6k8Z6ocf;q1xL$Yqka=(A2wLnJv=*}+8e{PYjKQ3Vjg zT2;q;o=K-w1kGhjP!^v$-Skdy_NcakW@g-Z*DRp}cgg|wwtOCCQv&DFw#^-I57q^P zk#Pinno$YB&hm|{C>(3CcGRRSI%7~YrRw4FOxa}mYP^PIBU$}ybESy^vG>q>SiS78 zYSFk&#tykb;CUK?Glh=_q$5Av%GsdhQ>gAn1{RUE)}igepOiFBW{s{H^|&1O)qta4dvQNa0w+*!fR=#C6+hbfP$*l9xwKw<6ZtN!lW)w84s+s`6_SWtW|vjdv{9Ww>+y^SV%cRy^xKS6*nP? zZ5+u&ASUY!fEPA)PMqBHm_H;<-Ufz-$Xv{ac?pOXF)B?GmN58RpGE#!YaR}^mq_Wk zy2{iC7Wnvrd#e^a4zC*14LW{PMyIswGtC1i`1ysilXlH}SwcK|HlGD<1+L(YG)y5t z{uf?22T8%IYTSjhq6ua4kG#b$DnhwNHZS*;ce^nBW5r&}feH096#U|XDOy$hlIHJssKAIww!;=w6iyv`J`1sHH9}4D6b0gSoJy%>0s9d z5{Olr(`1yH;>|2YELIwLy)u?r9KAIyi7_@^VU1k*$GlJul8p3ix}IwjOwXb1BG{JXjQ@On40O~UCS(So&2N0fSsxgey&5&vq%b0 zoRvH7Z5yozI4P3Sk8tjVi(m@>(X&(noaXNLoSdHRSf{>r*+<_}{&VbJ9?;=D_r#GJ z#l4sRga51Rzw!U5{6C#?Z}R_x)&I4&d+@*T|IPNS1Q%yva~6RB5J;p*4LZ2HyBi~l zK0mj0b>&%GTeE$F!?p2CU0ogE?cKNs)z#B$dc(bop6Ow6~oc|F7K!%hkc z3d$=g4t%A|%*